public function testLoadClassMetadataWithoutParent() { $this->loadClassMetadataEvent->getClassMetadata()->willReturn($this->classMetadata->reveal()); $this->classMetadata->getName()->willReturn(get_class($this->object->reveal())); $this->classMetadata->setCustomRepositoryClass('Sulu\\Bundle\\ContactBundle\\Entity\\ContactRepository')->shouldNotBeCalled(); $this->loadClassMetadataEvent->getEntityManager()->willReturn($this->entityManager->reveal()); $this->entityManager->getConfiguration()->willReturn($this->configuration->reveal()); $this->configuration->getNamingStrategy()->willReturn(null); /** @var \Doctrine\Common\Persistence\Mapping\Driver\MappingDriver $mappingDriver */ $mappingDriver = $this->prophesize('Doctrine\\Common\\Persistence\\Mapping\\Driver\\MappingDriver'); $this->configuration->getMetadataDriverImpl()->willReturn($mappingDriver->reveal()); $mappingDriver->getAllClassNames()->willReturn([get_class($this->parentObject->reveal())]); $mappingDriver->loadMetadataForClass(get_class($this->parentObject->reveal()), Argument::type('Doctrine\\ORM\\Mapping\\ClassMetadata'))->shouldBeCalled(); $this->subscriber->loadClassMetadata($this->loadClassMetadataEvent->reveal()); }
/** * @param $changeset The changeset for the entity * @param $expectedFields List of filds which should be updated/set * * @dataProvider provideLifecycle */ public function testOnFlush($changeset, $expectedFields) { $entity = $this->userBlameObject->reveal(); $this->unitOfWork->getScheduledEntityInsertions()->willReturn([$entity]); $this->unitOfWork->getScheduledEntityUpdates()->willReturn([]); $this->entityManager->getClassMetadata(get_class($entity))->willReturn($this->classMetadata); $this->unitOfWork->getEntityChangeSet($this->userBlameObject->reveal())->willReturn($changeset); foreach (['creator', 'changer'] as $field) { $prophecy = $this->classMetadata->setFieldValue($this->userBlameObject->reveal(), $field, $this->user->reveal()); if (in_array($field, $expectedFields)) { $prophecy->shouldBeCalled(); continue; } $prophecy->shouldNotBeCalled(); } if (count($expectedFields)) { $this->unitOfWork->recomputeSingleEntityChangeSet($this->classMetadata->reveal(), $this->userBlameObject->reveal())->shouldBeCalled(); } $this->subscriber->onFlush($this->onFlushEvent->reveal()); }