Преглед изворни кода

Birth Certificate validator

Andrew Grant пре 6 месеци
родитељ
комит
739d5fa474

+ 1 - 0
src/main/java/scot/carricksoftware/grants/constants/ValidationConstants.java

@@ -39,6 +39,7 @@ public class ValidationConstants {
     public static final String SEX_IS_NULL = "Sex cannot be null.";
     public static final String WHEN_BORN_INCORRECT_FORMAT = "The format should be dd/MM/yyyy hh:mm.";
     public static final String WHEN_BORN_IS_NULL = "When born cannot be null.";
+    public static final String FATHER_AND_UNTRACKED_FATHER = "One and only one father and untracked father must be specified.";
 
     public static final String PLACE_IS_NULL = "The place cannot be null.";
     public static final String COUNTRY_IS_NULL = "The country cannot be null.";

+ 6 - 0
src/main/java/scot/carricksoftware/grants/validators/certificates/birthcertificate/BirthCertificateCommandPartThreeValidatorImpl.java

@@ -32,6 +32,7 @@ public class BirthCertificateCommandPartThreeValidatorImpl implements BirthCerti
         validateSex(birthCertificateCommand, bindingResult);
         validateWhenBorn(birthCertificateCommand, bindingResult);
         validateWhereBorn(birthCertificateCommand, bindingResult);
+        validateFatherAndUntrackedFather(birthCertificateCommand, bindingResult);
     }
 
     private void validateWhereBorn(BirthCertificateCommand birthCertificateCommand, BindingResult bindingResult) {
@@ -49,4 +50,9 @@ public class BirthCertificateCommandPartThreeValidatorImpl implements BirthCerti
         validateTypes.validatePastDateAndTime(birthCertificateCommand.getWhenBorn(), "whenBorn", ValidationConstants.WHEN_BORN_IS_NULL, ValidationConstants.WHEN_BORN_INCORRECT_FORMAT, ValidationConstants.DATE_IN_FUTURE,bindingResult);
     }
 
+    private void validateFatherAndUntrackedFather(BirthCertificateCommand birthCertificateCommand, BindingResult bindingResult) {
+        logger.debug("Validating father and untracked father");
+        validateTypes.validatePersonAndUntrackedPerson(birthCertificateCommand.getFather(), birthCertificateCommand.getUntrackedFather(), "father", "untrackedFather", ValidationConstants.FATHER_AND_UNTRACKED_FATHER,bindingResult);
+    }
+
 }

+ 5 - 0
src/main/java/scot/carricksoftware/grants/validators/helpers/ValidateTypes.java

@@ -30,4 +30,9 @@ public interface ValidateTypes {
 
     @SuppressWarnings("EmptyMethod")
     void validatePastDateAndTime(@SuppressWarnings("unused") String dateString, @SuppressWarnings("unused") String fieldName, @SuppressWarnings("unused") String nullMessage, @SuppressWarnings("unused") String formatMessage, @SuppressWarnings("unused") String pastMessage, @SuppressWarnings("unused") BindingResult bindingResult);
+
+    @SuppressWarnings("EmptyMethod")
+    void validatePersonAndUntrackedPerson(Person person, String untrackedPerson, String personFieldName, String untrackedFieldName, String message,  BindingResult bindingResult);
+
+
 }

+ 12 - 0
src/main/java/scot/carricksoftware/grants/validators/helpers/ValidateTypesImpl.java

@@ -104,4 +104,16 @@ public class ValidateTypesImpl implements ValidateTypes {
         }
     }
 
+    @Override
+    public void validatePersonAndUntrackedPerson(Person person, String untrackedPerson, String personFieldName, String untrackedFieldName, String message, BindingResult bindingResult) {
+       boolean error = person == null && (untrackedPerson == null || untrackedPerson.trim().isEmpty());
+        if (!(person == null) && untrackedPerson != null &&  !(untrackedPerson.trim().isEmpty())) {
+            error = true;
+        }
+        if (error) {
+            bindingResult.rejectValue(personFieldName, ApplicationConstants.EMPTY_STRING, null, message);
+            bindingResult.rejectValue(untrackedFieldName, ApplicationConstants.EMPTY_STRING, null, message);
+        }
+    }
+
 }

+ 0 - 1
src/test/java/scot/carricksoftware/grants/bootstrap/DataLoadPeopleTest.java

@@ -62,7 +62,6 @@ public class DataLoadPeopleTest {
                 found = true;
                 break;
             }
-
         }
         assertTrue(found);
     }