/**
  * @expectedException \LightSaml\Error\LightSamlBindingException
  * @expectedExceptionMessage Missing SAMLRequest or SAMLResponse parameter
  */
 public function test__receive_throws_when_no_message()
 {
     $request = new Request();
     $binding = new HttpRedirectBinding();
     $messageContext = new MessageContext();
     $binding->receive($request, $messageContext);
 }
 public function test__receive_authn_request()
 {
     $expectedRelayState = 'relayState';
     $binding = new HttpRedirectBinding();
     $eventDispatcherMock = $this->getEventDispatcherMock();
     $eventDispatcherMock->expects($this->once())->method('dispatch')->willReturnCallback(function ($name, GenericEvent $event) {
         $this->assertEquals(Events::BINDING_MESSAGE_RECEIVED, $name);
         $this->assertNotEmpty($event->getSubject());
         $doc = new \DOMDocument();
         $doc->loadXML($event->getSubject());
         $this->assertEquals('AuthnRequest', $doc->firstChild->localName);
     });
     $binding->setEventDispatcher($eventDispatcherMock);
     $this->assertSame($eventDispatcherMock, $binding->getEventDispatcher());
     $request = new Request();
     $request->server->add(array('QUERY_STRING' => 'SAMLRequest=' . urlencode('RY/NCsIwEITvPkXI3TaptY3BKkIvBb2oePAiMUmxYBPtbsXHdxFEGBgY5tuf5frd39nLD9DFUHGZCL5eTZabEW9h75+jB2TUCFDxcQg6GuhAB9N70Gj1YbPb6iwR+jFEjDbeOWvqil+Us7ZYqHlbuEU7IxfXq8vnReZblSvfzowvlVOlKzk7/XbTHMIBRt8EQBOQIiHzqZCko8y0EKQzZzUd1QWDX+qG+ACdpu4fJjb2qaEPeLqafAA=') . '&RelayState=' . urlencode($expectedRelayState) . '&SigAlg=' . urlencode('http://www.w3.org/2000/09/xmldsig#rsa-sha1') . '&Signature=' . urlencode('SI4nZH+9tjLO24k2La/v5DJ/OfGWw/nKKc/Nh8ih/AN71HuIzFl30F3Va+pDOidRYgJ8dIB2Juf5DIQYggDz+AiR/NI9gkAIGKRYZ3bhBPzC0XVtTQ075Qxwa3HWimh2Lywj7WV0QANOptodnjp1aUf4SuSHfEYrcWTf5C0gOZhiXT7XIQH0wpL1BdLwaePlduVCfaaMq2iNadNFBHi2+d9+FrCHyxYdmR8r5CbNg1vNEHj1xYwWUMBEtvJIYAt116++ei78dQYKlv5Mz98pTB1bkjRtONh+w7Mdy1gGT+D/gDz1kl+kAfxIT6D2x54GFBKM01gAGRUrb0Z6j2Nn6Q==')));
     $messageContext = new MessageContext();
     $binding->receive($request, $messageContext);
     /** @var \LightSaml\Model\Protocol\AuthnRequest $message */
     $message = $messageContext->getMessage();
     $this->assertInstanceOf('LightSaml\\Model\\Protocol\\AuthnRequest', $message);
     $this->assertEquals($expectedRelayState, $message->getRelayState());
     $this->assertEquals('_8dcc6985f6d9f385f0bbd4562ef848ef3ae78d87d7', $message->getID());
     $this->assertEquals('2014-01-01T12:00:00Z', $message->getIssueInstantString());
     $this->assertNotNull($message->getSignature());
     $this->assertInstanceOf('LightSaml\\Model\\XmlDSig\\AbstractSignatureReader', $message->getSignature());
     $this->assertInstanceOf('LightSaml\\Model\\XmlDSig\\SignatureStringReader', $message->getSignature());
     /** @var SignatureStringReader $signature */
     $signature = $message->getSignature();
     $this->assertEquals('http://www.w3.org/2000/09/xmldsig#rsa-sha1', $signature->getAlgorithm());
     $this->assertEquals('SI4nZH+9tjLO24k2La/v5DJ/OfGWw/nKKc/Nh8ih/AN71HuIzFl30F3Va+pDOidRYgJ8dIB2Juf5DIQYggDz+AiR/NI9gkAIGKRYZ3bhBPzC0XVtTQ075Qxwa3HWimh2Lywj7WV0QANOptodnjp1aUf4SuSHfEYrcWTf5C0gOZhiXT7XIQH0wpL1BdLwaePlduVCfaaMq2iNadNFBHi2+d9+FrCHyxYdmR8r5CbNg1vNEHj1xYwWUMBEtvJIYAt116++ei78dQYKlv5Mz98pTB1bkjRtONh+w7Mdy1gGT+D/gDz1kl+kAfxIT6D2x54GFBKM01gAGRUrb0Z6j2Nn6Q==', $signature->getSignature());
 }