/**
  * Validates the SAML AuthnRequest message.
  * 
  * @param AuthnRequest $soapMessage
  * @return boolean
  */
 protected function _isValidSoapMessage(AuthnRequest $soapMessage)
 {
     $valid = true;
     $expectedService = $this->getOption(self::OPT_SERVICE_VALUE, $this->_defServiceValue);
     $service = $soapMessage->getPaosRequestService();
     if ($service != $expectedService) {
         $this->addMessage(sprintf("paos:Request element declares service '%s' different from the expected '%s'", $service, $expectedService));
         $valid = false;
     }
     $paosConsumerUrl = $soapMessage->getPaosResponseConsumerUrl();
     if (null === $paosConsumerUrl) {
         $this->addMessage('The paos:Request/@responseConsumerURL must not be null');
         $valid = false;
     }
     $samlAuthnRequestConsumerUrl = $soapMessage->getAssertionConsumerServiceUrl();
     if (null === $samlAuthnRequestConsumerUrl) {
         $this->addMessage('The samlp:AuthnRequest/@AssertionConsumerServiceURL must not be null');
         $valid = false;
     }
     if ($paosConsumerUrl != $samlAuthnRequestConsumerUrl) {
         $this->addMessage(sprintf("paos:Request/@responseConsumerURL with value '%s' is different from samlp:AuthnRequest/@AssertionConsumerServiceURL with value '%s'", $paosConsumerUrl, $samlAuthnRequestConsumerUrl));
         $valid = false;
     }
     return $valid;
 }
 public function testGetRelayState()
 {
     $this->assertSame('ss:mem:cca27ceabb8b0035ead1d99c0e343fa9234d6d559d5da43d4efb9d6cb592c0cf', $this->_message->getRelayState());
 }