Skip to content

Commit 3ce3454

Browse files
committed
Add uppercase and lowercase rule
1 parent 2d431c7 commit 3ce3454

File tree

6 files changed

+102
-0
lines changed

6 files changed

+102
-0
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,8 @@ Below is list of all available validation rules
272272
* [uploaded_file](#rule-uploaded_file)
273273
* [default/defaults](#rule-default)
274274
* [email](#rule-email)
275+
* [uppercase](#rule-uppercase)
276+
* [lowercase](#rule-lowercase)
275277
* [alpha](#rule-alpha)
276278
* [numeric](#rule-numeric)
277279
* [alpha_num](#rule-alpha_num)
@@ -392,6 +394,16 @@ Validation passes because we sets default value for `enabled` and `published` to
392394

393395
The field under this validation must be valid email address.
394396

397+
<a id="rule-uppercase"></a>
398+
#### uppercase
399+
400+
The field under this validation must be valid uppercase.
401+
402+
<a id="rule-lowercase"></a>
403+
#### lowercase
404+
405+
The field under this validation must be valid lowercase.
406+
395407
<a id="rule-alpha"></a>
396408
#### alpha
397409

src/Rules/Lowercase.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace Rakit\Validation\Rules;
4+
5+
use Rakit\Validation\Rule;
6+
7+
class Lowercase extends Rule
8+
{
9+
10+
protected $message = "The :attribute must be lowercase";
11+
12+
public function check($value)
13+
{
14+
return mb_strtolower($value, mb_detect_encoding($value)) === $value;
15+
}
16+
17+
}

src/Rules/Uppercase.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace Rakit\Validation\Rules;
4+
5+
use Rakit\Validation\Rule;
6+
7+
class Uppercase extends Rule
8+
{
9+
10+
protected $message = "The :attribute must be uppercase";
11+
12+
public function check($value)
13+
{
14+
return mb_strtoupper($value, mb_detect_encoding($value)) === $value;
15+
}
16+
17+
}

src/Validator.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ protected function registerBaseValidators()
104104
'callback' => new Rules\Callback,
105105
'before' => new Rules\Before,
106106
'after' => new Rules\After,
107+
'lowercase' => new Rules\Lowercase,
108+
'uppercase' => new Rules\Uppercase,
107109
'defaults' => new Rules\Defaults,
108110
'default' => new Rules\Defaults, // alias of defaults
109111
];

tests/Rules/LowercaseTest.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
use Rakit\Validation\Rules\Lowercase;
4+
5+
class LowercaseTest extends PHPUnit_Framework_TestCase
6+
{
7+
8+
public function setUp()
9+
{
10+
$this->rule = new Lowercase;
11+
}
12+
13+
public function testValids()
14+
{
15+
$this->assertTrue($this->rule->check('username'));
16+
$this->assertTrue($this->rule->check('full name'));
17+
$this->assertTrue($this->rule->check('full_name'));
18+
}
19+
20+
public function testInvalids()
21+
{
22+
$this->assertFalse($this->rule->check('USERNAME'));
23+
$this->assertFalse($this->rule->check('Username'));
24+
$this->assertFalse($this->rule->check('userName'));
25+
}
26+
27+
}

tests/Rules/UppercaseTest.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
use Rakit\Validation\Rules\Uppercase;
4+
5+
class UppercaseTest extends PHPUnit_Framework_TestCase
6+
{
7+
8+
public function setUp()
9+
{
10+
$this->rule = new Uppercase;
11+
}
12+
13+
public function testValids()
14+
{
15+
$this->assertTrue($this->rule->check('USERNAME'));
16+
$this->assertTrue($this->rule->check('FULL NAME'));
17+
$this->assertTrue($this->rule->check('FULL_NAME'));
18+
}
19+
20+
public function testInvalids()
21+
{
22+
$this->assertFalse($this->rule->check('username'));
23+
$this->assertFalse($this->rule->check('Username'));
24+
$this->assertFalse($this->rule->check('userName'));
25+
}
26+
27+
}

0 commit comments

Comments
 (0)