good = $good; } function export() { return array_map(function($v) { return $v[(int)$this->good]; }, array( "any" => [0,1], "boolean" => ["nay", true], "containing" => ["im 1", "im 2"], "containing2" => [[1], [1,2]], "email" => ["@nirvana", "mike@php.net"], "float" => ["foo", 123.123], "integer" => [123.1, 123], "ip" => ["543.234.123.000", "123.234.98.0"], "len" => ["foo","foobar"], "matching" => ["foo","foo"], "nothing" => [0, ""], "numeric" => ["123foo123", "123.123"], "printable" => ["\r\n", "easy test"], "scalar" => [null, 1], "url" => ["this-::is a h#rd one", "http://because/probably?everything=valid#here"], )); } } class ValidatorTest extends \PHPUnit_Framework_TestCase { /** * @var \ascertain\Test */ protected $good; /** * @var \ascertain\Test */ protected $bad; protected function setUp() { $this->good = new Test(true); $this->bad = new Test(false); } public function testTestNothing() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("nothing")->isNothing("error"); $this->assertEquals(0, $good->hasErrors()); $good->that("nothing")->isNotNothing("error"); $this->assertEquals(1, $good->hasErrors()); $this->assertSame(array("nothing"=>array("error")), $good->getErrors()); $good->resetErrors(); $this->assertSame(array(), $good->getErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("nothing")->isNotNothing("error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("nothing")->isNothing("error"); $this->assertEquals(1, $bad->hasErrors()); $this->assertSame(array("nothing"=>array("error")), $bad->getErrors()); $bad->resetErrors(); $this->assertSame(array(), $bad->getErrors()); } public function testTestNumeric() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("numeric")->isNumeric("error"); $this->assertEquals(0, $good->hasErrors()); $good->that("numeric")->isNotNumeric("error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("numeric")->isNotNumeric("error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("numeric")->isNumeric("error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestScalar() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("scalar")->isScalar("error"); $this->assertEquals(0, $good->hasErrors()); $good->that("scalar")->isNotScalar("error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("scalar")->isNotScalar("error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("scalar")->isScalar("error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestPrintable() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("printable")->isPrintable("error"); $this->assertEquals(0, $good->hasErrors()); $good->that("printable")->isNotPrintable("error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("printable")->isNotPrintable("error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("printable")->isPrintable("error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestLen() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("len")->isLen(4, "error"); $this->assertEquals(0, $good->hasErrors()); $good->that("len")->isNotLen(4, "error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("len")->isNotLen(4, "error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("len")->isLen(4, "error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestInteger() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("integer")->isInteger("error"); $this->assertEquals(0, $good->hasErrors()); $good->that("integer")->isNotInteger("error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("integer")->isNotInteger("error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("integer")->isInteger("error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestBoolean() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("boolean")->isBoolean("error"); $this->assertEquals(0, $good->hasErrors()); $good->that("boolean")->isNotBoolean("error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("boolean")->isNotBoolean("error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("boolean")->isBoolean("error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestFloat() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("float")->isFloat("error"); $this->assertEquals(0, $good->hasErrors()); $good->that("float")->isNotFloat("error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("float")->isNotFloat("error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("float")->isFloat("error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestUrl() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("url")->isUrl("error"); $this->assertEquals(0, $good->hasErrors()); $good->that("url")->isNotUrl("error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("url")->isNotUrl("error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("url")->isUrl("error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestEmail() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("email")->isEmail("error"); $this->assertEquals(0, $good->hasErrors()); $good->that("email")->isNotEmail("error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("email")->isNotEmail("error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("email")->isEmail("error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestIp() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("ip")->isIp("error"); $this->assertEquals(0, $good->hasErrors()); $good->that("ip")->isNotIp("error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("ip")->isNotIp("error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("ip")->isIp("error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestContaining() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("containing")->isContaining(2, "error"); $this->assertEquals(0, $good->hasErrors()); $good->that("containing")->isNotContaining(2, "error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("containing")->isNotContaining(2, "error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("containing")->isContaining(2, "error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestContaining2() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("containing2")->isContaining(1, "error"); $this->assertEquals(0, $good->hasErrors()); $good->that("containing2")->isNotContaining(1, "error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("containing2")->isNotContaining(1, "error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("containing2")->isContaining(1, "error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestMatching() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("matching")->isMatching("/^\w+\$/", "error"); $this->assertEquals(0, $good->hasErrors()); $good->that("matching")->isNotMatching("/^\w+\$/", "error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("matching")->isNotMatching("/^\$/", "error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("matching")->isMatching("/^\$/", "error"); $this->assertEquals(1, $bad->hasErrors()); } public function testTestAny() { $good = $this->good->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $good); $good->that("any")->isAny(array(1,2), "error"); $this->assertEquals(0, $good->hasErrors()); $good->that("any")->isNotAny(array(1,2), "error"); $this->assertEquals(1, $good->hasErrors()); $bad = $this->bad->assert(false); $this->assertInstanceOf("\\ascertain\\Assert", $bad); $bad->that("any")->isNotAny(array(1,2), "error"); $this->assertEquals(0, $bad->hasErrors()); $bad->that("any")->isAny(array(1,2), "error"); $this->assertEquals(1, $bad->hasErrors()); } }