فهرست منبع

Birth Certificate extra fields in commands

Andrew Grant 6 ماه پیش
والد
کامیت
28d184b142

+ 13 - 0
src/main/java/scot/carricksoftware/grants/commands/certificates/birthcertificates/BirthCertificateCommand.java

@@ -7,6 +7,7 @@ package scot.carricksoftware.grants.commands.certificates.birthcertificates;
 
 import scot.carricksoftware.grants.domains.people.Person;
 import scot.carricksoftware.grants.domains.places.Organisation;
+import scot.carricksoftware.grants.enums.censusentry.CensusEntrySex;
 import scot.carricksoftware.grants.enums.certificates.CertificateType;
 
 public interface BirthCertificateCommand {
@@ -52,4 +53,16 @@ public interface BirthCertificateCommand {
     String getNumber();
 
     void setNumber(String number);
+
+    String getWhenBorn();
+
+    void setWhenBorn(String whenBorn);
+
+    String getWhereBorn();
+
+    void setWhereBorn(String whereBorn);
+
+    CensusEntrySex getSex();
+
+    void setSex(CensusEntrySex sex);
 }

+ 37 - 0
src/main/java/scot/carricksoftware/grants/commands/certificates/birthcertificates/BirthCertificateCommandImpl.java

@@ -7,6 +7,7 @@ package scot.carricksoftware.grants.commands.certificates.birthcertificates;
 
 import scot.carricksoftware.grants.domains.people.Person;
 import scot.carricksoftware.grants.domains.places.Organisation;
+import scot.carricksoftware.grants.enums.censusentry.CensusEntrySex;
 import scot.carricksoftware.grants.enums.certificates.CertificateType;
 
 public class BirthCertificateCommandImpl implements BirthCertificateCommand {
@@ -29,6 +30,12 @@ public class BirthCertificateCommandImpl implements BirthCertificateCommand {
 
     private String number;
 
+    private String whenBorn;
+
+    private String whereBorn;
+
+    private CensusEntrySex sex;
+
 
     public Long getId() {
         return Id;
@@ -118,4 +125,34 @@ public class BirthCertificateCommandImpl implements BirthCertificateCommand {
     public void setNumber(String number) {
         this.number = number;
     }
+
+    @Override
+    public String getWhenBorn() {
+        return whenBorn;
+    }
+
+    @Override
+    public void setWhenBorn(String whenBorn) {
+        this.whenBorn = whenBorn;
+    }
+
+    @Override
+    public String getWhereBorn() {
+        return whereBorn;
+    }
+
+    @Override
+    public void setWhereBorn(String whereBorn) {
+        this.whereBorn = whereBorn;
+    }
+
+    @Override
+    public CensusEntrySex getSex() {
+        return sex;
+    }
+
+    @Override
+    public void setSex(CensusEntrySex sex) {
+        this.sex = sex;
+    }
 }

+ 2 - 1
src/main/java/scot/carricksoftware/grants/constants/ApplicationConstants.java

@@ -19,7 +19,8 @@ public class ApplicationConstants {
 
     public static final int DEFAULT_PAGE_SIZE = 15;
     public static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("dd/MM/yyyy");
-    public static final String DATE_TIME_FORMAT = "dd-MM-yyyy";
+    public static final String DATE_FORMAT = "dd-MM-yyyy";
+    public static final String DATE_TIME_FORMAT = "dd-MM-yyyy hh:mm";
     public final static String EMPTY_STRING = "";
 
     public static final int MINIMUM_NAME_LENGTH = 3;

+ 1 - 1
src/main/java/scot/carricksoftware/grants/domains/certificates/BaseCertificate.java

@@ -34,7 +34,7 @@ public class BaseCertificate extends BaseEntity {
     private Organisation certificateSource;
 
     @Column(name= "`certificate_date`")
-    @DateTimeFormat(pattern = ApplicationConstants.DATE_TIME_FORMAT)
+    @DateTimeFormat(pattern = ApplicationConstants.DATE_FORMAT)
     private String certificateDate;
 
     @ManyToOne

+ 42 - 0
src/main/java/scot/carricksoftware/grants/domains/certificates/BirthCertificate.java

@@ -6,10 +6,16 @@
 package scot.carricksoftware.grants.domains.certificates;
 
 
+import jakarta.persistence.Column;
 import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
 import jakarta.persistence.JoinColumn;
 import jakarta.persistence.ManyToOne;
+import org.springframework.format.annotation.DateTimeFormat;
+import scot.carricksoftware.grants.constants.ApplicationConstants;
 import scot.carricksoftware.grants.domains.people.Person;
+import scot.carricksoftware.grants.enums.censusentry.CensusEntrySex;
 
 @Entity
 public class BirthCertificate extends BaseCertificate {
@@ -19,7 +25,19 @@ public class BirthCertificate extends BaseCertificate {
     @JoinColumn(name = "`new_born_id`")
     private Person newBorn;
 
+    @SuppressWarnings("JpaDataSourceORMInspection")
+    @Column(name= "`when_born`")
+    @DateTimeFormat(pattern = ApplicationConstants.DATE_TIME_FORMAT)
+    private String whenBorn;
+
+    @SuppressWarnings("JpaDataSourceORMInspection")
+    @Column(name = "`where_born`")
+    private String whereBorn;
 
+    @SuppressWarnings("JpaDataSourceORMInspection")
+    @Enumerated(EnumType.STRING)
+    @Column(name = "`sex`")
+    private CensusEntrySex sex;
 
     public Person getNewBorn() {
         return newBorn;
@@ -28,4 +46,28 @@ public class BirthCertificate extends BaseCertificate {
     public void setNewBorn(Person newBorn) {
         this.newBorn = newBorn;
     }
+
+    public String getWhenBorn() {
+        return whenBorn;
+    }
+
+    public void setWhenBorn(String whenBorn) {
+        this.whenBorn = whenBorn;
+    }
+
+    public String getWhereBorn() {
+        return whereBorn;
+    }
+
+    public void setWhereBorn(String whereBorn) {
+        this.whereBorn = whereBorn;
+    }
+
+    public CensusEntrySex getSex() {
+        return sex;
+    }
+
+    public void setSex(CensusEntrySex sex) {
+        this.sex = sex;
+    }
 }

+ 1 - 1
src/main/resources/application.properties

@@ -2,7 +2,7 @@ spring.application.name=grants
 server.port=8086
 server.servlet.context-path=/grants
 spring.mvc.format.date=dd-MM-yyyy
-spring.profiles.active=uat
+spring.profiles.active=dev
 logging.level.scot.carricksoftware=trace
 
 

+ 64 - 0
src/test/java/scot/carricksoftware/grants/commands/certificates/BirthCertificateCommandThreeFieldsTest.java

@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) Andrew Grant of Carrick Software 24/03/2025, 17:31. All rights reserved.
+ *
+ */
+
+package scot.carricksoftware.grants.commands.certificates;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import scot.carricksoftware.grants.commands.certificates.birthcertificates.BirthCertificateCommand;
+import scot.carricksoftware.grants.commands.certificates.birthcertificates.BirthCertificateCommandImpl;
+import scot.carricksoftware.grants.enums.censusentry.CensusEntrySex;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static scot.carricksoftware.grants.GenerateCensusEntryRandomEnums.GetRandomCensusEntrySex;
+import static scot.carricksoftware.grants.GenerateCertificateRandomValues.GetRandomString;
+
+class BirthCertificateCommandThreeFieldsTest {
+
+    private BirthCertificateCommand command;
+
+    @BeforeEach
+    void setUp() {
+        command = new BirthCertificateCommandImpl();
+    }
+
+    @Test
+    public void getWhenBornTest() {
+        assertNull(command.getWhenBorn());
+    }
+
+    @Test
+    public void setWhenBornTest() {
+        String string;
+        command.setWhenBorn(string = GetRandomString());
+        assertEquals(string, command.getWhenBorn());
+    }
+
+    @Test
+    public void getWhereBornTest() {
+        assertNull(command.getWhereBorn());
+    }
+
+    @Test
+    public void setWhereBornTest() {
+        String string;
+        command.setWhereBorn(string = GetRandomString());
+        assertEquals(string, command.getWhereBorn());
+    }
+
+    @Test
+    public void getSexTest() {
+        assertNull(command.getWhenBorn());
+    }
+
+    @Test
+    void setSexTest() {
+        CensusEntrySex sex = GetRandomCensusEntrySex();
+        command.setSex(sex);
+        assertEquals(sex, command.getSex());
+    }
+
+}

+ 62 - 0
src/test/java/scot/carricksoftware/grants/domains/certificates/BirthCertificatePartTwoTest.java

@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) Andrew Grant of Carrick Software 24/03/2025, 17:20. All rights reserved.
+ *
+ */
+
+package scot.carricksoftware.grants.domains.certificates;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import scot.carricksoftware.grants.enums.censusentry.CensusEntrySex;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static scot.carricksoftware.grants.GenerateCensusEntryRandomEnums.GetRandomCensusEntrySex;
+import static scot.carricksoftware.grants.GenerateCertificateRandomValues.GetRandomString;
+
+class BirthCertificatePartTwoTest {
+
+    private BirthCertificate certificate;
+
+    @BeforeEach
+    void setUp() {
+        certificate = new BirthCertificate();
+    }
+
+    @Test
+    public void getWhenBornTest() {
+        assertNull(certificate.getWhenBorn());
+    }
+
+    @Test
+    public void setWhenBornTest() {
+        String string;
+        certificate.setWhenBorn(string = GetRandomString());
+        assertEquals(string, certificate.getWhenBorn());
+    }
+
+    @Test
+    public void getWhereBornTest() {
+        assertNull(certificate.getWhereBorn());
+    }
+
+    @Test
+    public void setWhereBornTest() {
+        String string;
+        certificate.setWhereBorn(string = GetRandomString());
+        assertEquals(string, certificate.getWhereBorn());
+    }
+
+    @Test
+    public void getSexTestTest() {
+        assertNull(certificate.getWhenBorn());
+    }
+
+    @Test
+    void setSexTest() {
+        CensusEntrySex sex = GetRandomCensusEntrySex();
+        certificate.setSex(sex);
+        assertEquals(sex, certificate.getSex());
+    }
+
+}