public function test__deserialize()
    {
        $xml = <<<EOT
<?xml version="1.0"?>
<md:EntitiesDescriptor ID="esd1" Name="first" validUntil="2013-10-27T11:55:37.035Z" cacheDuration="P1D" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata">
<md:EntityDescriptor entityID="ed1"/>
<md:EntityDescriptor entityID="ed2"/>
<md:EntitiesDescriptor ID="esd2" Name="second">
    <md:EntityDescriptor entityID="ed3"/>
</md:EntitiesDescriptor>
</md:EntitiesDescriptor>
EOT;
        $context = new DeserializationContext();
        $context->getDocument()->loadXML($xml);
        $esd = new EntitiesDescriptor();
        $esd->deserialize($context->getDocument(), $context);
        $this->assertEquals('esd1', $esd->getId());
        $this->assertEquals('first', $esd->getName());
        $this->assertEquals(1382874937, $esd->getValidUntilTimestamp());
        $this->assertEquals('P1D', $esd->getCacheDuration());
        $items = $esd->getAllItems();
        $this->assertCount(3, $items);
        $this->assertInstanceOf('LightSaml\\Model\\Metadata\\EntityDescriptor', $items[0]);
        $this->assertInstanceOf('LightSaml\\Model\\Metadata\\EntityDescriptor', $items[1]);
        $this->assertInstanceOf('LightSaml\\Model\\Metadata\\EntitiesDescriptor', $items[2]);
    }