mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-06-16 12:13: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
|
// Given
|
||||||
var fixture = new CommandAppTester();
|
var fixture = new CommandAppTester();
|
||||||
fixture.Configure(configurator =>
|
|
||||||
{
|
|
||||||
configurator.AddCommand<EmptyCommand>("empty");
|
|
||||||
});
|
|
||||||
|
|
||||||
// When
|
// When
|
||||||
var result = fixture.Run(versionOption);
|
var result = fixture.Run(versionOption);
|
||||||
@ -56,6 +52,26 @@ public sealed partial class CommandAppTests
|
|||||||
result.Output.ShouldStartWith($"Error: Unexpected option '{versionOption.Replace("-", "")}'");
|
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]
|
[Theory]
|
||||||
[InlineData("-v")]
|
[InlineData("-v")]
|
||||||
[InlineData("--version")]
|
[InlineData("--version")]
|
||||||
@ -77,26 +93,6 @@ public sealed partial class CommandAppTests
|
|||||||
result.Context.ShouldHaveRemainingArgument(versionOption, new[] { (string)null });
|
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]
|
[Theory]
|
||||||
[InlineData("-v")]
|
[InlineData("-v")]
|
||||||
[InlineData("--version")]
|
[InlineData("--version")]
|
||||||
@ -156,16 +152,106 @@ public sealed partial class CommandAppTests
|
|||||||
configurator.SetApplicationVersion("1.0");
|
configurator.SetApplicationVersion("1.0");
|
||||||
configurator.AddBranch<EmptyCommandSettings>("branch", branch =>
|
configurator.AddBranch<EmptyCommandSettings>("branch", branch =>
|
||||||
{
|
{
|
||||||
branch.AddCommand<EmptyCommand>("hello");
|
branch.AddCommand<EmptyCommand>("empty");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// When
|
// When
|
||||||
var result = fixture.Run("branch", "hello", versionOption);
|
var result = fixture.Run("branch", "empty", versionOption);
|
||||||
|
|
||||||
// Then
|
// Then
|
||||||
result.Output.ShouldBe(string.Empty);
|
result.Output.ShouldBe(string.Empty);
|
||||||
result.Context.ShouldHaveRemainingArgument(versionOption, new[] { (string)null });
|
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