From dca67da8cde4462a05dc272a9a91c7baa6312419 Mon Sep 17 00:00:00 2001 From: Frank Ray <52075808+FrankRay78@users.noreply.github.com> Date: Fri, 4 Oct 2024 15:39:43 +0100 Subject: [PATCH] New unit tests to ensure unknown flags are added to remaining args --- .../Unit/CommandAppTests.Remaining.cs | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/src/Tests/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Remaining.cs b/src/Tests/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Remaining.cs index 378ec16..4784b6b 100644 --- a/src/Tests/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Remaining.cs +++ b/src/Tests/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Remaining.cs @@ -4,6 +4,129 @@ public sealed partial class CommandAppTests { public sealed class Remaining { + [Fact] + public void Should_Add_Unknown_Flags_To_Remaining_Arguments_Default_Command() + { + // Given + var app = new CommandAppTester(); + app.SetDefaultCommand(); + + // When + var result = app.Run("--felix"); + + // Then + result.Output.ShouldBe(string.Empty); + result.Context.ShouldHaveRemainingArgument("--felix", new[] { (string)null }); + } + + [Fact] + public void Should_Add_Unknown_Flags_To_Remaining_Arguments_Command() + { + // Given + var app = new CommandAppTester(); + app.Configure(config => + { + config.AddCommand("empty"); + }); + + // When + var result = app.Run("empty", "--felix"); + + // Then + result.Output.ShouldBe(string.Empty); + result.Context.ShouldHaveRemainingArgument("--felix", new[] { (string)null }); + } + + [Fact] + public void Should_Add_Unknown_Flags_To_Remaining_Arguments_Branch_Default_Command() + { + // Given + var app = new CommandAppTester(); + app.Configure(config => + { + config.AddBranch("branch", branch => + { + branch.SetDefaultCommand(); + }); + }); + + // When + var result = app.Run("branch", "--felix"); + + // Then + result.Output.ShouldBe(string.Empty); + result.Context.ShouldHaveRemainingArgument("--felix", new[] { (string)null }); + } + + [Fact] + public void Should_Add_Unknown_Flags_To_Remaining_Arguments_Branch_Command() + { + // Given + var app = new CommandAppTester(); + app.Configure(config => + { + config.AddBranch("branch", branch => + { + branch.AddCommand("hello"); + }); + }); + + // When + var result = app.Run("branch", "hello", "--felix"); + + // Then + result.Output.ShouldBe(string.Empty); + result.Context.ShouldHaveRemainingArgument("--felix", new[] { (string)null }); + } + + [Fact] + public void Should_Add_Unknown_Flags_To_Remaining_Arguments_Branch_Branch_Default_Command() + { + // Given + var app = new CommandAppTester(); + app.Configure(config => + { + config.AddBranch("branch", branch => + { + branch.AddBranch("hello", hello => + { + hello.SetDefaultCommand(); + }); + }); + }); + + // When + var result = app.Run("branch", "hello", "--felix"); + + // Then + result.Output.ShouldBe(string.Empty); + result.Context.ShouldHaveRemainingArgument("--felix", new[] { (string)null }); + } + + [Fact] + public void Should_Add_Unknown_Flags_To_Remaining_Arguments_Branch_Branch_Command() + { + // Given + var app = new CommandAppTester(); + app.Configure(config => + { + config.AddBranch("branch", branch => + { + branch.AddBranch("hello", hello => + { + hello.AddCommand("world"); + }); + }); + }); + + // When + var result = app.Run("branch", "hello", "world", "--felix"); + + // Then + result.Output.ShouldBe(string.Empty); + result.Context.ShouldHaveRemainingArgument("--felix", new[] { (string)null }); + } + [Theory] [InlineData("-a")] [InlineData("--alive")]