packages/sql-catalog/tests/Unit/Cli/CommandResultTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Cli;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\UsesClass;
9use PHPUnit\Framework\TestCase;
10use SqlCatalog\Cli\CommandResult;
11use SqlCatalog\Cli\ExitCode;
12
13#[CoversClass(CommandResult::class)]
14#[UsesClass(ExitCode::class)]
15final class CommandResultTest extends TestCase
16{
17 public function testOkWritesOnlyToStandardOutput(): void
18 {
19 $result = CommandResult::ok('done');
20 self::assertSame(ExitCode::Success, $result->exitCode);
21 self::assertSame('done', $result->output);
22 self::assertSame('', $result->error);
23 }
24
25 public function testFailureWritesOnlyToStandardErrorAndEndsWithANewline(): void
26 {
27 $result = CommandResult::failure(ExitCode::InvalidCommandLine, "bad\n\n");
28 self::assertSame(ExitCode::InvalidCommandLine, $result->exitCode);
29 self::assertSame('', $result->output);
30 self::assertSame("bad\n", $result->error);
31 }
32}
33