Skip to content

Commit 9d564db

Browse files
committed
docs: Add example matching exact query and header
1 parent 6d6c72e commit 9d564db

6 files changed

Lines changed: 31 additions & 6 deletions

File tree

example/matchers/consumer/src/Service/HttpClientService.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public function sendRequest(): ResponseInterface
1818
{
1919
return $this->httpClient->get("{$this->baseUri}/matchers", [
2020
'headers' => ['Accept' => 'application/json', 'Theme' => 'light'],
21-
'query' => 'pages=2&pages=3&locales[]=fr-BE&locales[]=ru-RU&browsers[]=Firefox&browsers[]=Chrome&browsers[]=Safari',
21+
'query' => 'pages=2&pages=3&locales[]=fr-BE&locales[]=ru-RU&browsers[]=Firefox&browsers[]=Chrome&browsers[]=Safari&single=query&multiple[]=query1&multiple[]=query2',
2222
'http_errors' => false,
2323
]);
2424
}

example/matchers/consumer/tests/Service/MatchersTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,18 @@ public function testGetMatchers(): void
4949

5050
'browsers[]' => $this->matcher->arrayContaining(['Firefox', 'Chrome']),
5151
])
52+
->addQueryParameter('single', 'query')
53+
->addQueryParameter('multiple[]', ['query1', 'query2'])
5254
->addHeader('Accept', 'application/json')
5355
->addHeader('Theme', $this->matcher->regex('dark', 'light|dark'));
5456

5557
$response = new ProviderResponse();
5658
$response
5759
->setStatus($this->matcher->statusCode(HttpStatus::SERVER_ERROR, 512))
60+
->setHeaders([
61+
'single' => 'header',
62+
'multiple' => ['header1', 'header2'],
63+
])
5864
->addHeader('Content-Type', 'application/json')
5965
->addHeader('X-Powered-By', $this->matcher->arrayContaining([
6066
'PHP'

example/matchers/pacts/matchersConsumer-matchersProvider.json

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,16 @@
121121
"en-US",
122122
"en-AU"
123123
],
124+
"multiple[]": [
125+
"query1",
126+
"query2"
127+
],
124128
"pages": [
125129
"1",
126130
"22"
131+
],
132+
"single": [
133+
"query"
127134
]
128135
}
129136
},
@@ -245,6 +252,13 @@
245252
],
246253
"X-Powered-By": [
247254
"PHP"
255+
],
256+
"multiple": [
257+
"header1",
258+
"header2"
259+
],
260+
"single": [
261+
"header"
248262
]
249263
},
250264
"matchingRules": {
@@ -754,9 +768,9 @@
754768
],
755769
"metadata": {
756770
"pactRust": {
757-
"ffi": "0.4.23",
758-
"mockserver": "1.2.10",
759-
"models": "1.2.5"
771+
"ffi": "0.4.26",
772+
"mockserver": "1.2.11",
773+
"models": "1.2.7"
760774
},
761775
"pactSpecification": {
762776
"version": "4.0"

example/matchers/provider/public/index.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,11 @@
107107
'PHP',
108108
'Nginx',
109109
'Slim',
110+
])
111+
->withHeader('single', 'header')
112+
->withHeader('multiple', [
113+
'header1',
114+
'header2',
110115
]);
111116
});
112117

src/PhpPact/Consumer/Model/Interaction/HeadersTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public function getHeaders(): array
2121
}
2222

2323
/**
24-
* @param array<string, string|string[]> $headers
24+
* @param array<string, MatcherInterface|MatcherInterface[]|string|string[]> $headers
2525
*/
2626
public function setHeaders(array $headers): self
2727
{

src/PhpPact/Consumer/Model/Interaction/QueryTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public function getQuery(): array
2121
}
2222

2323
/**
24-
* @param array<string, string|string[]> $query
24+
* @param array<string, MatcherInterface|MatcherInterface[]|string|string[]> $query
2525
*/
2626
public function setQuery(array $query): self
2727
{

0 commit comments

Comments
 (0)