Jyxo\Input\ValidatorTest::testCallback PHP Метод

testCallback() публичный Метод

Tests Callback validator.
public testCallback ( )
    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));
        }
    }