Browse Source

Merge pull request #7619 from dakota/behavior-aftersavecommit

Add afterSaveCommit and afterDeleteCommit callbacks to behaviours
José Lorenzo Rodríguez 10 years ago
parent
commit
084ef76849
2 changed files with 26 additions and 0 deletions
  1. 2 0
      src/ORM/Behavior.php
  2. 24 0
      tests/TestCase/ORM/BehaviorTest.php

+ 2 - 0
src/ORM/Behavior.php

@@ -252,8 +252,10 @@ class Behavior implements EventListenerInterface
             'Model.beforeFind' => 'beforeFind',
             'Model.beforeSave' => 'beforeSave',
             'Model.afterSave' => 'afterSave',
+            'Model.afterSaveCommit' => 'afterSaveCommit',
             'Model.beforeDelete' => 'beforeDelete',
             'Model.afterDelete' => 'afterDelete',
+            'Model.afterDeleteCommit' => 'afterDeleteCommit',
             'Model.buildValidator' => 'buildValidator',
             'Model.buildRules' => 'buildRules',
             'Model.beforeRules' => 'beforeRules',

+ 24 - 0
tests/TestCase/ORM/BehaviorTest.php

@@ -50,6 +50,20 @@ class TestBehavior extends Behavior
     public function buildRules()
     {
     }
+
+    /**
+     * Test for event bindings.
+     */
+    public function afterSaveCommit()
+    {
+    }
+
+    /**
+     * Test for event bindings.
+     */
+    public function afterDeleteCommit()
+    {
+    }
 }
 
 /**
@@ -209,9 +223,11 @@ class BehaviorTest extends TestCase
         $behavior = new TestBehavior($table);
         $expected = [
             'Model.beforeFind' => 'beforeFind',
+            'Model.afterSaveCommit' => 'afterSaveCommit',
             'Model.buildRules' => 'buildRules',
             'Model.beforeRules' => 'beforeRules',
             'Model.afterRules' => 'afterRules',
+            'Model.afterDeleteCommit' => 'afterDeleteCommit',
         ];
         $this->assertEquals($expected, $behavior->implementedEvents());
     }
@@ -230,6 +246,10 @@ class BehaviorTest extends TestCase
                 'priority' => 10,
                 'callable' => 'beforeFind'
             ],
+            'Model.afterSaveCommit' => [
+                'priority' => 10,
+                'callable' => 'afterSaveCommit'
+            ],
             'Model.beforeRules' => [
                 'priority' => 10,
                 'callable' => 'beforeRules'
@@ -242,6 +262,10 @@ class BehaviorTest extends TestCase
                 'priority' => 10,
                 'callable' => 'buildRules'
             ],
+            'Model.afterDeleteCommit' => [
+                'priority' => 10,
+                'callable' => 'afterDeleteCommit'
+            ],
         ];
         $this->assertEquals($expected, $behavior->implementedEvents());
     }