Checkerberry db unterstützt die Definition von
benutzerspezifischen Validatoren. Die Validatoren müssen das Interface
de.conceptpeople.checkerberry.common.validation.Validator
implementieren, das im Folgenden dargestellt ist.
Beispiel 2.13. Validator-Interface
public interface Validator { /** * Liefert die Id des Validators. * * @return Id des Validators. */ ValidatorId getValidatorId(); /** * Prüft, ob der erwartete Wert von dem Validator geprüft werden soll. * * @param expectedValue * erwarteter Wert. * @return <code>true</code>, wenn der erwartete Wert mit dem impliziten * Pattern des Validators übereinstimmt.<br/> * <code>false</code>, sonst. */ boolean matches(String expectedValue); /** * Prüft, ob der erwartete Wert mit dem tatsächlichen Wert übereinstimmt. * Der erwartete Wert kann Operationen wie z.B. "=" oder "eq" beinhalten. * Die konkrete Implementierung des Validators muss diese Operatoren * berücksichtigen. * * @param currentValueAsString * aktueller Wert. * @param expectedValueWithOperatorAsString * erwartete Wert, der ggf. Operatoren enthält z.B. * "lt 2010-01-01". * * @return Status, ob und wenn ja, wie die Validierung durchgeführt wurde. */ ValidationStatus validate(String currentValueAsString, String expectedValueWithOperatorAsString); }
Jeder Validator wird über seine Id angesprochen. Die Methode
getValidatorId
liefert diese Id zurück. Durch den
Aufruf der Methode matches
entscheidet checkerberry
db, ob der Validator für die Überprüfung des aktuellen Wertes aus den
erwarteten Testdaten verwendet werden soll. Liefert die Methode
matches
den Wert true
zurück,
wird danach die Methode validate
aufgerufen, die
die Überprüfung des erwarteten mit dem tatsächlichen Wert durchführt.
Die Methode liefert den Status der Validierung. Die möglichen Werte
sind:
ValidationStatus.VALIDATED_WITH_SUCCESS
,
wenn die Validierung erfolgreich war
ValidationStatus.VALIDATED_WITH_FAILURE
,
wenn die Validierung fehlerhaft war
ValidationStatus.VALIDATION_SKIPPED
, wenn
die Validierung nicht durchgeführt werden konnte oder
sollte.
Damit der Validator verwendet werden kann, muss er, wie im nächsten Abschnitt beschrieben, an checkerberry db registriert werden.