Beispiel #1
0
 /**
  * Tests Callback validator.
  */
 public function testCallback()
 {
     $good = array(1, '1', '0.1');
     $wrong = array(new \stdClass(), false, 'OLOL');
     $callbacks = array('is_numeric', create_function('$a', 'return is_numeric($a);'), '\\SomeOtherPrefix\\Some\\Validator::isNumeric', array('\\SomeOtherPrefix\\Some\\Validator', 'isNumeric'), function ($a) {
         return is_numeric($a);
     });
     foreach ($callbacks as $callback) {
         $validator = new Validator\Callback($callback);
         foreach ($good as $value) {
             $this->assertTrue($validator->isValid($value));
         }
         foreach ($wrong as $value) {
             $this->assertFalse($validator->isValid($value));
         }
         $this->assertSame($callback, $validator->getCallback());
         $this->assertSame(array(), $validator->getAdditionalParams());
     }
     // Test additional parameters
     $good = array(3, 9, 33);
     $wrong = array(2, 100, true, new \stdClass(), 'OHAI');
     $callback = function ($value, $divisor) {
         return is_numeric($value) && 0 === $value % $divisor;
     };
     $validator = new Validator\Callback($callback, 3);
     $this->assertSame(array(3), $validator->getAdditionalParams());
     foreach ($good as $value) {
         $this->assertTrue($validator->isValid($value));
     }
     foreach ($wrong as $value) {
         $this->assertFalse($validator->isValid($value));
     }
     // Ensure that there is no such function defined
     $funcName = 'definitelyNonExistentFunction';
     if (function_exists($funcName)) {
         $this->markTestSkipped(sprintf('Function %s exists', $funcName));
     }
     // Test exception on invalid callback definition
     $invalidCallbacks = array($funcName, true, 1, new \stdClass());
     foreach ($invalidCallbacks as $callback) {
         try {
             $validator = new Validator\Callback($callback);
             $this->fail('Expected exception \\Jyxo\\Input\\Validator\\Exception.');
         } catch (\PHPUnit_Framework_AssertionFailedError $e) {
             throw $e;
         } catch (\Exception $e) {
             // Correctly thrown exception
             $this->assertInstanceOf('\\Jyxo\\Input\\Validator\\Exception', $e);
         }
     }
 }
Beispiel #2
0
 /**
  * Tests Callback validator.
  */
 public function testCallback()
 {
     $good = [1, '1', '0.1'];
     $wrong = [new \stdClass(), false, 'OLOL'];
     $callbacks = [function ($a) {
         return is_numeric($a);
     }];
     foreach ($callbacks as $callback) {
         $validator = new Validator\Callback($callback);
         foreach ($good as $value) {
             $this->assertTrue($validator->isValid($value));
         }
         foreach ($wrong as $value) {
             $this->assertFalse($validator->isValid($value));
         }
         $this->assertSame($callback, $validator->getCallback());
         $this->assertSame([], $validator->getAdditionalParams());
     }
     // Test additional parameters
     $good = [3, 9, 33];
     $wrong = [2, 100, true, new \stdClass(), 'OHAI'];
     $callback = function ($value, $divisor) {
         return is_numeric($value) && 0 === $value % $divisor;
     };
     $validator = new Validator\Callback($callback, 3);
     $this->assertSame([3], $validator->getAdditionalParams());
     foreach ($good as $value) {
         $this->assertTrue($validator->isValid($value));
     }
     foreach ($wrong as $value) {
         $this->assertFalse($validator->isValid($value));
     }
 }