public void TwoStringsConstructor_OptionalMultiValuedIsFalse() { var a = new AzmiArgument("some-name", "some-description"); var isMultiValued = a.multiValued; Assert.False(isMultiValued); }
public void ThreeArgsConstructor_AcceptsMultiValued() { var a = new AzmiArgument("some-name", 'u', "some-description", multiValued: true); var isMultiValued = a.multiValued; Assert.True(isMultiValued); }
public void SimplestConstructor_DefinesSingleValued() { var a = new AzmiArgument("some-name"); var isMultiValued = a.multiValued; Assert.False(isMultiValued); }
internal static Option ToOption(this AzmiArgument option) { return(new Option(option.OptionNames()) { Argument = option.OptionArgument(), Description = option.OptionDescription(), Required = option.required }); }
internal static string OptionDescription(this AzmiArgument option) { return ((option.required ? "Required. " : "Optional. " ) + option.description); }
internal static String[] OptionNames(this AzmiArgument option) { if (option.alias != null) { return(new String[] { $"--{option.name}", $"-{option.alias}" }); } else { return(new String[] { $"--{option.name}" }); } }
internal static Argument OptionArgument(this AzmiArgument option) { switch (option.type) { case ArgType.str: return(new Argument <string>("string")); case ArgType.flag: return(new Argument <bool>("bool")); case ArgType.url: return(new Argument <string>("url")); default: throw new ArgumentException($"Unsupported option type: {option.type}"); } }
internal static Option ToOption(this AzmiArgument option) { var opt = new Option(option.OptionNames()) { Argument = option.OptionArgument(), Description = option.OptionDescription(), Required = option.required }; if (option.multiValued) { opt.Argument.Arity = ArgumentArity.OneOrMore; // TODO: Should optional arguments have ZeroOrMore? } return(opt); }
public void OptionArgument_String() { var a = new AzmiArgument("some-name", ArgType.str); Assert.Equal("string", a.OptionArgument().Name); }
public void OptionNames_WithAlias() { var a = new AzmiArgument("some-name", alias: 's', "some-descrtiption"); Assert.Equal(2, a.OptionNames().Length); }
public void OptionNames_NoAlias() { var a = new AzmiArgument("some-name", alias: null, "some-descrtiption"); Assert.Single(a.OptionNames()); }
public void ToOption_Required(bool required) { var a = new AzmiArgument("some-name", required: required); Assert.Equal(required, a.ToOption().Required); }
public void ToOption_Description(bool required, string prefix) { var a = new AzmiArgument("some-name", "some-description", required: required); Assert.Equal($"{prefix} some-description", a.ToOption().Description); }
public void TwoStringsConstructor_OptionalType() { var a = new AzmiArgument("some-name", "some-description", ArgType.flag); Assert.Equal(ArgType.flag, a.type); }
public void ThreeArgsConstructor_DefinesOptionalArgument() { var a = new AzmiArgument("some-name", 'u', "some-description"); Assert.False(a.required); }
public void TwoStringsConstructor_OptionalRequired() { var a = new AzmiArgument("some-name", "some-description", required: true); Assert.True(a.required); }
public void OptionDescription_Required() { var a = new AzmiArgument("some-name", "some-description", required: true); Assert.Equal("Required. some-description", a.OptionDescription()); }
public void ToOption_ProperType() { var a = new AzmiArgument("some-name"); Assert.IsType <Option>(a.ToOption()); }
public void OptionArgument_Bool() { var a = new AzmiArgument("some-name", ArgType.flag); Assert.Equal("bool", a.OptionArgument().Name); }
public void SimplestConstructor_DefinesOptionalArgument() { var a = new AzmiArgument("some-name"); Assert.False(a.required); }
public void SimplestConstructor_DefinesString() { var a = new AzmiArgument("some-name"); Assert.Equal(ArgType.str, a.type); }
public void SimplestConstructor_ProperName() { var a = new AzmiArgument("some-name"); Assert.Equal("some-name", a.name); }
public void SimplestConstructor_ProperAlias() { var a = new AzmiArgument("some-name"); Assert.Equal('s', a.alias); }
public void OptionArgument_Url() { var a = new AzmiArgument("some-name", ArgType.url); Assert.Equal("url", a.OptionArgument().Name); }
public void TwoStringsConstructor_ProperAlias() { var a = new AzmiArgument("some-name", "some-description"); Assert.Equal('s', a.alias); }
public void OptionDescription_Optional() { var a = new AzmiArgument("some-name", "some-description", required: false); Assert.Equal("Optional. some-description", a.OptionDescription()); }
public void TwoStringsConstructor_ProperDescription() { var a = new AzmiArgument("some-name", "some-description"); Assert.Equal("some-description", a.description); }
public void ToOption_Argument(ArgType type, string name) { var a = new AzmiArgument("some-name", type); Assert.Equal(name, a.ToOption().Argument.Name); }
public void TwoStringsConstructor_DefinesString() { var a = new AzmiArgument("some-name", "some-description"); Assert.Equal(ArgType.str, a.type); }