Browse Source

Deprecate magic string comparison operators.

Robert Pustułka 8 years ago
parent
commit
a8c054967d
2 changed files with 27 additions and 23 deletions
  1. 8 2
      src/Validation/Validation.php
  2. 19 21
      tests/TestCase/Validation/ValidationTest.php

+ 8 - 2
src/Validation/Validation.php

@@ -295,51 +295,57 @@ class Validation
             return false;
         }
 
+        $message = 'Operator `%s` is deprecated, use constant `Validation::%s` instead.';
+
         $operator = str_replace([' ', "\t", "\n", "\r", "\0", "\x0B"], '', strtolower($operator));
         switch ($operator) {
             case 'isgreater':
+                deprecationWarning(sprintf($message, $operator, 'COMPARE_GREATER'));
             case static::COMPARE_GREATER:
                 if ($check1 > $check2) {
                     return true;
                 }
                 break;
             case 'isless':
+                deprecationWarning(sprintf($message, $operator, 'COMPARE_LESS'));
             case static::COMPARE_LESS:
                 if ($check1 < $check2) {
                     return true;
                 }
                 break;
             case 'greaterorequal':
+                deprecationWarning(sprintf($message, $operator, 'COMPARE_GREATER_OR_EQUAL'));
             case static::COMPARE_GREATER_OR_EQUAL:
                 if ($check1 >= $check2) {
                     return true;
                 }
                 break;
             case 'lessorequal':
+                deprecationWarning(sprintf($message, $operator, 'COMPARE_LESS_OR_EQUAL'));
             case static::COMPARE_LESS_OR_EQUAL:
                 if ($check1 <= $check2) {
                     return true;
                 }
                 break;
             case 'equalto':
+                deprecationWarning(sprintf($message, $operator, 'COMPARE_EQUAL'));
             case static::COMPARE_EQUAL:
                 if ($check1 == $check2) {
                     return true;
                 }
                 break;
             case 'notequal':
+                deprecationWarning(sprintf($message, $operator, 'COMPARE_NOT_EQUAL'));
             case static::COMPARE_NOT_EQUAL:
                 if ($check1 != $check2) {
                     return true;
                 }
                 break;
-            case 'sameas':
             case static::COMPARE_SAME:
                 if ($check1 === $check2) {
                     return true;
                 }
                 break;
-            case 'notsameas':
             case static::COMPARE_NOT_SAME:
                 if ($check1 !== $check2) {
                     return true;

+ 19 - 21
tests/TestCase/Validation/ValidationTest.php

@@ -841,45 +841,43 @@ class ValidationTest extends TestCase
     public function testComparison()
     {
         $this->assertFalse(Validation::comparison(7, null, 6));
-        $this->assertTrue(Validation::comparison(7, 'is greater', 6));
         $this->assertTrue(Validation::comparison(7, Validation::COMPARE_GREATER, 6));
-        $this->assertTrue(Validation::comparison(6, 'is less', 7));
         $this->assertTrue(Validation::comparison(6, Validation::COMPARE_LESS, 7));
-        $this->assertTrue(Validation::comparison(7, 'greater or equal', 7));
         $this->assertTrue(Validation::comparison(7, Validation::COMPARE_GREATER_OR_EQUAL, 7));
-        $this->assertTrue(Validation::comparison(7, 'greater or equal', 6));
         $this->assertTrue(Validation::comparison(7, Validation::COMPARE_GREATER_OR_EQUAL, 6));
-        $this->assertTrue(Validation::comparison(6, 'less or equal', 7));
         $this->assertTrue(Validation::comparison(6, Validation::COMPARE_LESS_OR_EQUAL, 7));
-        $this->assertTrue(Validation::comparison(7, 'equal to', 7));
         $this->assertTrue(Validation::comparison(7, Validation::COMPARE_EQUAL, 7));
-        $this->assertTrue(Validation::comparison(7, 'not equal', 6));
         $this->assertTrue(Validation::comparison(7, Validation::COMPARE_NOT_EQUAL, 6));
-        $this->assertTrue(Validation::comparison(7, 'same as', 7));
         $this->assertTrue(Validation::comparison(7, Validation::COMPARE_SAME, 7));
-        $this->assertTrue(Validation::comparison(7, 'not same as', '7'));
         $this->assertTrue(Validation::comparison(7, Validation::COMPARE_NOT_SAME, '7'));
-        $this->assertFalse(Validation::comparison(6, 'is greater', 7));
         $this->assertFalse(Validation::comparison(6, Validation::COMPARE_GREATER, 7));
-        $this->assertFalse(Validation::comparison(7, 'is less', 6));
         $this->assertFalse(Validation::comparison(7, Validation::COMPARE_LESS, 6));
-        $this->assertFalse(Validation::comparison(6, 'greater or equal', 7));
         $this->assertFalse(Validation::comparison(6, Validation::COMPARE_GREATER_OR_EQUAL, 7));
-        $this->assertFalse(Validation::comparison(6, 'greater or equal', 7));
         $this->assertFalse(Validation::comparison(6, Validation::COMPARE_GREATER_OR_EQUAL, 7));
-        $this->assertFalse(Validation::comparison(7, 'less or equal', 6));
         $this->assertFalse(Validation::comparison(7, Validation::COMPARE_LESS_OR_EQUAL, 6));
-        $this->assertFalse(Validation::comparison(7, 'equal to', 6));
         $this->assertFalse(Validation::comparison(7, Validation::COMPARE_EQUAL, 6));
-        $this->assertFalse(Validation::comparison(7, 'not equal', 7));
         $this->assertFalse(Validation::comparison(7, Validation::COMPARE_NOT_EQUAL, 7));
-        $this->assertFalse(Validation::comparison(7, 'same as', '7'));
         $this->assertFalse(Validation::comparison(7, Validation::COMPARE_SAME, '7'));
-        $this->assertFalse(Validation::comparison(7, 'not same as', 7));
         $this->assertFalse(Validation::comparison(7, Validation::COMPARE_NOT_SAME, 7));
-
         $this->assertTrue(Validation::comparison('6.5', Validation::COMPARE_NOT_EQUAL, 6));
         $this->assertTrue(Validation::comparison('6.5', Validation::COMPARE_LESS, 7));
+
+        $this->deprecated(function () {
+            $this->assertTrue(Validation::comparison(7, 'is greater', 6));
+            $this->assertTrue(Validation::comparison(6, 'is less', 7));
+            $this->assertTrue(Validation::comparison(7, 'greater or equal', 7));
+            $this->assertTrue(Validation::comparison(7, 'greater or equal', 6));
+            $this->assertTrue(Validation::comparison(6, 'less or equal', 7));
+            $this->assertTrue(Validation::comparison(7, 'equal to', 7));
+            $this->assertTrue(Validation::comparison(7, 'not equal', 6));
+            $this->assertFalse(Validation::comparison(6, 'is greater', 7));
+            $this->assertFalse(Validation::comparison(7, 'is less', 6));
+            $this->assertFalse(Validation::comparison(6, 'greater or equal', 7));
+            $this->assertFalse(Validation::comparison(6, 'greater or equal', 7));
+            $this->assertFalse(Validation::comparison(7, 'less or equal', 6));
+            $this->assertFalse(Validation::comparison(7, 'equal to', 6));
+            $this->assertFalse(Validation::comparison(7, 'not equal', 7));
+        });
     }
 
     /**
@@ -2602,13 +2600,13 @@ class ValidationTest extends TestCase
     {
         $image = TEST_APP . 'webroot/img/cake.power.gif';
         $this->assertTrue(Validation::fileSize($image, Validation::COMPARE_LESS, 1024));
-        $this->assertTrue(Validation::fileSize(['tmp_name' => $image], 'isless', 1024));
+        $this->assertTrue(Validation::fileSize(['tmp_name' => $image], Validation::COMPARE_LESS, 1024));
         $this->assertTrue(Validation::fileSize($image, Validation::COMPARE_LESS, '1KB'));
         $this->assertTrue(Validation::fileSize($image, Validation::COMPARE_GREATER_OR_EQUAL, 200));
         $this->assertTrue(Validation::fileSize($image, Validation::COMPARE_EQUAL, 201));
         $this->assertTrue(Validation::fileSize($image, Validation::COMPARE_EQUAL, '201B'));
 
-        $this->assertFalse(Validation::fileSize($image, 'isgreater', 1024));
+        $this->assertFalse(Validation::fileSize($image, Validation::COMPARE_GREATER, 1024));
         $this->assertFalse(Validation::fileSize(['tmp_name' => $image], Validation::COMPARE_GREATER, '1KB'));
     }