N°6414 Move existing AbstractSimpleField::Validate impl to custom validators

- LinkedSetField
- SelectObjectField
- MultipleChoicesField (warning this hierarchy contains non multiple value fields like SelectField !)

Also change AbstractValidator::Validate signature : now we are returning an array of error messages, so that we can return multiple ones
This commit is contained in:
Pierre Goiffon
2023-06-28 17:56:04 +02:00
parent d085f15b6d
commit 6cc2d49cd5
20 changed files with 526 additions and 172 deletions

View File

@@ -100,4 +100,28 @@ class FieldTest extends ItopTestCase
$this->assertTrue($bIsSubFormFieldValidAfterFieldUpdate);
$this->assertCount(0, $oSubFormField->GetErrorMessages());
}
public function testRemoveValidatorsOfClass(): void {
$oField = new StringField('test');
$this->assertCount(0, $oField->GetValidators());
$oField->RemoveValidatorsOfClass(CustomRegexpValidator::class);
$this->assertCount(0, $oField->GetValidators());
$oField->AddValidator(new IntegerValidator());
$this->assertCount(1, $oField->GetValidators());
$oField->RemoveValidatorsOfClass(CustomRegexpValidator::class);
$this->assertCount(1, $oField->GetValidators());
$oField->AddValidator(new CustomRegexpValidator('^.*$'));
$this->assertCount(2, $oField->GetValidators());
$oField->RemoveValidatorsOfClass(CustomRegexpValidator::class);
$this->assertCount(1, $oField->GetValidators());
$oField->AddValidator(new CustomRegexpValidator('^.*$'));
$oField->AddValidator(new CustomRegexpValidator('^.*$'));
$this->assertCount(3, $oField->GetValidators());
$oField->RemoveValidatorsOfClass(CustomRegexpValidator::class);
$this->assertCount(1, $oField->GetValidators());
}
}