Quellcode durchsuchen

ValidateOPtionalPlaceAndUntrackedPlace

Andrew Grant vor 5 Monaten
Ursprung
Commit
3482f498e4

+ 12 - 10
src/main/java/scot/carricksoftware/grants/validators/helpers/ValidateTwoFieldTypesImpl.java

@@ -16,28 +16,30 @@ public class ValidateTwoFieldTypesImpl implements ValidateTwoFieldTypes {
 
     @Override
     public void validatePersonAndUntrackedPerson(Person person, String untrackedPerson, String personFieldName, String untrackedFieldName, String message, BindingResult bindingResult) {
-        @SuppressWarnings("DuplicatedCode") boolean untrackedFound = (untrackedPerson != null && !untrackedPerson.isEmpty());
+        boolean untrackedFound = (untrackedPerson != null && !untrackedPerson.isEmpty());
         if ((person == null && !untrackedFound) || person != null && untrackedFound) {
-            bindingResult.rejectValue(personFieldName, ApplicationConstants.EMPTY_STRING, null, message);
-            bindingResult.rejectValue(untrackedFieldName, ApplicationConstants.EMPTY_STRING, null, message);
+            reportError(personFieldName, untrackedFieldName, message, bindingResult);
         }
     }
 
     @Override
     public void validatePlaceAndUntrackedPlace(Place place, String untrackedPlace, String placeFieldName, String untrackedFieldName, String message, BindingResult bindingResult) {
-        @SuppressWarnings("DuplicatedCode") boolean untrackedFound = (untrackedPlace != null && !untrackedPlace.isEmpty());
+    boolean untrackedFound = (untrackedPlace != null && !untrackedPlace.isEmpty());
         if ((place == null && !untrackedFound) || place != null && untrackedFound) {
-            bindingResult.rejectValue(placeFieldName, ApplicationConstants.EMPTY_STRING, null, message);
-            bindingResult.rejectValue(untrackedFieldName, ApplicationConstants.EMPTY_STRING, null, message);
+            reportError(placeFieldName, untrackedFieldName, message, bindingResult);
         } 
     }
 
     @Override
     public void validateOptionalPlaceAndUntrackedPlace(Place place, String untrackedPlace, String placeFieldName, String untrackedFieldName, String message, BindingResult bindingResult) {
-        if (!(place == null) && untrackedPlace != null &&  !(untrackedPlace.trim().isEmpty())) {
-            bindingResult.rejectValue(placeFieldName, ApplicationConstants.EMPTY_STRING, null, message);
-            bindingResult.rejectValue(untrackedFieldName, ApplicationConstants.EMPTY_STRING, null, message);
-        }
+      if (place!= null && (untrackedPlace != null && !untrackedPlace.isEmpty())) {
+          reportError(placeFieldName, untrackedFieldName, message, bindingResult);
+      }
+    }
+
+    private void reportError(String personFieldName, String untrackedFieldName, String message, BindingResult bindingResult) {
+        bindingResult.rejectValue(personFieldName, ApplicationConstants.EMPTY_STRING, null, message);
+        bindingResult.rejectValue(untrackedFieldName, ApplicationConstants.EMPTY_STRING, null, message);
     }
 
 }

+ 72 - 0
src/test/java/scot/carricksoftware/grants/validators/helpers/ValidateOptionalPlaceAndUntrackedPlaceTest.java

@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grants.validators.helpers;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.validation.BindingResult;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoInteractions;
+import static scot.carricksoftware.grants.GenerateCertificateRandomValues.GetRandomString;
+import static scot.carricksoftware.grants.GenerateRandomPlaceValues.GetRandomPlace;
+
+@ExtendWith(MockitoExtension.class)
+class ValidateOptionalPlaceAndUntrackedPlaceTest {
+
+    private ValidateTwoFieldTypes validateTwoFieldTypes;
+
+    private String placeField;
+    private String untrackedField;
+    private String message;
+
+    @Mock
+    private BindingResult bindingResultMock;
+
+    @BeforeEach
+    void setUp() {
+        validateTwoFieldTypes = new ValidateTwoFieldTypesImpl();
+        placeField = "personField";
+        untrackedField = "untrackedField";
+        message = "message";
+    }
+
+    @Test
+    void bothNullTest() {
+        validateTwoFieldTypes.validateOptionalPlaceAndUntrackedPlace(null, null, placeField, untrackedField, message, bindingResultMock);
+        verifyNoInteractions(bindingResultMock);
+    }
+
+    @Test
+    void nullPlaceAndEmptyUntrackedFieldTest() {
+        validateTwoFieldTypes.validateOptionalPlaceAndUntrackedPlace(null, "", placeField, untrackedField, message, bindingResultMock);
+        verifyNoInteractions(bindingResultMock);
+    }
+
+    @Test
+    void bothGivenFieldTest() {
+        validateTwoFieldTypes.validateOptionalPlaceAndUntrackedPlace(GetRandomPlace(), GetRandomString(), placeField, untrackedField, message, bindingResultMock);
+        verify(bindingResultMock).rejectValue(placeField, "", null, message);
+        verify(bindingResultMock).rejectValue(untrackedField, "", null, message);
+    }
+
+    @Test
+    void placeOnlyGivenTest() {
+        validateTwoFieldTypes.validateOptionalPlaceAndUntrackedPlace(GetRandomPlace(), null, placeField, untrackedField, message, bindingResultMock);
+        verifyNoInteractions(bindingResultMock);
+    }
+
+    @Test
+    void unTrackedPlaceOnlyGivenTest() {
+        validateTwoFieldTypes.validateOptionalPlaceAndUntrackedPlace(null, GetRandomString(), placeField, untrackedField, message, bindingResultMock);
+        verifyNoInteractions(bindingResultMock);
+    }
+
+
+}

+ 1 - 1
src/test/java/scot/carricksoftware/grants/validators/helpers/ValidateValidatePersonAndUntrackedPersonTest.java → src/test/java/scot/carricksoftware/grants/validators/helpers/ValidatePersonAndUntrackedPersonTest.java

@@ -18,7 +18,7 @@ import static scot.carricksoftware.grants.GenerateCertificateRandomValues.GetRan
 import static scot.carricksoftware.grants.GenerateRandomPeopleValues.GetRandomPerson;
 
 @ExtendWith(MockitoExtension.class)
-class ValidateValidatePersonAndUntrackedPersonTest {
+class ValidatePersonAndUntrackedPersonTest {
 
     private ValidateTwoFieldTypes validateTwoFieldTypes;
 

+ 1 - 1
src/test/java/scot/carricksoftware/grants/validators/helpers/ValidateValidatePlaceAndUntrackedPersonTest.java → src/test/java/scot/carricksoftware/grants/validators/helpers/ValidatePlaceAndUntrackedPlaceTest.java

@@ -18,7 +18,7 @@ import static scot.carricksoftware.grants.GenerateCertificateRandomValues.GetRan
 import static scot.carricksoftware.grants.GenerateRandomPlaceValues.GetRandomPlace;
 
 @ExtendWith(MockitoExtension.class)
-class ValidateValidatePlaceAndUntrackedPersonTest {
+class ValidatePlaceAndUntrackedPlaceTest {
 
     private ValidateTwoFieldTypes validateTwoFieldTypes;