/** * Setup simple builder for array */ public function testValidatorBuilderForOneRuleForArray() { $validator = new ValidatorBuilder(); try { $validator->add('some', Validator::create()->arrayInput(new Numeric())->setError('"{{name}}" is not numeric, is equal "{{input}}"')); $validator->assert(['some' => ['something']]); } catch (ValidatorException $e) { $this->assertEquals('Invalid Arguments', $e->getMessage()); $this->assertArrayHasKey('some', $e->getErrors()); } }
/** * Complex test */ public function testErrorTextValidationInComplex() { $validator = Validator::create()->setName('username')->alphaNumeric('_')->length(1, 15)->noWhitespace(); $ruleText = "username must contain only letters, digits and \"_\"\n" . "username must have a length between 1 and 15\n" . "username must not contain whitespace"; $this->assertEquals($validator->__toString(), $ruleText); $customRuleText = "Username must contain only letters, digits and underscore, \n" . "must have a length between 1 and 15"; $validator->setError($customRuleText); $this->assertEquals($validator->__toString(), $customRuleText); $this->assertFalse($validator->validate('user#name')); $this->assertFalse($validator('user#name')); $this->assertCount(1, $validator->getErrors()); }