diff --git a/Src/CSharpier.Cli.Tests/CliTests.cs b/Src/CSharpier.Cli.Tests/CliTests.cs index 0ef58bb96..764ae06e1 100644 --- a/Src/CSharpier.Cli.Tests/CliTests.cs +++ b/Src/CSharpier.Cli.Tests/CliTests.cs @@ -101,6 +101,18 @@ public async Task Should_Format_Piped_File(string lineEnding) result.ExitCode.Should().Be(0); } + [Test] + public async Task Should_Print_NotFound() + { + var result = await new CsharpierProcess().WithArguments("/BasicFile.cs").ExecuteAsync(); + + result.Output.Should().BeEmpty(); + result.ErrorOutput + .Should() + .StartWith("There was no file or directory found at /BasicFile.cs"); + result.ExitCode.Should().Be(1); + } + [Test] public async Task Should_Write_To_StdError_For_Piped_Invalid_File() { diff --git a/Src/CSharpier.Cli/CommandLineFormatter.cs b/Src/CSharpier.Cli/CommandLineFormatter.cs index 8d2606d69..d2b22e8ad 100644 --- a/Src/CSharpier.Cli/CommandLineFormatter.cs +++ b/Src/CSharpier.Cli/CommandLineFormatter.cs @@ -92,7 +92,7 @@ await FormatPhysicalFile( { await FormatFile(directoryOrFile); } - else + else if (fileSystem.Directory.Exists(directoryOrFile)) { var tasks = fileSystem.Directory .EnumerateFiles(directoryOrFile, "*.cs", SearchOption.AllDirectories) @@ -110,6 +110,13 @@ await FormatPhysicalFile( } } } + else + { + console.WriteErrorLine( + "There was no file or directory found at " + directoryOrFile + ); + return 1; + } } }