diff --git a/build.gradle b/build.gradle
index a5cb50da..e37f50ee 100644
--- a/build.gradle
+++ b/build.gradle
@@ -144,6 +144,8 @@ task fortifyScan(type: JavaExec) {
project.ext {
pacticipant = 'wa_task_monitor'
pacticipantVersion = getCheckedOutGitCommitHash()
+ pactBrokerUrl = System.getenv("PACT_BROKER_FULL_URL") ?: 'http://localhost:80'
+ pactBranchName = System.getenv("PACT_BRANCH_NAME") ?: 'Dev'
}
checkstyle {
@@ -299,8 +301,9 @@ def versions = [
springDoc : '2.6.0',
serenity : '4.2.16',
springFrameworkCloud: '2.2.10.RELEASE',
- pitest : '1.16.1',
- pactVersion : '4.1.7',
+ pitest : '1.18.2',
+ pactVersion : '4.6.11',
+ pactJava8Version : '4.1.43',
tomcat : '10.1.31'
]
@@ -383,7 +386,7 @@ dependencies {
//Pact contract testing
contractTestImplementation group: 'au.com.dius.pact.consumer', name: 'junit5', version: versions.pactVersion
- contractTestImplementation group: 'au.com.dius.pact.consumer', name: 'java8', version: versions.pactVersion
+ contractTestImplementation group: 'au.com.dius.pact.consumer', name: 'java8', version: versions.pactJava8Version
contractTestImplementation(group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: versions.junit)
contractTestRuntimeOnly(group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: versions.junit)
@@ -415,11 +418,12 @@ runAndPublishConsumerPactTests.finalizedBy pactPublish
pact {
broker {
- pactBrokerUrl = System.getenv("PACT_BROKER_FULL_URL") ?: 'http://localhost:80'
+ pactBrokerUrl = project.ext.pactBrokerUrl
}
publish {
pactBrokerUrl = System.getenv("PACT_BROKER_FULL_URL") ?: 'http://localhost:80'
pactDirectory = 'pacts'
+ pactBrokerUrl = project.ext.pactBrokerUrl
tags = [System.getenv("PACT_BRANCH_NAME") ?: 'Dev']
version = project.pacticipantVersion
}
diff --git a/config/pmd/ruleset.xml b/config/pmd/ruleset.xml
index 03b66c19..e6138b85 100644
--- a/config/pmd/ruleset.xml
+++ b/config/pmd/ruleset.xml
@@ -62,9 +62,9 @@
-
-
-
+
+
+
diff --git a/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/StartForCaseWorkerConsumerTest.java b/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/StartForCaseWorkerConsumerTest.java
index 18538533..def8d954 100644
--- a/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/StartForCaseWorkerConsumerTest.java
+++ b/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/StartForCaseWorkerConsumerTest.java
@@ -1,7 +1,11 @@
package uk.gov.hmcts.reform.wataskmonitor.consumer.ccd;
+import au.com.dius.pact.consumer.dsl.LambdaDsl;
+import au.com.dius.pact.consumer.dsl.LambdaDslJsonBody;
+import au.com.dius.pact.consumer.dsl.LambdaDslObject;
import au.com.dius.pact.consumer.dsl.PactDslWithProvider;
import au.com.dius.pact.consumer.junit5.PactTestFor;
+import au.com.dius.pact.core.model.PactSpecVersion;
import au.com.dius.pact.core.model.RequestResponsePact;
import au.com.dius.pact.core.model.annotations.Pact;
import org.json.JSONException;
@@ -13,6 +17,7 @@
import java.util.Map;
+import static io.pactfoundation.consumer.dsl.LambdaDsl.newJsonBody;
import static junit.framework.TestCase.assertNotNull;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -46,11 +51,28 @@ public RequestResponsePact startForCaseWorker(PactDslWithProvider builder) {
.matchHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.status(200)
.body(buildStartForCaseWorkerPactDsl(START_APPEAL))
+// .body(LambdaDsl.newJsonBody(((lambdaDslJsonBody) -> {
+// string
+// }))
.toPact();
}
+// .body(String.valueOf(newJsonBody(
+// o -> o.stringType("event_id", START_APPEAL)
+// .stringType("token", null)
+// .object("case_details", cd -> {
+// cd.stringMatcher("jurisdiction", "[/^[A-Za-z_]+$/]+", "IA");
+// cd.stringMatcher("case_type_id", "[/^[A-Za-z_]+$/]+", "Asylum");
+// cd.object("case_data", data -> {
+// data.stringMatcher("isOutOfCountryEnabled", "Yes|No|YES|NO", "No");
+// data.stringMatcher("appealOutOfCountry", "Yes|No|YES|NO", "No");
+// });
+// }).build()
+
+
+
@Test
- @PactTestFor(pactMethod = "startForCaseWorker")
+ @PactTestFor(pactMethod = "startForCaseWorker", pactVersion = PactSpecVersion.V3)
public void verifyStartEventForCaseworker() throws JSONException {
StartEventResponse startEventResponse = coreCaseDataApi.startForCaseworker(
diff --git a/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/util/CcdConsumerTestBase.java b/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/util/CcdConsumerTestBase.java
index 15e6a729..c14c6cde 100644
--- a/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/util/CcdConsumerTestBase.java
+++ b/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/util/CcdConsumerTestBase.java
@@ -1,6 +1,7 @@
package uk.gov.hmcts.reform.wataskmonitor.consumer.ccd.util;
import au.com.dius.pact.consumer.junit5.PactTestFor;
+import au.com.dius.pact.core.model.PactSpecVersion;
import au.com.dius.pact.core.model.annotations.PactFolder;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/util/PactDslBuilderForCaseDetailsList.java b/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/util/PactDslBuilderForCaseDetailsList.java
index e60b0867..febf7569 100644
--- a/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/util/PactDslBuilderForCaseDetailsList.java
+++ b/src/contractTest/java/uk/gov/hmcts/reform/wataskmonitor/consumer/ccd/util/PactDslBuilderForCaseDetailsList.java
@@ -1,6 +1,8 @@
package uk.gov.hmcts.reform.wataskmonitor.consumer.ccd.util;
import au.com.dius.pact.consumer.dsl.DslPart;
+import au.com.dius.pact.consumer.dsl.PactDslJsonBody;
+import au.com.dius.pact.core.support.json.JsonValue;
import io.pactfoundation.consumer.dsl.LambdaDslObject;
import static io.pactfoundation.consumer.dsl.LambdaDsl.newJsonBody;
@@ -28,6 +30,34 @@ public static DslPart buildStartEventForCaseWorkerPactDsl(String eventId) {
})).build();
}
+ //TODO: Investigate this further, does not work with current Pact version
+ public static JsonValue buildStartEventForCaseWorkerPactDslA(String eventId) {
+ return new PactDslJsonBody()
+ .stringType("event_id", eventId)
+ .stringType("token", null)
+ .object("case_details")
+ .numberType("id", 2000)
+ .stringMatcher("jurisdiction", ALPHABETIC_REGEX, "IA")
+ .stringMatcher("case_type", ALPHABETIC_REGEX, "Asylum")
+ .stringValue("state", "appealStarted")
+ .stringValue("securityClassification", "PUBLIC")
+ .object("case_data", PactDslBuilderForCaseDetailsList::getCaseDataPactDsl)
+ .closeObject()
+ .getBody();
+ }
+
+// String pactDslJson = new PactDslJsonBody()
+// .stringType("status", "ON")
+// .object("document")
+// .stringType("status", "NOT_FOUND")
+// .stringType("release", "undefined")
+// .closeObject()
+// .object("file")
+// .stringType("version", "v1.4")
+// .stringType("release", "1.1")
+// .closeObject()
+// .getBody().toString();
+
public static DslPart buildStartForCaseWorkerPactDsl(String eventId) {
return newJsonBody(
o -> o.stringType("event_id", eventId)
@@ -42,6 +72,22 @@ public static DslPart buildStartForCaseWorkerPactDsl(String eventId) {
}))
.build();
}
+// public static DslPart buildStartForCaseWorkerPactDslAA(String eventId) {
+// return PactDslJsonBody(
+// o -> o.stringType("event_id", eventId)
+// .stringType("token", null)
+// .object("case_details", cd -> {
+// cd.stringMatcher("jurisdiction", ALPHABETIC_REGEX, "IA");
+// cd.stringMatcher("case_type_id", ALPHABETIC_REGEX, "Asylum");
+// cd.object("case_data", data -> {
+// data.stringMatcher("isOutOfCountryEnabled", "Yes|No|YES|NO", "No");
+// data.stringMatcher("appealOutOfCountry", "Yes|No|YES|NO", "No");
+// });
+// }))
+// .build();
+// }
+
+
public static DslPart buildSubmitForCaseWorkedPactDsl(Long caseId) {
return newJsonBody(