From 87bdd7c97a33561dc4b1c3a53293703be1bdcda5 Mon Sep 17 00:00:00 2001 From: arybakov Date: Fri, 6 Sep 2024 16:06:59 -0600 Subject: [PATCH 1/2] GRAD2-2817 Fix for duplicated archive school reports --- .../bc/gov/educ/api/grad/report/service/CommonService.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java index 07230d69..b0e7978c 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java @@ -892,19 +892,18 @@ public Integer archiveSchoolReports(long batchId, List schoolOfRecords, Integer updatedReportsCount = 0; Integer deletedReportsCount = 0; Integer originalReportsCount = 0; - reportType = StringUtils.upperCase(StringUtils.endsWithIgnoreCase(reportType, "ARC") ? StringUtils.removeEndIgnoreCase(reportType, "ARC") : reportType); String archivedReportType = StringUtils.upperCase(StringUtils.endsWith(reportType, "ARC") ? reportType : reportType + "ARC"); if(schoolOfRecords != null && !schoolOfRecords.isEmpty()) { originalReportsCount += schoolReportsRepository.countBySchoolOfRecordsAndReportType(schoolOfRecords, reportType); updatedReportsCount += schoolReportsRepository.archiveSchoolReports(schoolOfRecords, reportType, archivedReportType, batchId); - if(originalReportsCount.equals(updatedReportsCount)) { + if(updatedReportsCount > 0 && originalReportsCount.equals(updatedReportsCount)) { deletedReportsCount += schoolReportsRepository.deleteSchoolReports(schoolOfRecords, archivedReportType); logger.debug("{} School Reports deleted", deletedReportsCount); } } else { originalReportsCount += schoolReportsRepository.countByReportType(reportType); updatedReportsCount += schoolReportsRepository.archiveSchoolReports(reportType, archivedReportType, batchId); - if(originalReportsCount.equals(updatedReportsCount)) { + if(updatedReportsCount > 0 && originalReportsCount.equals(updatedReportsCount)) { deletedReportsCount += schoolReportsRepository.deleteSchoolReports(archivedReportType); logger.debug("{} School Reports deleted", deletedReportsCount); } From a7779869a62f2874657bfcd89d55dd2197844951 Mon Sep 17 00:00:00 2001 From: arybakov Date: Fri, 6 Sep 2024 16:22:00 -0600 Subject: [PATCH 2/2] GRAD2-2817 Fix for duplicated archive school reports --- .../api/grad/report/service/CommonService.java | 2 +- .../grad/report/service/CommonServiceTest.java | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java index b0e7978c..48858f67 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java @@ -892,7 +892,7 @@ public Integer archiveSchoolReports(long batchId, List schoolOfRecords, Integer updatedReportsCount = 0; Integer deletedReportsCount = 0; Integer originalReportsCount = 0; - String archivedReportType = StringUtils.upperCase(StringUtils.endsWith(reportType, "ARC") ? reportType : reportType + "ARC"); + String archivedReportType = StringUtils.appendIfMissing(reportType, "ARC", "ARC"); if(schoolOfRecords != null && !schoolOfRecords.isEmpty()) { originalReportsCount += schoolReportsRepository.countBySchoolOfRecordsAndReportType(schoolOfRecords, reportType); updatedReportsCount += schoolReportsRepository.archiveSchoolReports(schoolOfRecords, reportType, archivedReportType, batchId); diff --git a/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java b/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java index 1d0e6cb6..f2d785bc 100644 --- a/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java +++ b/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java @@ -1798,39 +1798,45 @@ public Page map(Function converter) { @Test public void testArchiveSchoolReports() { + Mockito.when(schoolReportsRepository.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType".toUpperCase())).thenReturn(1); Mockito.when(schoolReportsRepository.deleteSchoolReports(List.of("12345678"), "reportTypeARC".toUpperCase())).thenReturn(1); Mockito.when(schoolReportsRepository.archiveSchoolReports(List.of("12345678"), "reportType".toUpperCase(), "reportTypeARC".toUpperCase(), 1L)).thenReturn(1); - Integer count = commonService.archiveSchoolReports(1L, List.of("12345678"), "reportType"); + Integer count = commonService.archiveSchoolReports(1L, List.of("12345678"), "reportType".toUpperCase()); assertThat(count).isNotNull().isEqualTo(1); + Mockito.when(schoolReportsRepository.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType".toUpperCase())).thenReturn(0); Mockito.when(schoolReportsRepository.deleteSchoolReports(List.of("12345678"), "reportTypeARC".toUpperCase())).thenReturn(0); Mockito.when(schoolReportsRepository.archiveSchoolReports(List.of("12345678"), "reportType".toUpperCase(), "reportTypeARC".toUpperCase(), 1L)).thenReturn(0); - count = commonService.archiveSchoolReports(1L, List.of("12345678"), "reportType"); + count = commonService.archiveSchoolReports(1L, List.of("12345678"), "reportType".toUpperCase()); assertThat(count).isNotNull().isEqualTo(0); + Mockito.when(schoolReportsRepository.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType".toUpperCase())).thenReturn(1); Mockito.when(schoolReportsRepository.deleteSchoolReports("reportTypeARC".toUpperCase())).thenReturn(1); Mockito.when(schoolReportsRepository.archiveSchoolReports("reportType".toUpperCase(), "reportTypeARC".toUpperCase(), 1L)).thenReturn(1); - count = commonService.archiveSchoolReports(1L, List.of(), "reportType"); + count = commonService.archiveSchoolReports(1L, List.of(), "reportType".toUpperCase()); assertThat(count).isNotNull().isEqualTo(1); + Mockito.when(schoolReportsRepository.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType".toUpperCase())).thenReturn(0); Mockito.when(schoolReportsRepository.deleteSchoolReports("reportTypeARC".toUpperCase())).thenReturn(0); Mockito.when(schoolReportsRepository.archiveSchoolReports("reportType".toUpperCase(), "reportTypeARC".toUpperCase(), 1L)).thenReturn(0); - count = commonService.archiveSchoolReports(1L, List.of(), "reportType"); + count = commonService.archiveSchoolReports(1L, List.of(), "reportType".toUpperCase()); assertThat(count).isNotNull().isEqualTo(0); } @Test public void testArchiveSchoolReportsEmpty() { + Mockito.when(schoolReportsRepository.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType".toUpperCase())).thenReturn(0); Mockito.when(schoolReportsRepository.archiveSchoolReports(new ArrayList<>(), "reportType".toUpperCase(), "reportTypeARC".toUpperCase(), 1L)).thenReturn(0); - Integer count = commonService.archiveSchoolReports(1L, new ArrayList<>(), "reportType"); + Integer count = commonService.archiveSchoolReports(1L, new ArrayList<>(), "reportType".toUpperCase()); assertThat(count).isNotNull().isEqualTo(0); } @Test public void testDeleteSchoolReports() { + Mockito.when(schoolReportsRepository.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType".toUpperCase())).thenReturn(1); Mockito.when(schoolReportsRepository.deleteSchoolReports(List.of("12345678"), "reportTypeARC".toUpperCase())).thenReturn(1); Mockito.when(schoolReportsRepository.archiveSchoolReports(List.of("12345678"), "reportType".toUpperCase(), "reportTypeARC".toUpperCase(), 1L)).thenReturn(1); - Integer count = commonService.archiveSchoolReports(1L, List.of("12345678"), "reportType"); + Integer count = commonService.archiveSchoolReports(1L, List.of("12345678"), "reportType".toUpperCase()); assertThat(count).isNotNull().isEqualTo(1); }