diff --git a/README.md b/README.md index 5bdb0d1..0dc77ee 100644 --- a/README.md +++ b/README.md @@ -287,6 +287,7 @@ Below is list of all available validation rules * [digits](#rule-digits) * [digits_between](#rule-digits_between) * [url](#rule-url) +* [integer](#rule-integer) * [ip](#rule-ip) * [ipv4](#rule-ipv4) * [ipv6](#rule-ipv6) @@ -513,6 +514,10 @@ $validation = $validator->validate($inputs, [ > For common URL scheme and mailto, we combine `FILTER_VALIDATE_URL` to validate URL format and `preg_match` to validate it's scheme. Except for JDBC URL, currently it just check a valid JDBC scheme. + +#### integer +The field under this rule must be integer. + #### ip diff --git a/src/Rules/Integer.php b/src/Rules/Integer.php new file mode 100644 index 0000000..04ffd7c --- /dev/null +++ b/src/Rules/Integer.php @@ -0,0 +1,17 @@ + new Rules\Max, 'between' => new Rules\Between, 'url' => new Rules\Url, + 'integer' => new Rules\Integer, 'ip' => new Rules\Ip, 'ipv4' => new Rules\Ipv4, 'ipv6' => new Rules\Ipv6, diff --git a/tests/Rules/IntegerTest.php b/tests/Rules/IntegerTest.php new file mode 100644 index 0000000..7e0304f --- /dev/null +++ b/tests/Rules/IntegerTest.php @@ -0,0 +1,33 @@ +rule = new Integer; + } + + public function testValids() + { + $this->assertTrue($this->rule->check(0)); + $this->assertTrue($this->rule->check('0')); + $this->assertTrue($this->rule->check('123')); + $this->assertTrue($this->rule->check('-123')); + $this->assertTrue($this->rule->check(123)); + $this->assertTrue($this->rule->check(-123)); + + } + + public function testInvalids() + { + $this->assertFalse($this->rule->check('foo123')); + $this->assertFalse($this->rule->check('123foo')); + $this->assertFalse($this->rule->check([123])); + $this->assertFalse($this->rule->check('123.456')); + $this->assertFalse($this->rule->check('-123.456')); + } + +}