Skip to content

Commit 6bf77f3

Browse files
author
Ronald Holshausen
committedFeb 22, 2020
fix: fromProviderState on path doesnt work in pact-jvm-consumer-groovy #1022
1 parent 0da6581 commit 6bf77f3

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed
 

‎consumer/pact-jvm-consumer-groovy/src/main/groovy/au/com/dius/pact/consumer/groovy/PactBuilder.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ class PactBuilder extends BaseBuilder {
121121
Map headers = setupHeaders(requestData[i].headers ?: [:], requestMatchers, requestGenerators)
122122
Map query = setupQueryParameters(requestData[i].query ?: [:], requestMatchers, requestGenerators)
123123
Map responseHeaders = setupHeaders(responseData[i].headers ?: [:], responseMatchers, responseGenerators)
124-
String path = setupPath(requestData[i].path ?: '/', requestMatchers, responseGenerators)
124+
String path = setupPath(requestData[i].path ?: '/', requestMatchers, requestGenerators)
125125
interactions << new RequestResponseInteraction(
126126
requestDescription,
127127
providerStates,

‎consumer/pact-jvm-consumer-groovy/src/test/groovy/au/com/dius/pact/consumer/groovy/ProviderStateInjectedPactTest.groovy

+12-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ class ProviderStateInjectedPactTest {
2323
service {
2424
given('a provider state with injectable values', [valueA: 'A', valueB: 100])
2525
uponReceiving('a request')
26-
withAttributes(method: 'POST', path: '/values')
26+
withAttributes(method: 'POST', path: fromProviderState(
27+
'/shoppingCart/v2.0/shoppingCart/${shoppingcartId}',
28+
'/shoppingCart/v2.0/shoppingCart/ShoppingCart_05540051-1155-4557-8080-008a802200aa'))
2729
withBody {
2830
userName 'Test'
2931
userClass 'Shoddy'
@@ -42,7 +44,7 @@ class ProviderStateInjectedPactTest {
4244
request.contentType = 'application/json'
4345
}
4446
def resp = client.post(FromServer) {
45-
request.uri.path = '/values'
47+
request.uri.path = '/shoppingCart/v2.0/shoppingCart/ShoppingCart_05540051-1155-4557-8080-008a802200aa'
4648
request.body = [userName: 'Test', userClass: 'Shoddy']
4749
response.parser(ContentTypes.ANY) { config, r ->
4850
r
@@ -57,7 +59,14 @@ class ProviderStateInjectedPactTest {
5759
def pactFile = new File("${PactConsumerConfig.pactDirectory}/V3Consumer-ProviderStateService.json")
5860
def json = new JsonSlurper().parse(pactFile)
5961
assert json.metadata.pactSpecification.version == '3.0.0'
60-
def generators = json.interactions.first().response.generators
62+
def interaction = json.interactions.first()
63+
assert interaction.request.path ==
64+
'/shoppingCart/v2.0/shoppingCart/ShoppingCart_05540051-1155-4557-8080-008a802200aa'
65+
def generators = interaction.request.generators
66+
assert generators == [
67+
path: [type: 'ProviderState', expression: '/shoppingCart/v2.0/shoppingCart/${shoppingcartId}']
68+
]
69+
generators = interaction.response.generators
6170
assert generators == [
6271
body: ['$.userId': [type: 'ProviderState', expression: 'userId']],
6372
header: [LOCATION: [type: 'ProviderState', expression: 'http://server/users/${userId}']]

0 commit comments

Comments
 (0)
Please sign in to comment.