mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-06-16 04:03:22 +08:00
Unit tests to ensure VersionCommand executes when -v|--version is specified, rather than showing the ApplicationVersion number
This commit is contained in:
parent
75b3b83210
commit
cefb51df7b
@ -43,10 +43,6 @@ public sealed partial class CommandAppTests
|
||||
{
|
||||
// Given
|
||||
var fixture = new CommandAppTester();
|
||||
fixture.Configure(configurator =>
|
||||
{
|
||||
configurator.AddCommand<EmptyCommand>("empty");
|
||||
});
|
||||
|
||||
// When
|
||||
var result = fixture.Run(versionOption);
|
||||
@ -56,6 +52,26 @@ public sealed partial class CommandAppTests
|
||||
result.Output.ShouldStartWith($"Error: Unexpected option '{versionOption.Replace("-", "")}'");
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("-v")]
|
||||
[InlineData("--version")]
|
||||
public void Should_Output_Application_Version_To_The_Console_With_Default_Command(string versionOption)
|
||||
{
|
||||
// Given
|
||||
var fixture = new CommandAppTester();
|
||||
fixture.SetDefaultCommand<EmptyCommand>();
|
||||
fixture.Configure(configurator =>
|
||||
{
|
||||
configurator.SetApplicationVersion("1.0");
|
||||
});
|
||||
|
||||
// When
|
||||
var result = fixture.Run(versionOption);
|
||||
|
||||
// Then
|
||||
result.Output.ShouldBe("1.0");
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("-v")]
|
||||
[InlineData("--version")]
|
||||
@ -77,26 +93,6 @@ public sealed partial class CommandAppTests
|
||||
result.Context.ShouldHaveRemainingArgument(versionOption, new[] { (string)null });
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("-v")]
|
||||
[InlineData("--version")]
|
||||
public void Should_Output_Application_Version_To_The_Console_With_Default_Command(string versionOption)
|
||||
{
|
||||
// Given
|
||||
var fixture = new CommandAppTester();
|
||||
fixture.SetDefaultCommand<EmptyCommand>();
|
||||
fixture.Configure(configurator =>
|
||||
{
|
||||
configurator.SetApplicationVersion("1.0");
|
||||
});
|
||||
|
||||
// When
|
||||
var result = fixture.Run(versionOption);
|
||||
|
||||
// Then
|
||||
result.Output.ShouldBe("1.0");
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("-v")]
|
||||
[InlineData("--version")]
|
||||
@ -156,16 +152,106 @@ public sealed partial class CommandAppTests
|
||||
configurator.SetApplicationVersion("1.0");
|
||||
configurator.AddBranch<EmptyCommandSettings>("branch", branch =>
|
||||
{
|
||||
branch.AddCommand<EmptyCommand>("hello");
|
||||
branch.AddCommand<EmptyCommand>("empty");
|
||||
});
|
||||
});
|
||||
|
||||
// When
|
||||
var result = fixture.Run("branch", "hello", versionOption);
|
||||
var result = fixture.Run("branch", "empty", versionOption);
|
||||
|
||||
// Then
|
||||
result.Output.ShouldBe(string.Empty);
|
||||
result.Context.ShouldHaveRemainingArgument(versionOption, new[] { (string)null });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// When a command with a version option in the settings is set as the application default command,
|
||||
/// then execute this command instead of displaying the explicitly set Application Version.
|
||||
/// </summary>
|
||||
[Theory]
|
||||
[InlineData("-v")]
|
||||
[InlineData("--version")]
|
||||
public void Should_Execute_Default_VersionCommand_Not_Output_Application_Version_To_The_Console(string versionOption)
|
||||
{
|
||||
// Given
|
||||
var fixture = new CommandAppTester();
|
||||
fixture.SetDefaultCommand<Spectre.Console.Tests.Data.VersionCommand>();
|
||||
fixture.Configure(configurator =>
|
||||
{
|
||||
configurator.SetApplicationVersion("1.0");
|
||||
});
|
||||
|
||||
// When
|
||||
var result = fixture.Run(versionOption, "X.Y.Z");
|
||||
|
||||
// Then
|
||||
result.Output.ShouldBe("VersionCommand ran, Version: X.Y.Z");
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("-v")]
|
||||
[InlineData("--version")]
|
||||
public void Should_Execute_VersionCommand_Not_Output_Application_Version_To_The_Console(string versionOption)
|
||||
{
|
||||
// Given
|
||||
var fixture = new CommandAppTester();
|
||||
fixture.Configure(configurator =>
|
||||
{
|
||||
configurator.SetApplicationVersion("1.0");
|
||||
configurator.AddCommand<Spectre.Console.Tests.Data.VersionCommand>("hello");
|
||||
});
|
||||
|
||||
// When
|
||||
var result = fixture.Run("hello", versionOption, "X.Y.Z");
|
||||
|
||||
// Then
|
||||
result.Output.ShouldBe("VersionCommand ran, Version: X.Y.Z");
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("-v")]
|
||||
[InlineData("--version")]
|
||||
public void Should_Execute_Branch_Default_VersionCommand_Not_Output_Application_Version_To_The_Console(string versionOption)
|
||||
{
|
||||
// Given
|
||||
var fixture = new CommandAppTester();
|
||||
fixture.Configure(configurator =>
|
||||
{
|
||||
configurator.SetApplicationVersion("1.0");
|
||||
configurator.AddBranch<VersionSettings>("branch", branch =>
|
||||
{
|
||||
branch.SetDefaultCommand<Spectre.Console.Tests.Data.VersionCommand>();
|
||||
});
|
||||
});
|
||||
|
||||
// When
|
||||
var result = fixture.Run("branch", versionOption, "X.Y.Z");
|
||||
|
||||
// Then
|
||||
result.Output.ShouldBe("VersionCommand ran, Version: X.Y.Z");
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("-v")]
|
||||
[InlineData("--version")]
|
||||
public void Should_Execute_Branch_VersionCommand_Not_Output_Application_Version_To_The_Console(string versionOption)
|
||||
{
|
||||
// Given
|
||||
var fixture = new CommandAppTester();
|
||||
fixture.Configure(configurator =>
|
||||
{
|
||||
configurator.SetApplicationVersion("1.0");
|
||||
configurator.AddBranch<VersionSettings>("branch", branch =>
|
||||
{
|
||||
branch.AddCommand<Spectre.Console.Tests.Data.VersionCommand>("hello");
|
||||
});
|
||||
});
|
||||
|
||||
// When
|
||||
var result = fixture.Run("branch", "hello", versionOption, "X.Y.Z");
|
||||
|
||||
// Then
|
||||
result.Output.ShouldBe("VersionCommand ran, Version: X.Y.Z");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user