add check to ensure from and to office are not the same.

This commit is contained in:
Keith Woodlock
2012-07-16 17:16:33 +01:00
parent cbbeb50f98
commit 983a61e939
2 changed files with 18 additions and 0 deletions
@@ -72,6 +72,20 @@ public class DataValidatorBuilder {
return this;
}
public DataValidatorBuilder notSameAsParameter(String linkedParameterName, Object linkedValue) {
if (value == null && linkedValue == null && ignoreNullValue) {
return this;
}
if (value != null && value.equals(linkedValue)) {
StringBuilder validationErrorCode = new StringBuilder("validation.msg.").append(resource).append(".").append(linkedParameterName).append(".same.as.").append(parameter);
StringBuilder defaultEnglishMessage = new StringBuilder("The parameter ").append(linkedParameterName).append(" is same as ").append(parameter).append(".");
ApiParameterError error = ApiParameterError.parameterError(validationErrorCode.toString(), defaultEnglishMessage.toString(), linkedParameterName, linkedValue, value);
dataValidationErrors.add(error);
}
return this;
}
public DataValidatorBuilder notNull() {
if (value == null && !ignoreNullValue) {
StringBuilder validationErrorCode = new StringBuilder("validation.msg.").append(resource).append(".").append(parameter).append(".cannot.be.blank");
@@ -33,6 +33,10 @@ public class BranchMoneyTransferCommandValidator {
baseDataValidator.reset().parameter("fromOfficeId").value(command.getFromOfficeId()).notNull();
}
if (command.getFromOfficeId() != null && command.getToOfficeId() != null) {
baseDataValidator.reset().parameter("fromOfficeId").value(command.getFromOfficeId()).notSameAsParameter("toOfficeId", command.getToOfficeId());
}
baseDataValidator.reset().parameter("transactionDate").value(command.getTransactionLocalDate()).notNull();
baseDataValidator.reset().parameter("currencyCode").value(command.getCurrencyCode()).notBlank();
baseDataValidator.reset().parameter("transactionAmount").value(command.getTransactionAmountValue()).notNull();