public function testRules() { $successData = array('required' => 'hello', 'in' => 'dog', 'int' => '123', 'min' => '20', 'max' => '30', 'between' => '40', 'min_length' => 'abcdefg', 'max_length' => 'abcdefgh', 'between_length' => 'abcdefg', 'length' => '123456', 'regexp' => 'abc123', 'email' => '*****@*****.**', 'date' => '2013-12-1', 'date_format' => '2013-5-12 12:00:00', 'date_before' => '2012-5-5', 'date_after' => '2012-5-6', 'url' => 'http://google.com/search', 'alpha' => 'helloWorld', 'alpha_num' => 'hello123', 'alpha_dash' => 'hello-123_', 'original' => 'awesome', 'same' => 'awesome', 'different' => 'awful'); $failData = array('required' => '', 'in' => 'tiger', 'int' => 'x123', 'min' => '1', 'max' => '100', 'between' => '60', 'min_length' => 'ab', 'max_length' => 'abcdefghijklmnopq', 'between_length' => 'abc', 'length' => '12345', 'regexp' => '123abc', 'email' => 'hello.com', 'date' => '33', 'date_format' => '5/12/2013 12:00:00', 'date_before' => '2013-3-3', 'date_after' => '2011-9-9', 'url' => 'example.com/index.html', 'alpha' => 'hello123', 'alpha_num' => 'hello, world', 'alpha_dash' => 'hello, world', 'original' => 'awesome', 'same' => 'awful', 'different' => 'awesome'); $rules = array('required' => 'required', 'in' => 'in:cat,dog,wolf', 'int' => 'int', 'min' => 'min:10', 'max' => 'max:50', 'between' => 'between:10,50', 'min_length' => 'min_length:5', 'max_length' => 'max_length:10', 'between_length' => 'between_length:5,10', 'length' => 'length:6', 'regexp' => 'regexp:/^[a-z]+\\d+$/', 'email' => 'email', 'date' => 'date', 'date_format' => 'date_format:Y-m-d H:i:s', 'date_before' => 'date_before:2013-1-1', 'date_after' => 'date_after:2012-1-1', 'url' => 'url', 'alpha' => 'alpha', 'alpha_num' => 'alpha_num', 'alpha_dash' => 'alpha_dash', 'same' => 'same:original', 'different' => 'different:original'); foreach ($rules as $key => $value) { // success $validator = new ArkValidator($successData, array($key => $value)); $this->assertTrue($validator->valid(), "validate " . $key); $validator->mustValid(); $this->assertEquals(count($validator->getErrors()->all()), 0); // fail $validator = new ArkValidator($failData, array($key => $value)); $this->assertEquals($validator->valid(), false); try { $validator->mustValid(); throw new Exception("mustValid should throw an exception", 1); } catch (ArkValidatorException $e) { $this->assertEquals(count($e->getErrors()->all()), 1); } } }