private function checkRequestXml(\DOMDocument $doc, LogoutRequest $request)
 {
     $xpath = new \DOMXPath($doc);
     $xpath->registerNamespace('samlp', Protocol::SAML2);
     $xpath->registerNamespace('saml', Protocol::NS_ASSERTION);
     $list = $xpath->query('/samlp:LogoutRequest');
     $this->assertEquals(1, $list->length);
     /** @var $node \DOMElement */
     $node = $list->item(0);
     $this->assertEquals($request->getReason(), $node->getAttribute('Reason'));
     $this->assertEquals($request->getID(), $node->getAttribute('ID'));
     $this->assertEquals('2.0', $node->getAttribute('Version'));
     $this->assertEquals($this->destination, $node->getAttribute('Destination'));
     $list = $xpath->query('/samlp:LogoutRequest/saml:Issuer');
     $this->assertEquals(1, $list->length);
     $node = $list->item(0);
     $this->assertEquals($this->issuer, $node->textContent);
     $list = $xpath->query('/samlp:LogoutRequest/saml:NameID');
     $this->assertEquals(1, $list->length);
     $node = $list->item(0);
     $this->assertEquals($request->getNameID()->getFormat(), $node->getAttribute('Format'));
     $this->assertEquals($request->getNameID()->getValue(), $node->textContent);
 }
 /**
  * @param LogoutRequest $request
  * @param ServiceInfo $serviceInfo
  * @return RequestState
  */
 protected function createRequestState(LogoutRequest $request, ServiceInfo $serviceInfo)
 {
     $state = new RequestState();
     $state->setId($request->getID());
     $state->setDestination($serviceInfo->getIdpProvider()->getEntityDescriptor()->getEntityID());
     $this->requestStateStore->set($state);
     return $state;
 }