Adding additional tests for property binding with value types

This commit is contained in:
Phil Scott 2021-06-07 23:26:33 -04:00 committed by Patrik Svensson
parent ebb1076dd0
commit 0bf97cb666
2 changed files with 12 additions and 1 deletions

View File

@ -15,6 +15,12 @@ namespace Spectre.Console.Tests.Data
{
[CommandArgument(0, "[NAMES]")]
public string[] Names { get; set; } = Array.Empty<string>();
[CommandOption("-c")]
public int Count { get; set; } = 1;
[CommandOption("-v")]
public int Value { get; set; } = 0;
}
public sealed class OptionalArgumentWithDefaultValueAndTypeConverterSettings : CommandSettings

View File

@ -262,6 +262,9 @@ namespace Spectre.Console.Tests.Unit.Cli
result.ExitCode.ShouldBe(0);
result.Settings
.ShouldBeOfType<OptionalArgumentWithPropertyInitializerSettings>()
.And(settings => settings.Count.ShouldBe(1))
.And(settings => settings.Value.ShouldBe(0))
.And(settings => settings.Names.ShouldNotBeNull())
.And(settings => settings.Names.ShouldNotBeNull())
.And(settings => settings.Names.ShouldBeEmpty());
}
@ -278,12 +281,14 @@ namespace Spectre.Console.Tests.Unit.Cli
});
// When
var result = app.Run("ABBA", "Herreys");
var result = app.Run("-c", "0", "-v", "50", "ABBA", "Herreys");
// Then
result.ExitCode.ShouldBe(0);
result.Settings
.ShouldBeOfType<OptionalArgumentWithPropertyInitializerSettings>()
.And(settings => settings.Count.ShouldBe(0))
.And(settings => settings.Value.ShouldBe(50))
.And(settings => settings.Names.ShouldContain("ABBA"))
.And(settings => settings.Names.ShouldContain("Herreys"));
}