<?php 
 
namespace Melody\Validation\Constraints; 
 
use Melody\Validation\Validator as v; 
 
class LengthTest extends \PHPUnit_Framework_TestCase 
{ 
 
    public function test_valid_string_should_pass() 
    { 
        $this->assertTrue(v::length(5, 10)->validate('abcdef0123')); 
    } 
 
    public function test_invalid_string_should_fail_validation() 
    { 
        $this->assertFalse(v::length(2, 5)->validate('abcdef0123')); 
        $this->assertFalse(v::length(2, 5)->validate('')); 
    } 
 
    public function test_invalid_argument_exception_min()
 
    {
 
        $this->setExpectedException('InvalidArgumentException');
 
        $this->assertInstanceOf('InvalidArgumentException', v::length("invalid argument", 5)->validate('abcdef0123'));
 
    } 
 
    public function test_invalid_argument_exception_max()
 
    {
 
        $this->setExpectedException('InvalidArgumentException');
 
        $this->assertInstanceOf('InvalidArgumentException', v::length(2, "invalid argument")->validate('abcdef0123'));
 
    } 
 
    public function test_invalid_argument_exception_not_string()
 
    {
 
        $this->setExpectedException('InvalidArgumentException');
 
        $this->assertInstanceOf('InvalidArgumentException', v::length(2, 5)->validate(1));
 
    } 
} 
 
 |