Skip to content

Commit 4f8cd32

Browse files
authored
Merge branch 'master' into increase_aat_cache_size
2 parents 77117c5 + 7b7414a commit 4f8cd32

File tree

4 files changed

+113
-16
lines changed

4 files changed

+113
-16
lines changed

src/main/java/uk/gov/hmcts/ccd/domain/model/std/CaseDataContent.java

+16-4
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ public class CaseDataContent {
1212
private Event event;
1313
private Map<String, JsonNode> data;
1414

15+
// full event data payload
16+
@JsonProperty("event_data")
17+
private Map<String, JsonNode> eventData;
18+
1519
@JsonProperty("security_classification")
1620
private String securityClassification;
1721

@@ -44,6 +48,18 @@ public Map<String, JsonNode> getData() {
4448
return data;
4549
}
4650

51+
public void setData(Map<String, JsonNode> data) {
52+
this.data = data;
53+
}
54+
55+
public Map<String, JsonNode> getEventData() {
56+
return eventData;
57+
}
58+
59+
public void setEventData(Map<String, JsonNode> eventData) {
60+
this.eventData = eventData;
61+
}
62+
4763
public String getSecurityClassification() {
4864
return securityClassification;
4965
}
@@ -52,10 +68,6 @@ public void setSecurityClassification(String securityClassification) {
5268
this.securityClassification = securityClassification;
5369
}
5470

55-
public void setData(Map<String, JsonNode> data) {
56-
this.data = data;
57-
}
58-
5971
public Map<String, JsonNode> getDataClassification() {
6072
return dataClassification;
6173
}

src/main/java/uk/gov/hmcts/ccd/domain/service/createevent/MidEventCallback.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
@Service
2929
public class MidEventCallback {
3030

31-
private CallbackInvoker callbackInvoker;
32-
private UIDefinitionRepository uiDefinitionRepository;
33-
private EventTriggerService eventTriggerService;
34-
private CaseDefinitionRepository caseDefinitionRepository;
35-
private CaseService caseService;
31+
private final CallbackInvoker callbackInvoker;
32+
private final UIDefinitionRepository uiDefinitionRepository;
33+
private final EventTriggerService eventTriggerService;
34+
private final CaseDefinitionRepository caseDefinitionRepository;
35+
private final CaseService caseService;
3636

3737
@Autowired
3838
public MidEventCallback(CallbackInvoker callbackInvoker,
@@ -62,7 +62,8 @@ public JsonNode invoke(String caseTypeId,
6262
.findFirst();
6363

6464
if (wizardPageOptional.isPresent() && !isBlank(wizardPageOptional.get().getCallBackURLMidEvent())) {
65-
CaseDetails newCaseDetails = caseService.createNewCaseDetails(caseTypeId, caseType.getJurisdictionId(), content.getData());
65+
CaseDetails newCaseDetails = caseService.createNewCaseDetails(caseTypeId, caseType.getJurisdictionId(),
66+
content.getEventData() == null ? content.getData() : content.getEventData());
6667

6768
CaseDetails caseDetails = callbackInvoker.invokeMidEventCallback(wizardPageOptional.get(),
6869
caseType,

src/test/java/uk/gov/hmcts/ccd/domain/service/common/TestBuildersUtil.java

+45-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
import java.time.LocalDateTime;
44
import java.time.ZonedDateTime;
5-
import java.util.*;
5+
import java.util.ArrayList;
6+
import java.util.Arrays;
7+
import java.util.HashMap;
8+
import java.util.List;
9+
import java.util.Map;
610
import java.util.function.Consumer;
711

812
import static com.google.common.collect.Lists.newArrayList;
@@ -16,11 +20,42 @@
1620
import com.google.common.collect.Lists;
1721
import com.google.common.collect.Maps;
1822
import uk.gov.hmcts.ccd.data.casedetails.SecurityClassification;
19-
import uk.gov.hmcts.ccd.domain.model.aggregated.*;
23+
import uk.gov.hmcts.ccd.domain.model.aggregated.CaseEventTrigger;
24+
import uk.gov.hmcts.ccd.domain.model.aggregated.CaseHistoryView;
25+
import uk.gov.hmcts.ccd.domain.model.aggregated.CaseView;
26+
import uk.gov.hmcts.ccd.domain.model.aggregated.CaseViewEvent;
27+
import uk.gov.hmcts.ccd.domain.model.aggregated.CaseViewField;
28+
import uk.gov.hmcts.ccd.domain.model.aggregated.CaseViewTab;
29+
import uk.gov.hmcts.ccd.domain.model.aggregated.CaseViewTrigger;
30+
import uk.gov.hmcts.ccd.domain.model.aggregated.CaseViewType;
31+
import uk.gov.hmcts.ccd.domain.model.aggregated.DefaultSettings;
32+
import uk.gov.hmcts.ccd.domain.model.aggregated.IDAMProperties;
33+
import uk.gov.hmcts.ccd.domain.model.aggregated.JurisdictionDisplayProperties;
34+
import uk.gov.hmcts.ccd.domain.model.aggregated.ProfileCaseState;
35+
import uk.gov.hmcts.ccd.domain.model.aggregated.User;
36+
import uk.gov.hmcts.ccd.domain.model.aggregated.UserProfile;
37+
import uk.gov.hmcts.ccd.domain.model.aggregated.WorkbasketDefault;
2038
import uk.gov.hmcts.ccd.domain.model.callbacks.CallbackResponse;
2139
import uk.gov.hmcts.ccd.domain.model.callbacks.StartEventTrigger;
22-
import uk.gov.hmcts.ccd.domain.model.definition.*;
23-
import uk.gov.hmcts.ccd.domain.model.draft.*;
40+
import uk.gov.hmcts.ccd.domain.model.definition.AccessControlList;
41+
import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails;
42+
import uk.gov.hmcts.ccd.domain.model.definition.CaseEvent;
43+
import uk.gov.hmcts.ccd.domain.model.definition.CaseField;
44+
import uk.gov.hmcts.ccd.domain.model.definition.CaseState;
45+
import uk.gov.hmcts.ccd.domain.model.definition.CaseTabCollection;
46+
import uk.gov.hmcts.ccd.domain.model.definition.CaseType;
47+
import uk.gov.hmcts.ccd.domain.model.definition.CaseTypeTab;
48+
import uk.gov.hmcts.ccd.domain.model.definition.CaseTypeTabField;
49+
import uk.gov.hmcts.ccd.domain.model.definition.FieldType;
50+
import uk.gov.hmcts.ccd.domain.model.definition.Jurisdiction;
51+
import uk.gov.hmcts.ccd.domain.model.definition.UserRole;
52+
import uk.gov.hmcts.ccd.domain.model.definition.WizardPage;
53+
import uk.gov.hmcts.ccd.domain.model.definition.WizardPageField;
54+
import uk.gov.hmcts.ccd.domain.model.draft.CaseDraft;
55+
import uk.gov.hmcts.ccd.domain.model.draft.CreateCaseDraftRequest;
56+
import uk.gov.hmcts.ccd.domain.model.draft.Draft;
57+
import uk.gov.hmcts.ccd.domain.model.draft.DraftResponse;
58+
import uk.gov.hmcts.ccd.domain.model.draft.UpdateCaseDraftRequest;
2459
import uk.gov.hmcts.ccd.domain.model.search.Field;
2560
import uk.gov.hmcts.ccd.domain.model.search.SearchInput;
2661
import uk.gov.hmcts.ccd.domain.model.search.WorkbasketInput;
@@ -168,6 +203,11 @@ public CaseDataContentBuilder withData(Map<String, JsonNode> data) {
168203
return this;
169204
}
170205

206+
public CaseDataContentBuilder withEventData(Map<String, JsonNode> eventData) {
207+
this.caseDataContent.setEventData(eventData);
208+
return this;
209+
}
210+
171211
public CaseDataContentBuilder withDraftId(String draftId) {
172212
this.caseDataContent.setDraftId(draftId);
173213
return this;
@@ -965,7 +1005,7 @@ public AuditEvent build() {
9651005
}
9661006

9671007
public static class JurisdictionBuilder {
968-
private Jurisdiction jurisdiction;
1008+
private final Jurisdiction jurisdiction;
9691009

9701010
public static JurisdictionBuilder newJurisdiction() {
9711011
return new JurisdictionBuilder();

src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/MidEventCallbackTest.java

+45-1
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@
77
import static java.util.Arrays.asList;
88
import static org.hamcrest.Matchers.is;
99
import static org.junit.Assert.assertThat;
10+
import static org.junit.jupiter.api.Assertions.assertAll;
1011
import static org.mockito.BDDMockito.given;
12+
import static org.mockito.Mockito.never;
1113
import static org.mockito.Mockito.verify;
1214
import static org.mockito.Mockito.verifyNoMoreInteractions;
15+
import static org.mockito.Mockito.when;
1316
import static uk.gov.hmcts.ccd.domain.service.common.TestBuildersUtil.CaseDataContentBuilder.newCaseDataContent;
1417

1518
import com.fasterxml.jackson.core.type.TypeReference;
@@ -61,7 +64,7 @@ class MidEventCallbackTest {
6164
@Mock
6265
private CaseType caseType;
6366
private Event event;
64-
private Map<String, JsonNode> data = new HashMap<>();
67+
private final Map<String, JsonNode> data = new HashMap<>();
6568
private CaseDetails caseDetails;
6669
private WizardPage wizardPageWithCallback;
6770

@@ -152,6 +155,47 @@ void testNoInteractionWhenMidEventCallbackUrlNotPresent() throws IOException {
152155
uiDefinitionRepository, caseService);
153156
}
154157

158+
@Test
159+
@DisplayName("should pass event data to MidEvent callback when available")
160+
void shouldPassEventDataToMidEventCallback() throws Exception {
161+
162+
Map<String, JsonNode> eventData = MAPPER.convertValue(MAPPER.readTree(
163+
"{\n"
164+
+ " \"PersonFirstName\": \"First Name\",\n"
165+
+ " \"PersonLastName\": \"Last Name\"\n"
166+
+ "}"), STRING_JSON_MAP);
167+
CaseDetails updatedCaseDetails = caseDetails(eventData);
168+
when(callbackInvoker.invokeMidEventCallback(wizardPageWithCallback,
169+
caseType,
170+
caseEvent,
171+
null,
172+
caseDetails,
173+
IGNORE_WARNINGS)).thenReturn(updatedCaseDetails);
174+
when(caseService.createNewCaseDetails(CASE_TYPE_ID, JURISDICTION_ID, eventData)).thenReturn(caseDetails);
175+
176+
JsonNode result = midEventCallback.invoke(CASE_TYPE_ID,
177+
newCaseDataContent()
178+
.withEvent(event)
179+
.withData(data)
180+
.withEventData(eventData)
181+
.withIgnoreWarning(IGNORE_WARNINGS)
182+
.build(),
183+
"createCase1");
184+
185+
JsonNode expectedResponse = MAPPER.readTree(
186+
"{"
187+
+ "\"data\": {\n"
188+
+ " \"PersonFirstName\": \"First Name\",\n"
189+
+ " \"PersonLastName\": \"Last Name\"\n"
190+
+ "}}");
191+
192+
assertAll(
193+
() -> assertThat(result, is(expectedResponse)),
194+
() -> verify(callbackInvoker).invokeMidEventCallback(wizardPageWithCallback, caseType, caseEvent, null, caseDetails, IGNORE_WARNINGS),
195+
() -> verify(caseService, never()).createNewCaseDetails(CASE_TYPE_ID, JURISDICTION_ID, data),
196+
() -> verify(caseService).createNewCaseDetails(CASE_TYPE_ID, JURISDICTION_ID, eventData));
197+
}
198+
155199
private CaseDetails caseDetails(Map<String, JsonNode> data) {
156200
CaseDetails caseDetails = new CaseDetails();
157201
caseDetails.setCaseTypeId(CASE_TYPE_ID);

0 commit comments

Comments
 (0)