From e6b80d619e733229525baf60e2686b20d6cb69a4 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 5 Sep 2017 14:19:12 +0200 Subject: [PATCH] Fixed missing $.body element in pact matchers; fixes #414 --- .../spec/pact/PactContractConverter.groovy | 2 +- .../spec/pact/PactContractConverterSpec.groovy | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverter.groovy b/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverter.groovy index 4f1b7df1cc..2060abdd65 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverter.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverter.groovy @@ -269,7 +269,7 @@ class PactContractConverter implements ContractConverter { protected Map> matchingRules(BodyMatchers bodyMatchers) { return bodyMatchers.jsonPathMatchers().collectEntries { MatchingType matchingType = it.matchingType() - String key = it.path() + String key = "\$.body${it.path().startsWith('$') ? it.path().substring(1) : it.path()}" Object value = it.value() Integer minTypeOccurrence = it.minTypeOccurrence() Integer maxTypeOccurrence = it.maxTypeOccurrence() diff --git a/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy index bc3f6375df..f5fc393dfe 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy @@ -151,11 +151,11 @@ class PactContractConverterSpec extends Specification { "something": "foo" }, "matchingRules": { - "$.id": { + "$.body.id": { "match": "regex", "regex": "[0-9]{3}" }, - "$.something": { + "$.body.something": { "match": "equality" } } @@ -176,22 +176,22 @@ class PactContractConverterSpec extends Specification { ] ], "matchingRules": { - "$[0][*].email": { + "$.body[0][*].email": { "match": "type" }, - "$[0][*].id": { + "$.body[0][*].id": { "match": "regex", "regex": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" }, - "$[0]": { + "$.body[0]": { "match": "type", "min": 1, "max": 5 }, - "$[0][*].userName": { + "$.body[0][*].userName": { "match": "type" }, - "$[0][*].something": { + "$.body[0][*].something": { "match": "equality" } }