Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion charts/ccd-migration/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
24 changes: 15 additions & 9 deletions charts/ccd-migration/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,29 @@ public class DataMigrationServiceImpl implements DataMigrationService<Map<String

@Override
public Predicate<CaseDetails> accepts() {
return caseDetails -> caseDetails == null ? false : true;
return caseDetails -> {
if (caseDetails == null) {
return false;
}
final Map<String, Object> data = caseDetails.getData();
if (data == null) {
return false;
}
return data.containsKey("generalEmailRecipient")
|| data.containsKey("generalEmailCreatedBy")
|| data.containsKey("generalEmailUploadedDocument")
|| data.containsKey("generalEmailBody");
};
}

@Override
public Map<String, Object> migrate(Map<String, Object> data) {
if (data != null) {
data.remove("generalEmailRecipient");
data.remove("generalEmailCreatedBy");
data.remove("generalEmailUploadedDocument");
data.remove("generalEmailBody");
}
return data;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, Object> 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<String, Object> 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<String, Object> data = new HashMap<>();
Map<String, Object> 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<String, Object> data = new HashMap<>();
data.put("generalEmailBody", null);
caseDetails.setData(data);
assertTrue(service.accepts().test(caseDetails));
}


// Unit tests for 'migrate()'

@Test
public void shouldReturnNullWhenDataIsNotPassed() {
Map<String, Object> result = service.migrate(null);
assertNull(result);
assertEquals(null, result);
}

@Test
public void shouldReturnPassedDataWhenMigrateCalled() {
Map<String, Object> data = new HashMap<>();
Map<String, Object> result = service.migrate(data);
assertNotNull(result);
assertEquals(data, result);
}

@Test
public void shouldRemoveGeneralEmailRecipient() {
Map<String, Object> data = new HashMap<>();
data.put("generalEmailRecipient", null);
data.put("otherElement", null);
Map<String, Object> result = service.migrate(data);
assertNotNull(result);
assertEquals(1, result.size());
}

@Test
public void shouldRemoveGeneralEmailCreatedBy() {
Map<String, Object> data = new HashMap<>();
data.put("generalEmailCreatedBy", null);
data.put("otherElement", null);
Map<String, Object> result = service.migrate(data);
assertNotNull(result);
assertEquals(1, result.size());
}

@Test
public void shouldRemoveGeneralEmailUploadedDocument() {
Map<String, Object> data = new HashMap<>();
data.put("generalEmailUploadedDocument", null);
data.put("otherElement", null);
Map<String, Object> result = service.migrate(data);
assertNotNull(result);
assertEquals(1, result.size());
}

@Test
public void shouldRemoveGeneralEmailBody() {
Map<String, Object> data = new HashMap<>();
data.put("generalEmailBody", null);
data.put("otherElement", null);
Map<String, Object> result = service.migrate(data);
assertNotNull(result);
assertEquals(1, result.size());
}

@Test
public void shouldRemoveAllGeneralEmailElements() {
Map<String, Object> data = new HashMap<>();
data.put("generalEmailRecipient", null);
data.put("generalEmailCreatedBy", null);
data.put("generalEmailUploadedDocument", null);
data.put("generalEmailBody", null);
data.put("otherElement", null);
Map<String, Object> result = service.migrate(data);
assertNotNull(result);
assertEquals(1, result.size());
}

}