diff --git a/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3123Test.php b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3123Test.php new file mode 100644 index 000000000..25c38426c --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3123Test.php @@ -0,0 +1,48 @@ +useModelSet('cms'); + parent::setUp(); + } + + public function testIssue() + { + $test = $this; + $user = new CmsUser(); + $uow = $this->_em->getUnitOfWork(); + + $user->name = 'Marco'; + $user->username = 'ocramius'; + + $this->_em->persist($user); + $uow->scheduleExtraUpdate($user, array('name' => 'changed name')); + + $listener = $this->getMock('stdClass', array('postFlush')); + + $listener + ->expects($this->once()) + ->method('postFlush') + ->will($this->returnCallback(function () use ($uow, $test) { + $extraUpdatesReflection = new \ReflectionProperty($uow, 'extraUpdates'); + + $extraUpdatesReflection->setAccessible(true); + + $test->assertEmpty($extraUpdatesReflection->getValue($uow)); + })); + + $this->_em->getEventManager()->addEventListener(Events::postFlush, $listener); + + $this->_em->flush(); + } +}