public function deserializeObjectsArrayCallsReconstituteObjectWithTheCorrectObjectData()
{
$className = 'dummyClass' . md5(uniqid(mt_rand(), true));
eval('class ' . $className . ' {}');
$className1 = 'class1' . md5(uniqid(mt_rand(), true));
$object1 = $this->createMock($className, [], [], $className1, false);
$className2 = 'class2' . md5(uniqid(mt_rand(), true));
$object2 = $this->createMock($className, [], [], $className2, false);
$className3 = 'class3' . md5(uniqid(mt_rand(), true));
$object3 = $this->createMock($className, [], [], $className3, false);
$objectsAsArray = [spl_object_hash($object1) => [ObjectSerializer::CLASSNAME => $className1, ObjectSerializer::PROPERTIES => [1]], spl_object_hash($object2) => [ObjectSerializer::CLASSNAME => $className2, ObjectSerializer::PROPERTIES => [2]], 'someReferencedObject1' => [], spl_object_hash($object3) => [ObjectSerializer::CLASSNAME => $className3, ObjectSerializer::PROPERTIES => [3]], 'someReferencedObject2' => [], 'someReferencedObject3' => []];
$mockObjectManager = $this->getMockBuilder(ObjectManager::class)->disableOriginalConstructor()->getMock();
$mockObjectManager->expects($this->any())->method('isRegistered')->will($this->returnValue(true));
$objectSerializer = $this->getAccessibleMock(ObjectSerializer::class, ['reconstituteObject', 'createEmptyObject'], [], '', false);
$objectSerializer->expects($this->at(0))->method('reconstituteObject')->with(spl_object_hash($object1), $objectsAsArray[spl_object_hash($object1)])->will($this->returnValue($object1));
$objectSerializer->expects($this->at(1))->method('reconstituteObject')->with(spl_object_hash($object2), $objectsAsArray[spl_object_hash($object2)])->will($this->returnValue($object2));
$objectSerializer->expects($this->at(2))->method('reconstituteObject')->with(spl_object_hash($object3), $objectsAsArray[spl_object_hash($object3)])->will($this->returnValue($object3));
$objectSerializer->injectObjectManager($mockObjectManager);
$objects = $objectSerializer->deserializeObjectsArray($objectsAsArray);
$this->assertEquals([spl_object_hash($object1) => $object1, spl_object_hash($object2) => $object2, spl_object_hash($object3) => $object3], $objects);
}