public function testValidate() { $validation = new Validate\Validation(array('callbacks' => array('is_lc' => function ($s) { return mb_strtolower($s) == $s; }), 'mb_max_length' => 10, 'regex' => '/a/', 'type' => 'string')); $tests = array(array('input' => 'This is too long.', 'expect' => false, 'expect_last_failure' => 'mb_max_length'), array('input' => 'this is also too long.', 'expect' => false, 'expect_last_failure' => 'mb_max_length'), array('input' => 'Yada', 'expect' => false, 'expect_last_failure' => 'is_lc (callback)'), array('input' => 12345, 'expect' => false, 'expect_last_failure' => 'types'), array('input' => 'foofoo', 'expect' => false, 'expect_last_failure' => 'regex'), array('input' => 'bla', 'expect' => true, 'expect_last_failure' => null)); foreach ($tests as $test) { $input = $test['input']; $expect = $test['expect']; $expect_last_failure = $test['expect_last_failure']; $this->assertEquals($expect, $validation->validate($input), "validate(\"{$input}\") returns expected result."); $this->assertEquals($expect_last_failure, $validation->getLastFailure(), "getLastFailure() returns expected result."); } }
<?php /** * Example script that demonstrates the use of the Validation class. * The Validation class is rarely used stand-alone as it is only able to validate a single value. * * @author Craig Manley * @version $Id: validation.php,v 1.3 2016/06/13 20:04:08 cmanley Exp $ * @package Validate */ require_once __DIR__ . '/../src/Validation.php'; $validation = new Validate\Validation(array('mb_max_length' => 10, 'regex' => '/a/', 'callbacks' => array('is_lc' => function ($s) { return strtolower($s) == $s; }))); $tests = array(array('data' => 'This is too long.', 'expect' => false), array('data' => 'this is also too long.', 'expect' => false), array('data' => 'Yaba', 'expect' => false), array('data' => 'gogo', 'expect' => false), array('data' => 'bla', 'expect' => true)); foreach ($tests as $test) { $data = $test['data']; print "Test: {$data}\n"; print "\tValid?: " . (int) $validation->validate($data) . "\n"; print "\tLast failure: " . print_r($validation->getLastFailure(), true) . "\n"; print "\tRead max_length: " . ($validation->max_length ? $validation->max_length : 'null') . "\n"; print ($validation->validate($data) == $test['expect'] ? 'PASS' : 'FAIL') . "\n"; print "\n"; }