protected function prepare($object, ObjectKey $objectKey = null) { if (isset($object)) { if (null === $objectKey) { $this->metadata = $this->objectManager->getMetadata(get_class($object)); } else { $this->metadata = $this->objectManager->getMetadata($objectKey->getKey()); } } $this->doPrepare($object); }
/** * @test */ public function hydrateValidateDataSourceProcessorsTriggering() { /** * We cannot fetch the metadata from the mock object class name * So we use the real object class name. */ $objectRealClass = 'Kassko\\DataMapperTest\\Hydrator\\Fixture\\Model\\Processors'; $objectMockClass = 'ProcessorsMock'; $object = $this->getMockBuilder($objectRealClass)->setMockClassName($objectMockClass)->setMethods(['somePreprocessorA', 'somePreprocessorB', 'someProcessorA', 'someProcessorB'])->getMock(); $object->expects($this->once())->method('somePreprocessorA'); $object->expects($this->once())->method('somePreprocessorB'); $object->expects($this->once())->method('someProcessorA'); $object->expects($this->once())->method('someProcessorB'); $processorRealClass = 'Kassko\\DataMapperTest\\Hydrator\\Fixture\\Processor\\SomeProcessor'; $processor = $this->getMockBuilder($processorRealClass)->setMethods(['process'])->getMock(); $processor->expects($this->exactly(2))->method('process'); $classMetadata = $this->objectManager->getMetadata($objectRealClass); $cmFactory = $this->getMockBuilder(ClassMetadataFactory::class)->getMock(); $cmFactory->method('loadMetadata')->willReturn($classMetadata); $this->objectManager->setClassMetadataFactory($cmFactory); $hydrator = $this->createHydrator($objectMockClass, [$processorRealClass => $processor]); $hydrator->hydrate([], $object); }