[limb-svn] r6482 - in 3.x/trunk/limb/validation: src/rule tests/cases/rule

svn at limb-project.com svn at limb-project.com
Fri Nov 2 10:59:36 MSK 2007


Author: serega
Date: 2007-11-02 10:59:36 +0300 (Fri, 02 Nov 2007)
New Revision: 6482
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6482

Added:
   3.x/trunk/limb/validation/src/rule/lmbNotInArrayRule.class.php
   3.x/trunk/limb/validation/tests/cases/rule/.setup.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbNotInArrayRuleTest.class.php
Modified:
   3.x/trunk/limb/validation/tests/cases/rule/lmbAtleastOneFieldRequiredRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbBaseValidationRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbCallbackRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbDateRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbDomainRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbEmailRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbI18NSizeRangeTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbIdentifierRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbInvalidValueRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbLocaleDateRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbMatchRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbNumericPrecisionRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbNumericValueRangeRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbPatternRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredObjectRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbSizeRangeRuleTest.class.php
   3.x/trunk/limb/validation/tests/cases/rule/lmbUrlRuleTest.class.php
Log:
-- new lmbNotInArrayRule validation rule added
-- minor refactoring in validation rules tests

Added: 3.x/trunk/limb/validation/src/rule/lmbNotInArrayRule.class.php
===================================================================
--- 3.x/trunk/limb/validation/src/rule/lmbNotInArrayRule.class.php	                        (rev 0)
+++ 3.x/trunk/limb/validation/src/rule/lmbNotInArrayRule.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -0,0 +1,47 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+lmb_require('limb/validation/src/rule/lmbSingleFieldRule.class.php');
+
+/**
+ * Checks that field is not not in a list of restricted values 
+ * Example of usage:
+ * <code>
+ *  lmb_require('limb/validation/src/rule/lmbNotInArrayRule.class.php');
+ *  $validator->addRule(new lmbMatchRule('login', array('www', 'mail', 'smtp')));
+ * </code>
+ * @package validation
+ * @version $Id$
+ */
+class lmbNotInArrayRule extends lmbSingleFieldRule
+{
+  /**
+  * @var array A list of not allowed values
+  */
+  protected $restricted_values = array();
+
+  /**
+  * Constructor.
+  * @param string Field name
+  * @param array List of restricted values
+  * @param string Custom error message
+  */   
+  function __construct($field_name, $restricted_values, $custom_error = '')
+  {
+    parent :: __construct($field_name, $custom_error);
+    
+    $this->restricted_values = $restricted_values;
+  }
+
+  function check($value)
+  { 
+    if(in_array($value, $this->restricted_values))
+      $this->error('{Field} has not allowed value.');
+  }
+}
+

Added: 3.x/trunk/limb/validation/tests/cases/rule/.setup.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/.setup.php	                        (rev 0)
+++ 3.x/trunk/limb/validation/tests/cases/rule/.setup.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -0,0 +1,4 @@
+<?php
+require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
+
+?>

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbAtleastOneFieldRequiredRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbAtleastOneFieldRequiredRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbAtleastOneFieldRequiredRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbAtleastOneFieldRequiredRule.class.php');
 
 class lmbAtleastOneFieldRequiredRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbBaseValidationRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbBaseValidationRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbBaseValidationRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html
  */
