From 2b7902058c3253cffe2b8195933b20dc1650953c Mon Sep 17 00:00:00 2001 From: JamesCollettCGI Date: Wed, 19 Feb 2025 16:04:20 +0000 Subject: [PATCH 1/3] Create initial DataMigrationService and unit tests --- .../service/DataMigrationServiceImpl.java | 20 ++- .../service/DataMigrationServiceImplTest.java | 120 ++++++++++++++++-- 2 files changed, 129 insertions(+), 11 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/migration/service/DataMigrationServiceImpl.java b/src/main/java/uk/gov/hmcts/reform/migration/service/DataMigrationServiceImpl.java index e4eccac9..2cd073a4 100644 --- a/src/main/java/uk/gov/hmcts/reform/migration/service/DataMigrationServiceImpl.java +++ b/src/main/java/uk/gov/hmcts/reform/migration/service/DataMigrationServiceImpl.java @@ -11,11 +11,29 @@ public class DataMigrationServiceImpl implements DataMigrationService accepts() { - return caseDetails -> caseDetails == null ? false : true; + return caseDetails -> { + if (caseDetails == null) { + return false; + } + final Map data = caseDetails.getData(); + if (data == null) { + return false; + } + return data.containsKey("generalEmailRecipient") + || data.containsKey("generalEmailCreatedBy") + || data.containsKey("generalEmailUploadedDocument") + || data.containsKey("generalEmailBody"); + }; } @Override public Map migrate(Map data) { + if (data != null) { + data.remove("generalEmailRecipient"); + data.remove("generalEmailCreatedBy"); + data.remove("generalEmailUploadedDocument"); + data.remove("generalEmailBody"); + } return data; } } diff --git a/src/test/java/uk/gov/hmcts/reform/migration/service/DataMigrationServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/migration/service/DataMigrationServiceImplTest.java index f72aa5e3..678b03b8 100644 --- a/src/test/java/uk/gov/hmcts/reform/migration/service/DataMigrationServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/migration/service/DataMigrationServiceImplTest.java @@ -19,31 +19,131 @@ public class DataMigrationServiceImplTest { private DataMigrationServiceImpl service = new DataMigrationServiceImpl(); + // Unit tests for 'accepts()' + + @Test + public void shouldReturnFalseForCaseDetailsNull() { + assertFalse(service.accepts().test(null)); + } + + @Test + public void shouldReturnFalseForCaseDetailsWithoutData() { + CaseDetails caseDetails = CaseDetails.builder().build(); + assertFalse(service.accepts().test(caseDetails)); + } + @Test - public void shouldReturnTrueForCaseDetailsPassed() { - CaseDetails caseDetails = CaseDetails.builder() - .id(1234L) - .build(); + public void shouldReturnFalseForCaseDetailsWithoutGeneralEmailElement() { + CaseDetails caseDetails = CaseDetails.builder().build(); + caseDetails.setData(new HashMap<>()); + assertFalse(service.accepts().test(caseDetails)); + } + + @Test + public void shouldReturnTrueForCaseDetailsWithGeneralEmailRecipient() { + CaseDetails caseDetails = CaseDetails.builder().build(); + Map data = new HashMap<>(); + data.put("generalEmailRecipient", null); + caseDetails.setData(data); assertTrue(service.accepts().test(caseDetails)); } @Test - public void shouldReturnFalseForCaseDetailsNull() { - assertFalse(service.accepts().test(null)); + public void shouldReturnTrueForCaseDetailsWithGeneralEmailCreatedBy() { + CaseDetails caseDetails = CaseDetails.builder().build(); + Map data = new HashMap<>(); + data.put("generalEmailCreatedBy", null); + caseDetails.setData(data); + assertTrue(service.accepts().test(caseDetails)); } @Test - public void shouldReturnPassedDataWhenMigrateCalled() { + public void shouldReturnTrueForCaseDetailsWithGeneralEmailUploadedDocument() { + CaseDetails caseDetails = CaseDetails.builder().build(); Map data = new HashMap<>(); - Map result = service.migrate(data); - assertNotNull(result); - assertEquals(data, result); + data.put("generalEmailUploadedDocument", null); + caseDetails.setData(data); + assertTrue(service.accepts().test(caseDetails)); } + @Test + public void shouldReturnTrueForCaseDetailsWithGeneralEmailBody() { + CaseDetails caseDetails = CaseDetails.builder().build(); + Map data = new HashMap<>(); + data.put("generalEmailBody", null); + caseDetails.setData(data); + assertTrue(service.accepts().test(caseDetails)); + } + + + // Unit tests for 'migrate()' + @Test public void shouldReturnNullWhenDataIsNotPassed() { Map result = service.migrate(null); assertNull(result); assertEquals(null, result); } + + @Test + public void shouldReturnPassedDataWhenMigrateCalled() { + Map data = new HashMap<>(); + Map result = service.migrate(data); + assertNotNull(result); + assertEquals(data, result); + } + + @Test + public void shouldRemoveGeneralEmailRecipient() { + Map data = new HashMap<>(); + data.put("generalEmailRecipient", null); + data.put("otherElement", null); + Map result = service.migrate(data); + assertNotNull(result); + assertEquals(1, result.size()); + } + + @Test + public void shouldRemoveGeneralEmailCreatedBy() { + Map data = new HashMap<>(); + data.put("generalEmailCreatedBy", null); + data.put("otherElement", null); + Map result = service.migrate(data); + assertNotNull(result); + assertEquals(1, result.size()); + } + + @Test + public void shouldRemoveGeneralEmailUploadedDocument() { + Map data = new HashMap<>(); + data.put("generalEmailUploadedDocument", null); + data.put("otherElement", null); + Map result = service.migrate(data); + assertNotNull(result); + assertEquals(1, result.size()); + } + + @Test + public void shouldRemoveGeneralEmailBody() { + Map data = new HashMap<>(); + data.put("generalEmailBody", null); + data.put("otherElement", null); + Map result = service.migrate(data); + assertNotNull(result); + assertEquals(1, result.size()); + } + + @Test + public void shouldRemoveAllGeneralEmailElements() { + Map data = new HashMap<>(); + data.put("generalEmailRecipient", null); + data.put("generalEmailCreatedBy", null); + data.put("generalEmailUploadedDocument", null); + data.put("generalEmailBody", null); + data.put("otherElement", null); + Map result = service.migrate(data); + assertNotNull(result); + assertEquals(1, result.size()); + } + } From a8c314bfa26a6f5cf133f42e4ed2cf6f671930ef Mon Sep 17 00:00:00 2001 From: JamesCollettCGI Date: Thu, 20 Feb 2025 16:01:07 +0000 Subject: [PATCH 2/3] Initial configuration --- charts/ccd-migration/values.yaml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/charts/ccd-migration/values.yaml b/charts/ccd-migration/values.yaml index 1598894e..208740b8 100644 --- a/charts/ccd-migration/values.yaml +++ b/charts/ccd-migration/values.yaml @@ -4,16 +4,22 @@ job: schedule: "0 22 * * *" ingressHost: ccd-migration-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal aadIdentityName: ccd -# Uncomment once the vault containing the app insights key has been set up -# keyVaults: -# ccd: -# secrets: -# - name: app-insights-connection-string -# alias: app-insights-connection-string + keyVaults: + ccd: + secrets: + - name: idam-data-store-client-secret + alias: IDAM_OAUTH2_DATA_STORE_CLIENT_SECRET + - name: ccd-data-s2s-secret + alias: DATA_STORE_IDAM_KEY + - name: idam-data-store-system-user-username + alias: IDAM_USER + - name: idam-data-store-system-user-password + alias: IDAM_PASS environment: IDAM_S2S_URL: http://rpe-service-auth-provider-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal -# IDAM_USER: test-user -# IDAM_PASS: test_pass + IDAM_API_URL: https://idam-api.{{ .Values.global.environment }}.platform.hmcts.net + IDAM_CLIENT_ID: ccd_gateway + CCD_DATA_STORE_API_BASE_URL: http://ccd-data-store-api-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal MIGRATION_CASETYPE: case_type_1 MIGRATION_QUERY_SIZE: 10000 - + MIGRATION_CASE_LIMIT: 10000 From 38c69a263cf618fed2b1b3287936ef13b5ebc588 Mon Sep 17 00:00:00 2001 From: hmcts-jenkins-a-to-c <62422075+hmcts-jenkins-a-to-c[bot]@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:02:21 +0000 Subject: [PATCH 3/3] Bumping chart version/ fixing aliases --- charts/ccd-migration/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/ccd-migration/Chart.yaml b/charts/ccd-migration/Chart.yaml index 26c48db0..3f660f92 100644 --- a/charts/ccd-migration/Chart.yaml +++ b/charts/ccd-migration/Chart.yaml @@ -3,7 +3,7 @@ appVersion: "1.0" description: A Helm chart for ccd-migration App name: ccd-migration home: https://github.com/hmcts/ccd-case-migration-starter -version: 0.0.7 +version: 0.0.8 maintainers: - name: HMCTS ccd team dependencies: