/** * Test if validator properly produces and populates ValidationException. */ public function testValidatorException() { $validator = new Validator($this->connection, 'writers', null, null, ['name' => 'Leo Tolstoy']); $is_unique = $validator->unique('name'); $this->assertFalse($is_unique); $this->assertTrue($validator->hasErrors()); $exception = $validator->createException(); $this->assertInstanceOf(ValidationException::class, $exception); $this->assertTrue($exception->hasErrors()); $this->assertTrue($exception->hasError('name')); $this->assertFalse($exception->hasError('unknown_column_here')); }
public function testValidatorReturnsAllErrors() { $validator = new Validator($this->connection, 'writers', null, null, ['name' => 'Leo Tolstoy', 'birthday' => null]); $validator->unique('name'); $validator->present('birthday'); $this->assertTrue($validator->hasErrors()); $errors = $validator->getErrors(); $this->assertInternalType('array', $errors); $this->assertCount(2, $errors); $this->assertArrayHasKey('name', $errors); $this->assertInternalType('array', $errors['name']); $this->assertCount(1, $errors['name']); $this->assertEquals("Value of 'name' needs to be unique", $errors['name'][0]); $this->assertArrayHasKey('birthday', $errors); $this->assertInternalType('array', $errors['birthday']); $this->assertCount(1, $errors['birthday']); $this->assertEquals("Value of 'birthday' is required", $errors['birthday'][0]); }
/** * Test if error will be thrown for existing row that does produces a duplicate value, but changes ID. */ public function testExistingRecordReportsAnErrorOnDuplicateValueOnIdChange() { $validator = new Validator($this->connection, 'writers', 8, 1, ['name' => 'Alexander Pushkin']); $is_unique = $validator->unique('name'); $this->assertFalse($is_unique); $this->assertTrue($validator->hasErrors()); $name_errors = $validator->getFieldErrors('name'); $this->assertInternalType('array', $name_errors); $this->assertCount(1, $name_errors); }