-lmb_require(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbBaseValidationRule.class.php');
 lmb_require('limb/validation/src/rule/lmbValidationRule.interface.php');
 lmb_require('limb/validation/src/lmbValidator.class.php');

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbCallbackRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbCallbackRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbCallbackRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html
  */
-lmb_require(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbCallbackRule.class.php');
 
 class lmbCallbackRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbDateRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbDateRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbDateRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbDateRule.class.php');
 
 class lmbDateRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbDomainRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbDomainRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbDomainRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
-lmb_require(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbDomainRule.class.php');
 
 class lmbDomainRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbEmailRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbEmailRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbEmailRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html
  */
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbEmailRule.class.php');
 
 class lmbEmailRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbI18NSizeRangeTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbI18NSizeRangeTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbI18NSizeRangeTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -7,7 +7,6 @@
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
 lmb_require('limb/validation/src/rule/lmbI18NSizeRangeRule.class.php');
-lmb_require('limb/validation/tests/cases/rule/lmbValidationRuleTestCase.class.php');
 
 class lmbI18NSizeRangeTest extends lmbValidationRuleTestCase
 {

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbIdentifierRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbIdentifierRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbIdentifierRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
-lmb_require(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbIdentifierRule.class.php');
 
 class lmbIdentifierRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbInvalidValueRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbInvalidValueRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbInvalidValueRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbInvalidValueRule.class.php');
 
 class lmbInvalidValueRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbLocaleDateRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbLocaleDateRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbLocaleDateRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -7,7 +7,6 @@
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
 lmb_require('limb/validation/src/rule/lmbLocaleDateRule.class.php');
-lmb_require('limb/validation/tests/cases/rule/lmbValidationRuleTestCase.class.php');
 
 class lmbLocaleDateRuleTest extends lmbValidationRuleTestCase
 {

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbMatchRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbMatchRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbMatchRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html
  */
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbMatchRule.class.php');
 
 class lmbMatchRuleTest extends lmbValidationRuleTestCase

Added: 3.x/trunk/limb/validation/tests/cases/rule/lmbNotInArrayRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbNotInArrayRuleTest.class.php	                        (rev 0)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbNotInArrayRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -0,0 +1,55 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+lmb_require('limb/validation/src/rule/lmbNotInArrayRule.class.php');
+
+class lmbNotInArrayRuleTest extends lmbValidationRuleTestCase
+{
+  function testNotInArrayOk()
+  {
+    $rule = new lmbNotInArrayRule('testfield', array('www', 'ftp', 'smtp', 'mail'));
+
+    $data = new lmbSet();
+    $data->set('testfield', 'peaches');
+
+    $this->error_list->expectNever('addError');
+
+    $rule->validate($data, $this->error_list);
+  }
+
+  function testInArrayError()
+  {
+    $rule = new lmbNotInArrayRule('testfield', array('www', 'ftp', 'smtp', 'mail'));
+
+    $data = new lmbSet();
+    $data->set('testfield', 'www');
+
+    $this->error_list->expectOnce('addError',
+                                  array(lmb_i18n('{Field} has not allowed value.', 'validation'),
+                                        array('Field'=>'testfield'),
+                                        array()));
+ 
+    $rule->validate($data, $this->error_list);
+  }
+
+  function testInArrayCustomError()
+  {
+    $rule = new lmbNotInArrayRule('testfield', array('www', 'ftp', 'smtp', 'mail'), $error = 'my_custom_error');
+
+    $data = new lmbSet();
+    $data->set('testfield', 'www');
+
+    $this->error_list->expectOnce('addError',
+                                  array($error,
+                                        array('Field'=>'testfield'),
+                                        array()));
+ 
+    $rule->validate($data, $this->error_list);
+  }
+}
+

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericPrecisionRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericPrecisionRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericPrecisionRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbNumericPrecisionRule.class.php');
 
 class lmbNumericPrecisionRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericValueRangeRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericValueRangeRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericValueRangeRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbNumericValueRangeRule.class.php');
 
 class lmbNumericValueRangeRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbPatternRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbPatternRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbPatternRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbPatternRule.class.php');
 
 class lmbPatternRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredObjectRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredObjectRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredObjectRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html
  */
-lmb_require(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbRequiredObjectRule.class.php');
 
 class TestObjectForThisRule{}

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html
  */
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbRequiredRule.class.php');
 
 class lmbRequiredRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbSizeRangeRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbSizeRangeRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbSizeRangeRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbSizeRangeRule.class.php');
 
 class lmbSizeRangeRuleTest extends lmbValidationRuleTestCase

Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbUrlRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbUrlRuleTest.class.php	2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbUrlRuleTest.class.php	2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
  */
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
 lmb_require('limb/validation/src/rule/lmbUrlRule.class.php');
 
 class lmbUrlRuleTest extends lmbValidationRuleTestCase



More information about the limb-svn mailing list