Beispiel #1
0
            public void TwoStringsConstructor_OptionalMultiValuedIsFalse()
            {
                var a             = new AzmiArgument("some-name", "some-description");
                var isMultiValued = a.multiValued;

                Assert.False(isMultiValued);
            }
Beispiel #2
0
            public void ThreeArgsConstructor_AcceptsMultiValued()
            {
                var a             = new AzmiArgument("some-name", 'u', "some-description", multiValued: true);
                var isMultiValued = a.multiValued;

                Assert.True(isMultiValued);
            }
Beispiel #3
0
            public void SimplestConstructor_DefinesSingleValued()
            {
                var a             = new AzmiArgument("some-name");
                var isMultiValued = a.multiValued;

                Assert.False(isMultiValued);
            }
Beispiel #4
0
 internal static Option ToOption(this AzmiArgument option)
 {
     return(new Option(option.OptionNames())
     {
         Argument = option.OptionArgument(),
         Description = option.OptionDescription(),
         Required = option.required
     });
 }
Beispiel #5
0
 internal static string OptionDescription(this AzmiArgument option)
 {
     return
         ((option.required
             ? "Required. "
             : "Optional. "
           )
          + option.description);
 }
Beispiel #6
0
 internal static String[] OptionNames(this AzmiArgument option)
 {
     if (option.alias != null)
     {
         return(new String[] { $"--{option.name}", $"-{option.alias}" });
     }
     else
     {
         return(new String[] { $"--{option.name}" });
     }
 }
Beispiel #7
0
        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}");
            }
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
            public void OptionArgument_String()
            {
                var a = new AzmiArgument("some-name", ArgType.str);

                Assert.Equal("string", a.OptionArgument().Name);
            }
Beispiel #10
0
            public void OptionNames_WithAlias()
            {
                var a = new AzmiArgument("some-name", alias: 's', "some-descrtiption");

                Assert.Equal(2, a.OptionNames().Length);
            }
Beispiel #11
0
            public void OptionNames_NoAlias()
            {
                var a = new AzmiArgument("some-name", alias: null, "some-descrtiption");

                Assert.Single(a.OptionNames());
            }
Beispiel #12
0
            public void ToOption_Required(bool required)
            {
                var a = new AzmiArgument("some-name", required: required);

                Assert.Equal(required, a.ToOption().Required);
            }
Beispiel #13
0
            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);
            }
Beispiel #14
0
            public void TwoStringsConstructor_OptionalType()
            {
                var a = new AzmiArgument("some-name", "some-description", ArgType.flag);

                Assert.Equal(ArgType.flag, a.type);
            }
Beispiel #15
0
            public void ThreeArgsConstructor_DefinesOptionalArgument()
            {
                var a = new AzmiArgument("some-name", 'u', "some-description");

                Assert.False(a.required);
            }
Beispiel #16
0
            public void TwoStringsConstructor_OptionalRequired()
            {
                var a = new AzmiArgument("some-name", "some-description", required: true);

                Assert.True(a.required);
            }
Beispiel #17
0
            public void OptionDescription_Required()
            {
                var a = new AzmiArgument("some-name", "some-description", required: true);

                Assert.Equal("Required. some-description", a.OptionDescription());
            }
Beispiel #18
0
            public void ToOption_ProperType()
            {
                var a = new AzmiArgument("some-name");

                Assert.IsType <Option>(a.ToOption());
            }
Beispiel #19
0
            public void OptionArgument_Bool()
            {
                var a = new AzmiArgument("some-name", ArgType.flag);

                Assert.Equal("bool", a.OptionArgument().Name);
            }
Beispiel #20
0
            public void SimplestConstructor_DefinesOptionalArgument()
            {
                var a = new AzmiArgument("some-name");

                Assert.False(a.required);
            }
Beispiel #21
0
            public void SimplestConstructor_DefinesString()
            {
                var a = new AzmiArgument("some-name");

                Assert.Equal(ArgType.str, a.type);
            }
Beispiel #22
0
            public void SimplestConstructor_ProperName()
            {
                var a = new AzmiArgument("some-name");

                Assert.Equal("some-name", a.name);
            }
Beispiel #23
0
            public void SimplestConstructor_ProperAlias()
            {
                var a = new AzmiArgument("some-name");

                Assert.Equal('s', a.alias);
            }
Beispiel #24
0
            public void OptionArgument_Url()
            {
                var a = new AzmiArgument("some-name", ArgType.url);

                Assert.Equal("url", a.OptionArgument().Name);
            }
Beispiel #25
0
            public void TwoStringsConstructor_ProperAlias()
            {
                var a = new AzmiArgument("some-name", "some-description");

                Assert.Equal('s', a.alias);
            }
Beispiel #26
0
            public void OptionDescription_Optional()
            {
                var a = new AzmiArgument("some-name", "some-description", required: false);

                Assert.Equal("Optional. some-description", a.OptionDescription());
            }
Beispiel #27
0
            public void TwoStringsConstructor_ProperDescription()
            {
                var a = new AzmiArgument("some-name", "some-description");

                Assert.Equal("some-description", a.description);
            }
Beispiel #28
0
            public void ToOption_Argument(ArgType type, string name)
            {
                var a = new AzmiArgument("some-name", type);

                Assert.Equal(name, a.ToOption().Argument.Name);
            }
Beispiel #29
0
            public void TwoStringsConstructor_DefinesString()
            {
                var a = new AzmiArgument("some-name", "some-description");

                Assert.Equal(ArgType.str, a.type);
            }