/** * @test */ function filter_invalid_integer_input() { $factory = new ValidationFactory(); $v = $factory->on(['int' => '100', 'big' => '101', 'bad' => '12345678901234567890123456789012345678901234567890']); $value1 = (int) $v->is('int', $factory->rules()->withType('integer')->required()->max(100)); $value2 = (int) $v->is('big', $factory->rules()->withType('integer')->required()->max(100)); $value3 = (int) $v->is('bad', $factory->rules()->withType('integer')->required()); $this->assertEquals('100', $value1); $this->assertEquals(false, $value2); $this->assertEquals(false, $value3); $this->assertEquals('exceeds max value', $v->message('big')); $this->assertEquals('required item', $v->message('bad')); }
/** * @test */ function verify_validates_a_value() { $rule = $this->factory->rules(); $this->assertEquals('test', $this->validate->verify('test', $rule->withType('text'))); $this->assertEquals('test', $this->validate->verify('TEST', $rule->withType('text')->string('lower'))); $this->assertEquals(false, $this->validate->verify('b@d', $rule->withType('text')->pattern('[a-z]*'))); }
/** * @test */ function test2() { $rule0 = $this->factory->rules()->withType('text'); $rule1 = $this->factory->rules()->withType('text'); $this->assertEquals($rule0, $rule1); $this->assertNotSame($rule0, $rule1); }
/** * @test */ function closure_with_error() { /** * @param ValueTO $v */ $filter = function ($v) { $val = $v->getValue(); $val .= ':bad'; $v->setValue($val); $v->setError(__METHOD__); $v->setMessage('Closure with Error'); }; $found = $this->verify->is('test', $this->factory->rules()->withType('text')->custom($filter)); $this->assertEquals(false, $found); /** @var ValueTO $valTo */ $valTo = $this->verify->apply('test', $this->factory->rules()->withType('text')->custom($filter)); $this->assertTrue($valTo->fails()); $this->assertTrue($valTo->getBreak()); $this->assertEquals('test:bad', $valTo->getValue()); $this->assertEquals('Closure with Error', $valTo->message()); }