瀏覽代碼

UpdateRecordedYearOfBirthImpl tests updated

Andrew Grant 5 月之前
父節點
當前提交
53f1afd4a7

+ 3 - 1
src/main/java/scot/carricksoftware/grants/services/census/censusentry/UpdateRecordedYearOfBirthImpl.java

@@ -11,6 +11,7 @@ import org.springframework.stereotype.Component;
 import scot.carricksoftware.grants.commands.census.CensusEntryCommand;
 import scot.carricksoftware.grants.commands.people.PersonCommand;
 import scot.carricksoftware.grants.converters.people.PersonConverter;
+import scot.carricksoftware.grants.domains.census.Census;
 import scot.carricksoftware.grants.domains.people.Person;
 import scot.carricksoftware.grants.services.people.PersonService;
 
@@ -35,7 +36,8 @@ public class UpdateRecordedYearOfBirthImpl implements UpdateRecordedYearOfBirth
         Person person = censusEntryCommand.getPerson();
         if (!isNull(person)) {
             if (isNull(censusEntryCommand.getBirthYear()) || censusEntryCommand.getBirthYear().isEmpty()) {
-                String dateString = censusEntryCommand.getCensus().getCensusDate().label;
+                Census census = censusEntryCommand.getCensus();
+                String dateString = census.getCensusDate().label;
                 String[] dateStrings = dateString.split("/");
                 Integer year = Integer.valueOf(dateStrings[2]);
                 try {

+ 76 - 0
src/test/java/scot/carricksoftware/grants/services/census/censusentry/UpdateRecordedYearNullAndEmptyBirthYearTest.java

@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grants.services.census.censusentry;
+
+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 scot.carricksoftware.grants.commands.census.CensusEntryCommand;
+import scot.carricksoftware.grants.commands.people.PersonCommand;
+import scot.carricksoftware.grants.converters.people.PersonConverter;
+import scot.carricksoftware.grants.domains.census.Census;
+import scot.carricksoftware.grants.domains.people.Person;
+import scot.carricksoftware.grants.services.people.PersonService;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static scot.carricksoftware.grants.enums.census.CensusDate.CENSUS_1881;
+
+@ExtendWith(MockitoExtension.class)
+class UpdateRecordedYearNullAndEmptyBirthYearTest {
+
+    private UpdateRecordedYearOfBirth updateRecordedYearOfBirth;
+
+    @Mock
+    private PersonCommand personCommandMock;
+
+    @Mock
+    private Person personMock;
+
+    @Mock
+    private Census censusMock;
+
+    @Mock
+    private PersonService personServiceMock;
+
+    @Mock
+    private CensusEntryCommand censusEntryCommandMock;
+
+    @Mock
+    private PersonConverter personConverterMock;
+
+    @BeforeEach
+    void setUp() {
+        when(censusMock.getCensusDate()).thenReturn(CENSUS_1881);
+        when(censusEntryCommandMock.getPerson()).thenReturn(personMock);
+        when(censusEntryCommandMock.getCensus()).thenReturn(censusMock);
+        when(censusEntryCommandMock.getAge()).thenReturn("80");
+        when(personConverterMock.convert(personMock)).thenReturn(personCommandMock);
+        updateRecordedYearOfBirth = new UpdateRecordedYearOfBirthImpl(personConverterMock, personServiceMock);
+
+    }
+
+    @Test
+    public void nullTest() {
+        doTheTest();
+    }
+
+    @Test
+    public void emptyTest() {
+        when(censusEntryCommandMock.getBirthYear()).thenReturn("");
+        doTheTest();
+    }
+
+    private void doTheTest() {
+        updateRecordedYearOfBirth.updateRecordedYearOfBirth(censusEntryCommandMock);
+        verify(personCommandMock).setRecordedYearOfBirth("1801");
+        verify(personServiceMock).savePersonCommand(personCommandMock);
+    }
+
+
+}

+ 1 - 1
src/test/java/scot/carricksoftware/grants/services/census/censusentry/UpdateRecordedYearOfBirthPassingTest.java → src/test/java/scot/carricksoftware/grants/services/census/censusentry/UpdateRecordedYearOfBirthViaBirthYearTest.java

@@ -25,7 +25,7 @@ import static scot.carricksoftware.grants.enums.census.CensusDate.CENSUS_1881;
 
 @ExtendWith(MockitoExtension.class)
 @ExtendWith(OutputCaptureExtension.class)
-class UpdateRecordedYearOfBirthPassingTest {
+class UpdateRecordedYearOfBirthViaBirthYearTest {
 
     private UpdateRecordedYearOfBirth updateRecordedYearOfBirth;