public function testCanDeserialize()
 {
     $subDeserializer = $this->getMock('Deserializers\\DispatchableDeserializer');
     $subDeserializer->expects($this->exactly(4))->method('isDeserializerFor')->will($this->returnCallback(function ($value) {
         return $value > 9000;
     }));
     $serializer = new DispatchingDeserializer(array($subDeserializer));
     $this->assertFalse($serializer->isDeserializerFor(0));
     $this->assertFalse($serializer->isDeserializerFor(42));
     $this->assertTrue($serializer->isDeserializerFor(9001));
     $this->assertTrue($serializer->isDeserializerFor(31337));
 }
 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;
 }