From c678bff7cc5ac33dc7d975997da4c3ab9b70729b Mon Sep 17 00:00:00 2001 From: Mark Story Date: Tue, 12 Jul 2016 22:32:18 -0400 Subject: [PATCH] Add buildValidator event hook to Table. While I don't think this will be frequently used, it does round out the method listener options at the Table class. I've included some more tests as well. Refs #9099 --- src/ORM/Table.php | 2 ++ tests/TestCase/ORM/TableTest.php | 14 +++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/ORM/Table.php b/src/ORM/Table.php index 9e3c922e2f5..aee95dffb35 100644 --- a/src/ORM/Table.php +++ b/src/ORM/Table.php @@ -2252,6 +2252,7 @@ public function validateUnique($value, array $options, array $context = null) * The conventional method map is: * * - Model.beforeMarshal => beforeMarshal + * - Model.buildValidator => buildValidator * - Model.beforeFind => beforeFind * - Model.beforeSave => beforeSave * - Model.afterSave => afterSave @@ -2268,6 +2269,7 @@ public function implementedEvents() { $eventMap = [ 'Model.beforeMarshal' => 'beforeMarshal', + 'Model.buildValidator' => 'buildValidator', 'Model.beforeFind' => 'beforeFind', 'Model.beforeSave' => 'beforeSave', 'Model.afterSave' => 'afterSave', diff --git a/tests/TestCase/ORM/TableTest.php b/tests/TestCase/ORM/TableTest.php index 734090cf0f4..6e31973511b 100644 --- a/tests/TestCase/ORM/TableTest.php +++ b/tests/TestCase/ORM/TableTest.php @@ -1673,15 +1673,27 @@ public function testCallBehaviorAliasedFinder() public function testImplementedEvents() { $table = $this->getMockBuilder('Cake\ORM\Table') - ->setMethods(['beforeFind', 'beforeSave', 'afterSave', 'beforeDelete', 'afterDelete']) + ->setMethods([ + 'buildValidator', + 'beforeMarshal', + 'beforeFind', + 'beforeSave', + 'afterSave', + 'beforeDelete', + 'afterDelete', + 'afterRules' + ]) ->getMock(); $result = $table->implementedEvents(); $expected = [ + 'Model.beforeMarshal' => 'beforeMarshal', + 'Model.buildValidator' => 'buildValidator', 'Model.beforeFind' => 'beforeFind', 'Model.beforeSave' => 'beforeSave', 'Model.afterSave' => 'afterSave', 'Model.beforeDelete' => 'beforeDelete', 'Model.afterDelete' => 'afterDelete', + 'Model.afterRules' => 'afterRules', ]; $this->assertEquals($expected, $result, 'Events do not match.'); }