commandTester = CliTestUtils::testerForCommand(new ReadEnvVarCommand(fn () => $this->envVarValue)); } #[Test] public function errorIsThrownIfProvidedEnvVarIsInvalid(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('foo is not a valid Shlink environment variable'); $this->commandTester->execute(['env-var' => 'foo']); } #[Test] public function valueIsPrintedIfProvidedEnvVarIsValid(): void { $this->commandTester->execute(['env-var' => EnvVars::BASE_PATH->value]); $output = $this->commandTester->getDisplay(); self::assertStringNotContainsString('Select the env var to read', $output); self::assertStringContainsString($this->envVarValue, $output); } #[Test] public function envVarNameIsRequestedIfArgumentIsMissing(): void { $this->commandTester->setInputs([EnvVars::BASE_PATH->value]); $this->commandTester->execute([]); $output = $this->commandTester->getDisplay(); self::assertStringContainsString('Select the env var to read', $output); self::assertStringContainsString($this->envVarValue, $output); } }