5 use PHPUnit\Framework\Assert;
6 use Symfony\Component\Console\Tester\CommandTester;
11 public function __construct(
12 protected CommandTester $tester,
13 protected ?\Exception $error
16 public function getStderr(): string
18 return $this->error?->getMessage() ?? '';
21 public function assertSuccessfulExit(): void
24 $statusCode = $this->tester->getStatusCode();
25 } catch (\Exception $exception) {
29 Assert::assertEquals(0, $statusCode);
32 public function dumpError(): void
35 echo $this->error->getMessage() . "\n" .
36 $this->error->getTraceAsString();
40 public function assertErrorExit(): void
42 Assert::assertTrue($this->error !== null);
45 public function assertStdoutContains(string $needle): void
47 Assert::assertStringContainsString($needle, $this->tester->getDisplay());
50 public function assertStderrContains(string $needle): void
52 Assert::assertStringContainsString($needle, $this->getStderr());