From 9cdcba3fbc5d25278a3d7b26489abb62048f9391 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Thu, 15 May 2014 00:18:22 +0200 Subject: [PATCH] DDC-3123 - verifying that the UoW is not clearing extra inserts --- .../ORM/Functional/Ticket/DDC3123Test.php | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3123Test.php 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(); + } +}