Exemplo n.º 1
0
 public function testSavingSingleEntityWithIdentityColumnForcesInsert()
 {
     // Setup fake persister and id generator for identity generation
     $userPersister = new EntityPersisterMock($this->_emMock, $this->_emMock->getClassMetadata('Doctrine\\Tests\\Models\\Forum\\ForumUser'));
     $this->_unitOfWork->setEntityPersister('Doctrine\\Tests\\Models\\Forum\\ForumUser', $userPersister);
     $userPersister->setMockIdGeneratorType(ClassMetadata::GENERATOR_TYPE_IDENTITY);
     // Test
     $user = new ForumUser();
     $user->username = '******';
     $this->_unitOfWork->persist($user);
     // Check
     $this->assertEquals(0, count($userPersister->getInserts()));
     $this->assertEquals(0, count($userPersister->getUpdates()));
     $this->assertEquals(0, count($userPersister->getDeletes()));
     $this->assertFalse($this->_unitOfWork->isInIdentityMap($user));
     // should no longer be scheduled for insert
     $this->assertTrue($this->_unitOfWork->isScheduledForInsert($user));
     // Now lets check whether a subsequent commit() does anything
     $userPersister->reset();
     // Test
     $this->_unitOfWork->commit();
     // Check.
     $this->assertEquals(1, count($userPersister->getInserts()));
     $this->assertEquals(0, count($userPersister->getUpdates()));
     $this->assertEquals(0, count($userPersister->getDeletes()));
     // should have an id
     $this->assertTrue(is_numeric($user->id));
 }