|
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