diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippet.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippet.java index f9fee052f8..345e4cae3a 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippet.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippet.java @@ -77,10 +77,6 @@ public class ContractDslSnippet extends TemplatedSnippet { filterHeaders(headers); model.put("response_headers_present", !headers.isEmpty()); model.put("response_headers", headers.entrySet()); - @SuppressWarnings("unchecked") Set jsonPaths = (Set) operation.getAttributes() - .get("contract.jsonPaths"); - model.put("response_json_paths_present", jsonPaths != null && !jsonPaths.isEmpty()); - model.put("response_json_paths", jsonPaths(jsonPaths)); } private Set jsonPaths(Set jsonPaths) { @@ -104,6 +100,10 @@ public class ContractDslSnippet extends TemplatedSnippet { filterHeaders(headers); model.put("request_headers_present", !headers.isEmpty()); model.put("request_headers", headers.entrySet()); + @SuppressWarnings("unchecked") Set jsonPaths = (Set) operation.getAttributes() + .get("contract.jsonPaths"); + model.put("request_json_paths_present", jsonPaths != null && !jsonPaths.isEmpty()); + model.put("request_json_paths", jsonPaths(jsonPaths)); } private void filterHeaders(Map headers) { diff --git a/spring-cloud-contract-wiremock/src/main/resources/org/springframework/restdocs/templates/default-dsl-contract-only.snippet b/spring-cloud-contract-wiremock/src/main/resources/org/springframework/restdocs/templates/default-dsl-contract-only.snippet index 4180c7e4cf..14c4bdeacb 100644 --- a/spring-cloud-contract-wiremock/src/main/resources/org/springframework/restdocs/templates/default-dsl-contract-only.snippet +++ b/spring-cloud-contract-wiremock/src/main/resources/org/springframework/restdocs/templates/default-dsl-contract-only.snippet @@ -16,6 +16,13 @@ Contract.make { {{/request_headers}} } {{/request_headers_present}} + {{#request_json_paths_present}} + stubMatchers { + {{#request_json_paths}} + jsonPath('''{{jsonPath}}''', byEquality()) + {{/request_json_paths}} + } + {{/request_json_paths_present}} } response { status {{response_status}} @@ -31,12 +38,5 @@ Contract.make { {{/response_headers}} } {{/response_headers_present}} - {{#response_json_paths_present}} - testMatchers { - {{#response_json_paths}} - jsonPath('''{{jsonPath}}''', byType()) - {{/response_json_paths}} - } - {{/response_json_paths_present}} } } \ No newline at end of file diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java index 5e7d598665..e79284651e 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java @@ -91,10 +91,10 @@ public class ContractDslSnippetTests { then(parsedContract.getRequest().getUrl().getClientValue()).isNotNull(); then(parsedContract.getRequest().getUrl().getClientValue().toString()).startsWith("/"); then(parsedContract.getRequest().getBody().getClientValue()).isNotNull(); + then(parsedContract.getRequest().getMatchers().hasMatchers()).isTrue(); then(parsedContract.getResponse().getStatus().getClientValue()).isNotNull(); then(parsedContract.getResponse().getHeaders().getEntries()).isNotEmpty(); then(parsedContract.getResponse().getBody().getClientValue()).isNotNull(); - then(parsedContract.getResponse().getMatchers().hasMatchers()).isTrue(); } @Test