mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-06-19 21:38:16 +08:00
Add possibility to set description and/or data for the default command (#1091)
This commit is contained in:
@ -845,30 +845,6 @@ public sealed partial class CommandAppTests
|
||||
result.Context.ShouldHaveRemainingArgument("foo", values: new[] { (string)null });
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Should_Be_Able_To_Set_The_Default_Command()
|
||||
{
|
||||
// Given
|
||||
var app = new CommandAppTester();
|
||||
app.SetDefaultCommand<DogCommand>();
|
||||
|
||||
// When
|
||||
var result = app.Run(new[]
|
||||
{
|
||||
"4", "12", "--good-boy", "--name", "Rufus",
|
||||
});
|
||||
|
||||
// Then
|
||||
result.ExitCode.ShouldBe(0);
|
||||
result.Settings.ShouldBeOfType<DogSettings>().And(dog =>
|
||||
{
|
||||
dog.Legs.ShouldBe(4);
|
||||
dog.Age.ShouldBe(12);
|
||||
dog.GoodBoy.ShouldBe(true);
|
||||
dog.Name.ShouldBe("Rufus");
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Should_Set_Command_Name_In_Context()
|
||||
{
|
||||
@ -917,6 +893,66 @@ public sealed partial class CommandAppTests
|
||||
// Then
|
||||
result.Context.ShouldNotBeNull();
|
||||
result.Context.Data.ShouldBe(123);
|
||||
}
|
||||
|
||||
public sealed class Default_Command
|
||||
{
|
||||
[Fact]
|
||||
public void Should_Be_Able_To_Set_The_Default_Command()
|
||||
{
|
||||
// Given
|
||||
var app = new CommandAppTester();
|
||||
app.SetDefaultCommand<DogCommand>();
|
||||
|
||||
// When
|
||||
var result = app.Run(new[]
|
||||
{
|
||||
"4", "12", "--good-boy", "--name", "Rufus",
|
||||
});
|
||||
|
||||
// Then
|
||||
result.ExitCode.ShouldBe(0);
|
||||
result.Settings.ShouldBeOfType<DogSettings>().And(dog =>
|
||||
{
|
||||
dog.Legs.ShouldBe(4);
|
||||
dog.Age.ShouldBe(12);
|
||||
dog.GoodBoy.ShouldBe(true);
|
||||
dog.Name.ShouldBe("Rufus");
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Should_Set_The_Default_Command_Description_Data_CommandApp()
|
||||
{
|
||||
// Given
|
||||
var app = new CommandApp();
|
||||
app.SetDefaultCommand<DogCommand>()
|
||||
.WithDescription("The default command")
|
||||
.WithData(new string[] { "foo", "bar" });
|
||||
|
||||
// When
|
||||
|
||||
// Then
|
||||
app.GetConfigurator().DefaultCommand.ShouldNotBeNull();
|
||||
app.GetConfigurator().DefaultCommand.Description.ShouldBe("The default command");
|
||||
app.GetConfigurator().DefaultCommand.Data.ShouldBe(new string[] { "foo", "bar" });
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Should_Set_The_Default_Command_Description_Data_CommandAppOfT()
|
||||
{
|
||||
// Given
|
||||
var app = new CommandApp<DogCommand>()
|
||||
.WithDescription("The default command")
|
||||
.WithData(new string[] { "foo", "bar" });
|
||||
|
||||
// When
|
||||
|
||||
// Then
|
||||
app.GetConfigurator().DefaultCommand.ShouldNotBeNull();
|
||||
app.GetConfigurator().DefaultCommand.Description.ShouldBe("The default command");
|
||||
app.GetConfigurator().DefaultCommand.Data.ShouldBe(new string[] { "foo", "bar" });
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class Delegate_Commands
|
||||
@ -930,7 +966,7 @@ public sealed partial class CommandAppTests
|
||||
|
||||
var app = new CommandApp();
|
||||
app.Configure(config =>
|
||||
{
|
||||
{
|
||||
config.PropagateExceptions();
|
||||
config.AddDelegate<DogSettings>(
|
||||
"foo", (context, settings) =>
|
||||
|
Reference in New Issue
Block a user