Permalink
Browse files

DDC-2173 - Add Test for new OnFlush or PreFlush behavior and update U…

…PGRADE.md
  • Loading branch information...
1 parent 1e66913 commit 512a001e8c8cec368875be1c8a51d672546756a6 @beberlei beberlei committed Jan 6, 2013
Showing with 42 additions and 0 deletions.
  1. +8 −0 UPGRADE.md
  2. +34 −0 tests/Doctrine/Tests/ORM/Functional/FlushEventTest.php
View
@@ -1,3 +1,11 @@
+# Upgrade to 2.4
+
+## OnFlush and PreFlush event always called
+
+Before 2.4 the preFlush and onFlush events were only called when there were
+actually entities that changed. Now these events are called no matter if there
+are entities in the UoW or changes are found.
+
# Upgrade to 2.3
## EntityManager#find() not calls EntityRepository#find() anymore
@@ -48,6 +48,26 @@ public function testPersistNewEntitiesOnPreFlush()
//echo "SECOND FLUSH";
//$this->_em->flush();
}
+
+ /**
+ * @group DDC-2173
+ */
+ public function testPreAndOnFlushCalledAlways()
+ {
+ $listener = new OnFlushCalledListener();
+ $this->_em->getEventManager()->addEventListener(Events::onFlush, $listener);
+ $this->_em->getEventManager()->addEventListener(Events::preFlush, $listener);
+
+ $this->_em->flush();
+
+ $this->assertEquals(1, $listener->preFlush);
+ $this->assertEquals(1, $listener->onFlush);
+
+ $this->_em->flush();
+
+ $this->assertEquals(2, $listener->preFlush);
+ $this->assertEquals(2, $listener->onFlush);
+ }
}
class OnFlushListener
@@ -91,4 +111,18 @@ public function onFlush(OnFlushEventArgs $args)
}
}
+class OnFlushCalledListener
+{
+ public $preFlush = 0;
+ public $onFlush = 0;
+
+ public function preFlush($args)
+ {
+ $this->preFlush++;
+ }
+ public function onFlush($args)
+ {
+ $this->onFlush++;
+ }
+}

0 comments on commit 512a001

Please sign in to comment.