/** * @param object $entity * @param bool $mockToken * @param bool $mockUser * @dataProvider prePersistAndPreUpdateDataProvider */ public function testPrePersist($entity, $mockToken = false, $mockUser = false) { $initialEntity = clone $entity; $user = $mockUser ? new User() : null; $this->mockSecurityContext($mockToken, $mockUser, $user); $em = $this->getEntityManagerMock(); if ($mockUser) { $uow = $this->getMockBuilder('Doctrine\\ORM\\UnitOfWork')->disableOriginalConstructor()->getMock(); $em->expects($this->any())->method('getUnitOfWork')->will($this->returnValue($uow)); } $args = new LifecycleEventArgs($entity, $em); $this->contactListener->prePersist($args); if (!$entity instanceof Contact) { $this->assertEquals($initialEntity, $entity); return; } $this->assertInstanceOf('\\DateTime', $entity->getCreatedAt()); $this->assertInstanceOf('\\DateTime', $entity->getUpdatedAt()); if ($mockToken && $mockUser) { $this->assertEquals($user, $entity->getCreatedBy()); $this->assertEquals($user, $entity->getUpdatedBy()); } else { $this->assertNull($entity->getCreatedBy()); $this->assertNull($entity->getUpdatedBy()); } }
public function testPrePersistWithAlreadySetCreatedAtAndCreatedBy() { $entity = new Contact(); $createdAt = new \DateTime(); $createdBy = new User(); $entity->setCreatedAt($createdAt)->setCreatedBy($createdBy); $this->mockSecurityContext(); $em = $this->getEntityManagerMock(); $args = new LifecycleEventArgs($entity, $em); $this->contactListener->prePersist($args); $this->assertSame($createdAt, $entity->getCreatedAt()); $this->assertSame($createdBy, $entity->getCreatedBy()); }