From 60e31708a8cacacba05ee325155a5342d2a10bde Mon Sep 17 00:00:00 2001 From: mightycox Date: Thu, 30 Jan 2025 23:11:36 -0800 Subject: [PATCH] GRAD2-3176 - adds tests --- .../model/dto/institute/DistrictAddress.java | 2 ++ .../model/dto/institute/DistrictContact.java | 2 ++ .../graduation/service/BaseServiceTest.java | 26 ++++++++++++++ .../service/DistrictReportServiceTest.java | 36 +++++++++++++++++-- 4 files changed, 64 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/ca/bc/gov/educ/api/graduation/model/dto/institute/DistrictAddress.java b/api/src/main/java/ca/bc/gov/educ/api/graduation/model/dto/institute/DistrictAddress.java index 51fe9699..6f5ca0b9 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/graduation/model/dto/institute/DistrictAddress.java +++ b/api/src/main/java/ca/bc/gov/educ/api/graduation/model/dto/institute/DistrictAddress.java @@ -1,6 +1,7 @@ package ca.bc.gov.educ.api.graduation.model.dto.institute; import ca.bc.gov.educ.api.graduation.model.dto.BaseModel; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; @@ -8,6 +9,7 @@ @Data @EqualsAndHashCode(callSuper = true) +@Builder public class DistrictAddress extends BaseModel implements Serializable { /** * The constant serialVersionUID. diff --git a/api/src/main/java/ca/bc/gov/educ/api/graduation/model/dto/institute/DistrictContact.java b/api/src/main/java/ca/bc/gov/educ/api/graduation/model/dto/institute/DistrictContact.java index 6ea83f25..151249eb 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/graduation/model/dto/institute/DistrictContact.java +++ b/api/src/main/java/ca/bc/gov/educ/api/graduation/model/dto/institute/DistrictContact.java @@ -2,6 +2,7 @@ import ca.bc.gov.educ.api.graduation.model.dto.BaseModel; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; @@ -10,6 +11,7 @@ @Data @EqualsAndHashCode(callSuper = true) @JsonIgnoreProperties(ignoreUnknown = true) +@Builder public class DistrictContact extends BaseModel implements Serializable { /** diff --git a/api/src/test/java/ca/bc/gov/educ/api/graduation/service/BaseServiceTest.java b/api/src/test/java/ca/bc/gov/educ/api/graduation/service/BaseServiceTest.java index de7f15dd..2c902845 100644 --- a/api/src/test/java/ca/bc/gov/educ/api/graduation/service/BaseServiceTest.java +++ b/api/src/test/java/ca/bc/gov/educ/api/graduation/service/BaseServiceTest.java @@ -1,8 +1,12 @@ package ca.bc.gov.educ.api.graduation.service; +import ca.bc.gov.educ.api.graduation.constants.AddressTypeCodes; +import ca.bc.gov.educ.api.graduation.constants.DistrictContactTypeCodes; import ca.bc.gov.educ.api.graduation.model.dto.institute.District; import ca.bc.gov.educ.api.graduation.model.dto.GradCertificateType; import ca.bc.gov.educ.api.graduation.model.dto.ReportGradStudentData; +import ca.bc.gov.educ.api.graduation.model.dto.institute.DistrictAddress; +import ca.bc.gov.educ.api.graduation.model.dto.institute.DistrictContact; import ca.bc.gov.educ.api.graduation.model.dto.institute.School; import java.util.ArrayList; @@ -167,6 +171,28 @@ public District createDistrict() { return District.builder() .districtId(UUID.randomUUID().toString()) .displayName("Generic District Name") + .districtNumber("005") + .build(); + } + + public DistrictContact createDistrictContact(UUID districtId) { + return DistrictContact.builder() + .districtId(districtId.toString()) + .districtContactId(UUID.randomUUID().toString()) + .districtContactTypeCode(DistrictContactTypeCodes.SUPER.getCode()) + .firstName("Super") + .lastName("Man") + .build(); + } + + public DistrictAddress createDistrictAddress(UUID districtId) { + return DistrictAddress.builder() + .districtId(districtId.toString()) + .districtAddressId(UUID.randomUUID().toString()) + .addressTypeCode(AddressTypeCodes.MAILING.getCode()) + .addressLine1("1234 Generic Street") + .city("Generic City") + .postal("V1V1V1") .build(); } } diff --git a/api/src/test/java/ca/bc/gov/educ/api/graduation/service/DistrictReportServiceTest.java b/api/src/test/java/ca/bc/gov/educ/api/graduation/service/DistrictReportServiceTest.java index d158c3bf..819ebf24 100644 --- a/api/src/test/java/ca/bc/gov/educ/api/graduation/service/DistrictReportServiceTest.java +++ b/api/src/test/java/ca/bc/gov/educ/api/graduation/service/DistrictReportServiceTest.java @@ -1,5 +1,6 @@ package ca.bc.gov.educ.api.graduation.service; +import ca.bc.gov.educ.api.graduation.constants.ReportTypeCodes; import ca.bc.gov.educ.api.graduation.model.dto.institute.District; import ca.bc.gov.educ.api.graduation.model.dto.ReportGradStudentData; import ca.bc.gov.educ.api.graduation.model.dto.institute.School; @@ -42,11 +43,10 @@ class DistrictReportServiceTest extends BaseServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.openMocks(this); + MockitoAnnotations.openMocks(this); } - @Test void createAndStoreDistrictYearEndReports() { List studentData = createStudentSchoolYearEndData(); @@ -65,4 +65,36 @@ void createAndStoreDistrictYearEndReports() { assertEquals(1, result); } + + @Test + void createAndStoreDistrictNonGradYearEndReport() { + List studentData = createStudentSchoolYearEndData(); + District district = createDistrict(); + when(reportService.getStudentsForSchoolNonGradYearEndReport()).thenReturn(studentData); + studentData.forEach(student -> { + UUID schoolId = student.getSchoolAtGradId() == null ? UUID.fromString(student.getSchoolOfRecordId()) : UUID.fromString(student.getSchoolAtGradId()); + School school = createSchool(UUID.fromString(district.getDistrictId()), schoolId, student.getMincode()); + when(schoolService.getSchoolById(schoolId)).thenReturn(school); + } + ); + when(districtService.getDistrictDetails(any(UUID.class))).thenReturn(district); + when(restService.post(any(), any(), any())).thenReturn(new byte[0]); + + int result = districtReportService.createAndStoreDistrictNonGradYearEndReport(); + + assertEquals(1, result); + } + + @Test + void createAndStoreDistrictLabelsReportsFromDistricts() { + District district = createDistrict(); + district.setContacts(List.of(createDistrictContact(UUID.fromString(district.getDistrictId())))); + district.setAddresses(List.of(createDistrictAddress(UUID.fromString(district.getDistrictId())))); + when(restService.post(any(), any(), any())).thenReturn(new byte[0]); + + int result = districtReportService.createAndStoreDistrictLabelsReportsFromDistricts(ReportTypeCodes.ADDRESS_LABEL_YE.getCode(), List.of(district), null); + + assertEquals(1, result); + + } }