<?php
namespace Melody\Validation;
use Melody\Validation\Common\Collections\ConstraintsCollection; use Melody\Validation\ValidationGroupsFactory; use Melody\Validation\Validator as v;
class ValidatorTest extends \PHPUnit_Framework_TestCase { public function test_validate_email() { $validator = new Validator(); $email = "valid@email.com";
$validEmail = v::email();
$this->assertTrue($validEmail->validate($email)); $this->assertTrue($validator->validate($email, $validEmail)); }
public function test_validate_with_constraint_reuse() { $validEmail = v::email(); $validUsername = $validEmail->add(v::minLength(10)->maxLength(20));
$username = "valid@username.com"; $invalidMinLength = "invalid"; $invalidMaxLength = "invalid"; $invalidUsername = "invalid @email.com";
$this->assertTrue($validUsername->validate($username)); $this->assertFalse($validUsername->validate($invalidMinLength)); $this->assertFalse($validUsername->validate($invalidMaxLength)); $this->assertFalse($validUsername->validate($invalidUsername)); }
public function test_validate_with_not_statement() { $validator = new Validator();
$username = "marcelsud"; $validUsername = v::length(6, 12)->alnum()->noWhitespace(); $this->assertTrue($validUsername->validate($username));
$password = "pass@2012"; $validPassword = v::length(6, 12) ->containsSpecial(1) ->containsLetter(3) ->containsDigit(2) ->noWhitespace();
$this->assertTrue($validator->validate($password, $validPassword)); $this->assertTrue($validPassword->validate($password)); }
public function test_custom_messages_from_validator_configuration() { $validator = new Validator();
$validator->validate("marcelsud @gmail.com", v::email()); $errors = $validator->getViolations(array( 'email' => "'{{input}}' deve conter um email válido" ));
$this->assertEquals($errors['email'], "'marcelsud @gmail.com' deve conter um email válido"); }
public function test_custom_messages_from_chained_validator_configuration() { $validEmail = v::email();
$validEmail->validate("marcelsud @gmail.com");
$errors = $validEmail->getViolations(array(
'email' => "'{{input}}' deve conter um email válido"
));
$this->assertEquals($errors['email'], "'marcelsud @gmail.com' deve conter um email válido"); }
public function test_diplicated_constraint_exception() { $this->setExpectedException('InvalidArgumentException');
$this->assertInstanceOf('InvalidArgumentException', v::email()->email()); } }
|