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: 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 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()); + } + }