public function testAddSerializer()
 {
     $deserializer = new DispatchingDeserializer(array());
     $subDeserializer = $this->getMock('Deserializers\\DispatchableDeserializer');
     $subDeserializer->expects($this->any())->method('isDeserializerFor')->will($this->returnValue(true));
     $subDeserializer->expects($this->any())->method('deserialize')->will($this->returnValue(42));
     $deserializer->addDeserializer($subDeserializer);
     $this->assertEquals(42, $deserializer->deserialize(null));
 }
 private function extractEntities(array $entries)
 {
     $entities = array();
     foreach ($entries as $entry) {
         foreach ($entry as $entityId => $serialization) {
             if (array_key_exists('missing', $serialization)) {
                 continue;
             } else {
                 if ($this->deserializer->isDeserializerFor($serialization)) {
                     $entities[$entityId] = $this->deserializer->deserialize($serialization);
                 }
             }
         }
     }
     return $entities;
 }