Kaynağa Gözat

Set DAtes Married

Andrew Grant 4 ay önce
ebeveyn
işleme
ccc30529e2

+ 14 - 0
src/main/java/scot/carricksoftware/grants/services/certificates/marriagecertificates/helpers/SetYearMarriedImpl.java

@@ -6,11 +6,25 @@
 package scot.carricksoftware.grants.services.certificates.marriagecertificates.helpers;
 
 import scot.carricksoftware.grants.commands.certificates.marriagecertificates.MarriageCertificateCommand;
+import scot.carricksoftware.grants.constants.ApplicationConstants;
+
+import java.time.LocalDate;
 
 public class SetYearMarriedImpl implements SetYearMarried {
 
     @Override
+    // consider dd/mm/yyyy
     public void setDatesMarried(MarriageCertificateCommand marriageCertificatecommand) {
+        try {
+            LocalDate.parse(marriageCertificatecommand.getWhenMarried(), ApplicationConstants.FORMATTER);
+            marriageCertificatecommand.setYearMarried(marriageCertificatecommand.getWhenMarried().substring(6,10));
+            marriageCertificatecommand.setMonthMarried(marriageCertificatecommand.getWhenMarried().substring(3,5));
+            marriageCertificatecommand.setDayMarried(marriageCertificatecommand.getWhenMarried().substring(0,2));
 
+        } catch (Exception e) {
+            marriageCertificatecommand.setYearMarried(null);
+            marriageCertificatecommand.setMonthMarried(null);
+            marriageCertificatecommand.setDayMarried(null);
+        }
     }
 }

+ 35 - 3
src/test/java/scot/carricksoftware/grants/services/certificates/marriagecertificates/helpers/SetYearMarriedTest.java

@@ -7,20 +7,52 @@ package scot.carricksoftware.grants.services.certificates.marriagecertificates.h
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import scot.carricksoftware.grants.commands.certificates.marriagecertificates.MarriageCertificateCommand;
+import scot.carricksoftware.grants.commands.certificates.marriagecertificates.MarriageCertificateCommandImpl;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 class SetYearMarriedTest {
 
     SetYearMarried setYearMarried;
 
+    private MarriageCertificateCommand marriageCertificateCommand;
+
     @BeforeEach
     void setUp() {
         setYearMarried = new SetYearMarriedImpl();
+        marriageCertificateCommand = new MarriageCertificateCommandImpl();
+    }
+
+    @Test
+    void validTest() {
+        marriageCertificateCommand.setWhenMarried("25/01/1953");
+        setYearMarried.setDatesMarried(marriageCertificateCommand);
+
+        assertEquals("1953", marriageCertificateCommand.getYearMarried());
+        assertEquals("01", marriageCertificateCommand.getMonthMarried());
+        assertEquals("25", marriageCertificateCommand.getDayMarried());
     }
 
     @Test
-    void constructorTest() {
-        assertNotNull(setYearMarried);
+    void invalidStringTest() {
+        //noinspection SpellCheckingInspection
+        marriageCertificateCommand.setWhenMarried("zzzz");
+        setYearMarried.setDatesMarried(marriageCertificateCommand);
+
+        assertNull(marriageCertificateCommand.getYearMarried());
+        assertNull(marriageCertificateCommand.getMonthMarried());
+        assertNull(marriageCertificateCommand.getDayMarried());
+    }
+
+    @Test
+    void invalidDateTest() {
+        marriageCertificateCommand.setWhenMarried("25/18/1953");
+        setYearMarried.setDatesMarried(marriageCertificateCommand);
+
+        assertNull(marriageCertificateCommand.getYearMarried());
+        assertNull(marriageCertificateCommand.getMonthMarried());
+        assertNull(marriageCertificateCommand.getDayMarried());
     }
 }