Skip to content

Commit dda4d82

Browse files
committed
update package + added json to object mapper
1 parent b16e683 commit dda4d82

File tree

4 files changed

+50
-31
lines changed

4 files changed

+50
-31
lines changed

build.gradle

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,10 @@ ext {
247247
lombokVersion = "1.18.38"
248248
}
249249

250+
tasks.named('processPactVerificationTestResources') {
251+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
252+
}
253+
250254
dependencies {
251255
implementation "uk.gov.hmcts.cp:api-cp-crime-schedulingandlisting-courtschedule:$apiCourtScheduleVersion"
252256
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.9'
@@ -272,6 +276,9 @@ dependencies {
272276
implementation 'org.hibernate.validator:hibernate-validator:9.0.1.Final'
273277
implementation 'org.apache.commons:commons-text:1.13.1'
274278

279+
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'
280+
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2'
281+
275282
compileOnly group: 'org.projectlombok', name: 'lombok', version: lombokVersion
276283
annotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion
277284

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package uk.gov.hmcts.cp.pact.helper;
2+
3+
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
5+
6+
import java.io.File;
7+
8+
public class JsonFileToObject {
9+
10+
private static final ObjectMapper mapper = new ObjectMapper()
11+
.registerModule(new JavaTimeModule());
12+
13+
public static <T> T readJsonFromResources(String fileName, Class<T> clazz) throws Exception {
14+
File file = new File(JsonFileToObject.class.getClassLoader().getResource(fileName).toURI());
15+
return mapper.readValue(file, clazz);
16+
}
17+
}

src/pactVerificationTest/java/pact.provider/CourtScheduleProviderPactTest.java renamed to src/pactVerificationTest/java/uk/gov/hmcts/cp/pact/provider/CourtScheduleProviderPactTest.java

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,9 @@
1616
import org.springframework.boot.test.web.server.LocalServerPort;
1717
import org.springframework.test.context.junit.jupiter.SpringExtension;
1818
import uk.gov.hmcts.cp.openapi.model.CourtScheduleResponse;
19-
import uk.gov.hmcts.cp.openapi.model.CourtSchedule;
20-
import uk.gov.hmcts.cp.openapi.model.Hearing;
21-
import uk.gov.hmcts.cp.openapi.model.CourtSitting;
19+
import uk.gov.hmcts.cp.pact.helper.JsonFileToObject;
2220
import uk.gov.hmcts.cp.repositories.CourtScheduleRepository;
2321

24-
import java.time.OffsetDateTime;
25-
import java.util.List;
26-
import java.util.UUID;
27-
2822
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
2923
@ExtendWith({SpringExtension.class, PactVerificationInvocationContextProvider.class})
3024
@Provider("CPCourtScheduleProvider")
@@ -50,31 +44,10 @@ void setupTarget(PactVerificationContext context) {
5044
}
5145

5246
@State("court schedule for case 456789 exists")
53-
public void setupCourtSchedule() {
47+
public void setupCourtSchedule() throws Exception{
5448
courtScheduleRepository.clearAll();
55-
var courtSitting = CourtSitting.builder()
56-
.courtHouse("Central Criminal Court")
57-
.sittingStart(OffsetDateTime.now())
58-
.sittingEnd(OffsetDateTime.now().plusMinutes(60))
59-
.judiciaryId(UUID.randomUUID().toString())
60-
.build();
61-
var hearing = Hearing.builder()
62-
.hearingId(UUID.randomUUID().toString())
63-
.listNote("Requires interpreter")
64-
.hearingDescription("Sentencing for theft case")
65-
.hearingType("Trial")
66-
.courtSittings(List.of(courtSitting))
67-
.build();
68-
69-
var schedule = CourtSchedule.builder()
70-
.hearings(List.of(hearing))
71-
.build();
72-
73-
var response = CourtScheduleResponse.builder()
74-
.courtSchedule(List.of(schedule))
75-
.build();
76-
77-
courtScheduleRepository.saveCourtSchedule("456789", response);
49+
CourtScheduleResponse courtScheduleResponse = JsonFileToObject.readJsonFromResources("courtSchedule.json", CourtScheduleResponse.class);
50+
courtScheduleRepository.saveCourtSchedule("456789", courtScheduleResponse);
7851
}
7952

8053
@TestTemplate
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"courtSchedule": [
3+
{
4+
"hearings": [
5+
{
6+
"hearingId": "HRG-123456",
7+
"hearingType": "Preliminary",
8+
"hearingDescription": "Initial appearance for case 456789",
9+
"listNote": "Judge prefers afternoon start",
10+
"courtSittings": [
11+
{
12+
"sittingStart": "2025-03-25T09:00:00Z",
13+
"sittingEnd": "2025-03-25T12:00:00Z",
14+
"judiciaryId": "123e4567-e89b-12d3-a456-426614174000",
15+
"courtHouse": "223e4567-e89b-12d3-a456-426614174111"
16+
}
17+
]
18+
}
19+
]
20+
}
21+
]
22+
}

0 commit comments

Comments
 (0)