Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Implemented countable interface for CakeValidationSet

  • Loading branch information...
commit ff91a0909af6fdcad0fcfe8dc526c299c8431079 1 parent 989a8b8
@lorenzo lorenzo authored
View
2  lib/Cake/Model/ModelValidator.php
@@ -482,7 +482,7 @@ public function getIterator() {
}
/**
- * Returns the numbers of fields having validation rules
+ * Returns the number of fields having validation rules
*
* @return int
**/
View
11 lib/Cake/Model/Validator/CakeValidationSet.php
@@ -27,7 +27,7 @@
* @package Cake.Model.Validator
* @link http://book.cakephp.org/2.0/en/data-validation.html
*/
-class CakeValidationSet implements ArrayAccess, IteratorAggregate {
+class CakeValidationSet implements ArrayAccess, IteratorAggregate, Countable {
/**
* Holds the ValidationRule objects
@@ -293,4 +293,13 @@ public function getIterator() {
return new ArrayIterator($this->_rules);
}
+/**
+ * Returns the number of rules in this set
+ *
+ * @return int
+ **/
+ public function count() {
+ return count($this->_rules);
+ }
+
}
View
17 lib/Cake/Test/Case/Model/Validator/CakeValidationSetTest.php
@@ -274,4 +274,21 @@ public function testIterator() {
$this->assertEquals(3, $i);
}
+/**
+ * Tests countable interface
+ *
+ * @return void
+ */
+ public function testCount() {
+ $Set = new CakeValidationSet('title', array(
+ 'notEmpty' => array('rule' => 'notEmpty', 'required' => true),
+ 'numeric' => array('rule' => 'numeric'),
+ 'other' => array('rule' => array('other', 1)),
+ ));
+ $this->assertCount(3, $Set);
+
+ unset($Set['other']);
+ $this->assertCount(2, $Set);
+ }
+
}
Please sign in to comment.
Something went wrong with that request. Please try again.