|
9 | 9 | use Brainbits\FunctionalTestHelpers\HttpClientMock\MockRequestMatcher;
|
10 | 10 | use Brainbits\FunctionalTestHelpers\HttpClientMock\MockResponseBuilder;
|
11 | 11 | use Brainbits\FunctionalTestHelpers\HttpClientMock\RealRequest;
|
12 |
| -use PHPUnit\Framework\AssertionFailedError; |
13 | 12 | use PHPUnit\Framework\Attributes\CoversClass;
|
14 | 13 | use PHPUnit\Framework\Attributes\DataProvider;
|
| 14 | +use PHPUnit\Framework\ExpectationFailedException; |
15 | 15 | use PHPUnit\Framework\TestCase;
|
16 | 16 |
|
17 | 17 | #[CoversClass(MockRequestBuilder::class)]
|
@@ -173,68 +173,74 @@ public function testAssertContent(): void
|
173 | 173 | {
|
174 | 174 | $collection = new MockRequestBuilderCollection();
|
175 | 175 | $collection->addMockRequestBuilder(
|
176 |
| - (new MockRequestBuilder()) |
| 176 | + $builder = (new MockRequestBuilder()) |
177 | 177 | ->assertContent(function (string $content): void {
|
178 | 178 | $this->assertSame('this is content', $content);
|
179 | 179 | })
|
180 | 180 | ->willRespond(new MockResponseBuilder()),
|
181 | 181 | );
|
182 | 182 |
|
183 | 183 | $collection('GET', '/query', ['body' => 'this is content']);
|
| 184 | + |
| 185 | + $this->assertSame([], $builder->getFailedAssertions()); |
184 | 186 | }
|
185 | 187 |
|
186 | 188 | public function testAssertContentFails(): void
|
187 | 189 | {
|
188 | 190 | $collection = new MockRequestBuilderCollection();
|
189 | 191 | $collection->addMockRequestBuilder(
|
190 |
| - (new MockRequestBuilder()) |
| 192 | + $builder = (new MockRequestBuilder()) |
191 | 193 | ->assertContent(function (string $content): void {
|
192 | 194 | $this->assertSame('this is content', $content);
|
193 | 195 | })
|
194 | 196 | ->willRespond(new MockResponseBuilder()),
|
195 | 197 | );
|
196 | 198 |
|
197 |
| - try { |
198 |
| - $collection('GET', '/query', ['body' => 'does-not-match']); |
199 |
| - } catch (AssertionFailedError) { |
200 |
| - return; |
201 |
| - } |
| 199 | + $collection('GET', '/query', ['body' => 'does-not-match']); |
202 | 200 |
|
203 |
| - $this->fail('Expected assertion was not thrown'); |
| 201 | + $failedAssertions = $builder->getFailedAssertions(); |
| 202 | + $this->assertCount(1, $failedAssertions); |
| 203 | + $this->assertInstanceOf( |
| 204 | + ExpectationFailedException::class, |
| 205 | + $failedAssertions[0], |
| 206 | + ); |
204 | 207 | }
|
205 | 208 |
|
206 | 209 | public function testAssertThat(): void
|
207 | 210 | {
|
208 | 211 | $collection = new MockRequestBuilderCollection();
|
209 | 212 | $collection->addMockRequestBuilder(
|
210 |
| - (new MockRequestBuilder()) |
| 213 | + $builder = (new MockRequestBuilder()) |
211 | 214 | ->assertThat(function (RealRequest $realRequest): void {
|
212 | 215 | $this->assertSame('this is content', $realRequest->getContent());
|
213 | 216 | })
|
214 | 217 | ->willRespond(new MockResponseBuilder()),
|
215 | 218 | );
|
216 | 219 |
|
217 | 220 | $collection('GET', '/query', ['body' => 'this is content']);
|
| 221 | + |
| 222 | + $this->assertSame([], $builder->getFailedAssertions()); |
218 | 223 | }
|
219 | 224 |
|
220 | 225 | public function testAssertThatFails(): void
|
221 | 226 | {
|
222 | 227 | $collection = new MockRequestBuilderCollection();
|
223 | 228 | $collection->addMockRequestBuilder(
|
224 |
| - (new MockRequestBuilder()) |
| 229 | + $builder = (new MockRequestBuilder()) |
225 | 230 | ->assertThat(function (RealRequest $realRequest): void {
|
226 | 231 | $this->assertSame('this is content', $realRequest->getContent());
|
227 | 232 | })
|
228 | 233 | ->willRespond(new MockResponseBuilder()),
|
229 | 234 | );
|
230 | 235 |
|
231 |
| - try { |
232 |
| - $collection('GET', '/query', ['body' => 'does-not-match']); |
233 |
| - } catch (AssertionFailedError) { |
234 |
| - return; |
235 |
| - } |
| 236 | + $collection('GET', '/query', ['body' => 'does-not-match']); |
236 | 237 |
|
237 |
| - $this->fail('Expected assertion was not thrown'); |
| 238 | + $failedAssertions = $builder->getFailedAssertions(); |
| 239 | + $this->assertCount(1, $failedAssertions); |
| 240 | + $this->assertInstanceOf( |
| 241 | + ExpectationFailedException::class, |
| 242 | + $failedAssertions[0], |
| 243 | + ); |
238 | 244 | }
|
239 | 245 |
|
240 | 246 | /** @return mixed[] */
|
|
0 commit comments