Example #1
0
    public function test__serialize()
    {
        $context = new SerializationContext();
        $request = new LogoutRequest();
        $request->setID('request-id')->setIssueInstant(new \DateTime('2013-12-08T17:08:35Z'))->setDestination('http://idp.com/saml/logout')->setNotOnOrAfter(new \DateTime('2013-12-08T17:10:00Z'))->setIssuer((new Issuer())->setValue('the-issuer'))->setNameID((new NameID())->setValue('name-id')->setFormat(SamlConstants::NAME_ID_FORMAT_PERSISTENT))->setSessionIndex('123123123');
        $request->serialize($context->getDocument(), $context);
        $context->getDocument()->formatOutput = true;
        $xml = $context->getDocument()->saveXML();
        $expectedXml = <<<EOT
<?xml version="1.0"?>
<LogoutRequest xmlns="urn:oasis:names:tc:SAML:2.0:protocol" ID="request-id" Version="2.0" IssueInstant="2013-12-08T17:08:35Z" Destination="http://idp.com/saml/logout" NotOnOrAfter="2013-12-08T17:10:00Z">
  <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">the-issuer</saml:Issuer>
  <saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">name-id</saml:NameID>
  <SessionIndex>123123123</SessionIndex>
</LogoutRequest>
EOT;
        $xml = trim(str_replace("\r", '', $xml));
        $expectedXml = trim(str_replace("\r", '', $expectedXml));
        $this->assertEquals($expectedXml, $xml);
    }