38 lines
1.1 KiB
PHP
38 lines
1.1 KiB
PHP
<?php
|
|
|
|
require_once 'src/SimpleValidator/Base.php';
|
|
require_once 'src/SimpleValidator/Validators/Unique.php';
|
|
|
|
use SimpleValidator\Validators\Unique;
|
|
|
|
class UniqueValidatorTest extends PHPUnit_Framework_TestCase
|
|
{
|
|
public function testValidator()
|
|
{
|
|
$pdo = new PDO('sqlite::memory:');
|
|
$pdo->exec('CREATE TABLE mytable (id INTEGER, toto TEXT)');
|
|
|
|
$message = 'field must be unique';
|
|
|
|
$v = new Unique('toto', $message, $pdo, 'mytable');
|
|
|
|
$this->assertEquals($message, $v->getErrorMessage());
|
|
|
|
$this->assertTrue($v->execute(array('toto' => '')));
|
|
$this->assertTrue($v->execute(array('toto' => null)));
|
|
|
|
$this->assertTrue($v->execute(array('toto' => 'titi')));
|
|
|
|
$pdo->exec("INSERT INTO mytable VALUES ('1', 'truc')");
|
|
|
|
$this->assertTrue($v->execute(array('toto' => 'titi')));
|
|
|
|
$pdo->exec("INSERT INTO mytable VALUES ('2', 'titi')");
|
|
|
|
$this->assertFalse($v->execute(array('toto' => 'titi')));
|
|
|
|
$this->assertTrue($v->execute(array('toto' => 'titi', 'id' => '2')));
|
|
|
|
$this->assertFalse($v->execute(array('toto' => 'truc', 'id' => '2')));
|
|
}
|
|
} |