@@ -228,7 +228,7 @@ public static function caseProvider(): Generator
228228 *
229229 * @param array<string, string|bool> $parameters
230230 */
231- public function testWhyCommandOutputs (array $ parameters , string $ expectedOutput ): void
231+ public function testWhyCommandOutputs (array $ parameters , string $ expectedOutput, int $ expectedStatusCode ): void
232232 {
233233 $ packageToBeInspected = $ parameters ['package ' ];
234234 $ renderAsTree = $ parameters ['--tree ' ] ?? false ;
@@ -294,9 +294,9 @@ public function testWhyCommandOutputs(array $parameters, string $expectedOutput)
294294 '--locked ' => true
295295 ]);
296296
297- $ appTester ->assertCommandIsSuccessful ( );
297+ self :: assertSame ( $ expectedStatusCode , $ appTester ->getStatusCode () );
298298
299- $ this ->assertEquals (trim ($ expectedOutput ), trim ($ appTester ->getDisplay (true )));
299+ $ this ->assertEquals (trim ($ expectedOutput ), $ this -> trimLines ($ appTester ->getDisplay (true )));
300300 }
301301
302302 /**
@@ -306,41 +306,46 @@ public static function caseWhyProvider(): Generator
306306 {
307307 yield 'there is no installed package depending on the package ' => [
308308 ['package ' => 'vendor1/package1 ' ],
309- 'There is no installed package depending on "vendor1/package1" '
309+ 'There is no installed package depending on "vendor1/package1" ' ,
310+ 1
310311 ];
311312
312313 yield 'a nested package dependency ' => [
313314 ['package ' => 'vendor1/package3 ' ],
314315 <<<OUTPUT
315- __root__ - requires vendor1/package3 (2.3.0)
316+ __root__ - requires vendor1/package3 (2.3.0)
316317vendor1/package2 2.3.0 requires vendor1/package3 (^1)
317- OUTPUT
318+ OUTPUT ,
319+ 0
318320 ];
319321
320322 yield 'a nested package dependency (tree mode) ' => [
321323 ['package ' => 'vendor1/package3 ' , '--tree ' => true ],
322324 <<<OUTPUT
323- vendor1/package3 2.1.0
325+ vendor1/package3 2.1.0
324326|--__root__ (requires vendor1/package3 2.3.0)
325327`--vendor1/package2 2.3.0 (requires vendor1/package3 ^1)
326328 |--__root__ (requires vendor1/package2 1.3.0)
327329 `--vendor1/package1 1.3.0 (requires vendor1/package2 ^2)
328- OUTPUT
330+ OUTPUT ,
331+ 0
329332 ];
330333
331334 yield 'a nested package dependency (recursive mode) ' => [
332335 ['package ' => 'vendor1/package3 ' , '--recursive ' => true ],
333336 <<<OUTPUT
334- __root__ - requires vendor1/package2 (1.3.0)
335- vendor1/package1 1.3.0 requires vendor1/package2 (^2)
336- __root__ - requires vendor1/package3 (2.3.0)
337+ __root__ - requires vendor1/package2 (1.3.0)
338+ vendor1/package1 1.3.0 requires vendor1/package2 (^2)
339+ __root__ - requires vendor1/package3 (2.3.0)
337340vendor1/package2 2.3.0 requires vendor1/package3 (^1)
338- OUTPUT
341+ OUTPUT ,
342+ 0
339343 ];
340344
341345 yield 'a simple package dev dependency ' => [
342346 ['package ' => 'vendor2/package1 ' ],
343- '__root__ - requires (for development) vendor2/package1 (2.*) '
347+ '__root__ - requires (for development) vendor2/package1 (2.*) ' ,
348+ 0
344349 ];
345350 }
346351
@@ -354,7 +359,7 @@ public static function caseWhyProvider(): Generator
354359 *
355360 * @param array<string, string> $parameters
356361 */
357- public function testWhyNotCommandOutputs (array $ parameters , string $ expectedOutput ): void
362+ public function testWhyNotCommandOutputs (array $ parameters , string $ expectedOutput, int $ expectedStatusCode ): void
358363 {
359364 $ packageToBeInspected = $ parameters ['package ' ];
360365 $ packageVersionToBeInspected = $ parameters ['version ' ];
@@ -393,7 +398,7 @@ public function testWhyNotCommandOutputs(array $parameters, string $expectedOutp
393398 '1.4.* '
394399 )
395400 ]);
396- $ secondDevNestedRequiredPackage = self ::getPackage ('vendor2/package3 ' , '1.4.0 ' );
401+ $ secondDevNestedRequiredPackage = self ::getPackage ('vendor2/package3 ' , '1.4.0 ' );
397402
398403 $ this ->createComposerLock (
399404 [$ someRequiredPackage ],
@@ -411,8 +416,8 @@ public function testWhyNotCommandOutputs(array $parameters, string $expectedOutp
411416 'version ' => $ packageVersionToBeInspected
412417 ]);
413418
414- $ appTester ->assertCommandIsSuccessful ( );
415- $ this ->assertSame (trim ($ expectedOutput ), trim ($ appTester ->getDisplay (true )));
419+ self :: assertSame ( $ expectedStatusCode , $ appTester ->getStatusCode () );
420+ $ this ->assertSame (trim ($ expectedOutput ), $ this -> trimLines ($ appTester ->getDisplay (true )));
416421 }
417422
418423 /**
@@ -424,9 +429,10 @@ public function caseWhyNotProvider(): Generator
424429 ['package ' => 'vendor1/package1 ' , 'version ' => '3.* ' ],
425430 <<<OUTPUT
426431Package "vendor1/package1" could not be found with constraint "3.*", results below will most likely be incomplete.
427- __root__ - requires vendor1/package1 (1.*)
432+ __root__ - requires vendor1/package1 (1.*)
428433Not finding what you were looking for? Try calling `composer require "vendor1/package1:3.*" --dry-run` to get another view on the problem.
429- OUTPUT
434+ OUTPUT ,
435+ 1
430436 ];
431437
432438 yield 'it could not found the package and there is no installed package with a specific version ' => [
@@ -435,23 +441,26 @@ public function caseWhyNotProvider(): Generator
435441Package "vendor1/package1" could not be found with constraint "^1.4", results below will most likely be incomplete.
436442There is no installed package depending on "vendor1/package1" in versions not matching ^1.4
437443Not finding what you were looking for? Try calling `composer require "vendor1/package1:^1.4" --dry-run` to get another view on the problem.
438- OUTPUT
444+ OUTPUT ,
445+ 0
439446 ];
440447
441448 yield 'there is no installed package depending on the package in versions not matching a specific version ' => [
442449 ['package ' => 'vendor1/package1 ' , 'version ' => '^1.3 ' ],
443450 <<<OUTPUT
444451There is no installed package depending on "vendor1/package1" in versions not matching ^1.3
445452Not finding what you were looking for? Try calling `composer require "vendor1/package1:^1.3" --dry-run` to get another view on the problem.
446- OUTPUT
453+ OUTPUT ,
454+ 0
447455 ];
448456
449457 yield 'an installed package requires an incompatible version of the inspected package ' => [
450458 ['package ' => 'vendor2/package3 ' , 'version ' => '1.5.0 ' ],
451459 <<<OUTPUT
452- vendor2/package2 1.0.0 requires vendor2/package3 (1.4.*)
460+ vendor2/package2 1.0.0 requires vendor2/package3 (1.4.*)
453461Not finding what you were looking for? Try calling `composer update "vendor2/package3:1.5.0" --dry-run` to get another view on the problem.
454- OUTPUT
462+ OUTPUT ,
463+ 1
455464 ];
456465 }
457466}
0 commit comments