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)); }