Пример #1
0
        public void SetValue_Valid()
        {
            var sut = new EnumArgument <TestEnum>(NAME, DESC, true);

            Assert.IsTrue(sut.IsRequired);
            sut.SetValue(THREE.ToString());
            Assert.AreEqual(THREE, sut.Value);
        }
Пример #2
0
        public void GetUsage_EnumToDescription()
        {
            var sut = new EnumArgument <TestEnum>(NAME, DESC, true);

            sut.EnumToDescription = (e) => $"{e.ToString()} description";
            var expected = "  /name      description\r\n\r\n               ONE - ONE description\r\n               TWO - TWO description\r\n               THREE - THREE description\r\n               FOUR - FOUR description\r\n";
            var result   = sut.GetUsage();

            Assert.AreEqual(expected, result);
        }
Пример #3
0
        public void Constructor_WithDefaultValues()
        {
            var sut = new EnumArgument <TestEnum>(NAME, DESC, THREE);

            Assert.AreEqual(THREE, sut.DefaultValue);
            Assert.AreEqual(DESC, sut.Description);
            Assert.IsFalse(sut.IsRequired);
            Assert.AreEqual(NAME, sut.Name);
            Assert.AreEqual("[/name <TestEnum>]", sut.Syntax);
            Assert.AreEqual(typeof(TestEnum).Name, sut.Type);
            Assert.AreEqual(THREE, sut.Value);
        }
Пример #4
0
 public void SetValue_Invalid()
 {
     try
     {
         var sut = new EnumArgument <TestEnum>(NAME, DESC, true);
         Assert.IsTrue(sut.IsRequired);
         sut.SetValue("foo");
     }
     catch (Exception ex)
     {
         Assert.AreEqual("Argument 'name' is invalid", ex.Message);
         throw;
     }
 }
Пример #5
0
        public void MissingFlag()
        {
            var valueArg = new EnumArgument<MyFlags>("MyFlags", "") { IsOptional = false };
            var argument = new SwitchValueArgument<MyFlags>("Flags", valueArg, "Description", null, new[] { 'f' })
            {
                Category = "Category",
                IsOptional = true,
            };

            int i = 0;
            string[] args = { "-f", };

            Assert.Throws<MissingArgumentException>(() => argument.Parse(args, ref i));
        }
Пример #6
0
        public void ParseEnumeration()
        {
            EnumArgument<MyEnum> argument = new EnumArgument<MyEnum>("name", "");

            Assert.AreEqual("name", argument.Name);
            Assert.IsFalse(argument.AllowMultiple);
            Assert.IsFalse(string.IsNullOrEmpty(argument.GetSyntax()));
            Assert.IsFalse(string.IsNullOrEmpty(argument.GetHelp()));

            int i = 1;
            string[] args = { "other", "value2", "other" };
            var result = (ArgumentResult<MyEnum>)argument.Parse(args, ref i);
            Assert.AreEqual(2, i);
            Assert.IsNotNull(result.Values);
            Assert.AreEqual(1, result.Values.Count);
            Assert.AreEqual(MyEnum.Value2, result.Values[0]);
        }
        public void MissingFlag()
        {
            var valueArg = new EnumArgument <MyFlags>("MyFlags", "")
            {
                IsOptional = false
            };
            var argument = new SwitchValueArgument <MyFlags>("Flags", valueArg, "Description", null, new[] { 'f' })
            {
                Category   = "Category",
                IsOptional = true,
            };

            int i = 0;

            string[] args = { "-f", };

            Assert.Throws <MissingArgumentException>(() => argument.Parse(args, ref i));
        }
Пример #8
0
        public void ParseFlags1()
        {
            EnumArgument <MyFlags> argument = new EnumArgument <MyFlags>("MyFlags", "");

            Assert.AreEqual("MyFlags", argument.Name);
            Assert.IsTrue(argument.AllowMultiple);

            int i = 1;

            string[] args   = { "other", "Flag1", "flag3", };
            var      result = (ArgumentResult <MyFlags>)argument.Parse(args, ref i);

            Assert.AreEqual(3, i);
            Assert.IsNotNull(result.Values);
            Assert.AreEqual(2, result.Values.Count);
            Assert.AreEqual(MyFlags.Flag1, result.Values[0]);
            Assert.AreEqual(MyFlags.Flag3, result.Values[1]);
        }
Пример #9
0
        public void ParseFlags()
        {
            var valueArg = new EnumArgument<MyFlags>("MyFlags", "") { IsOptional = true };
            var argument = new SwitchValueArgument<MyFlags>("Flags", valueArg, "Description", null, new[] { 'f' })
            {
                Category = "Category",
                IsOptional = true,
            };

            int i = 0;
            string[] args = { "--flags:flag1", "flag3", };
            var result = (ArgumentResult<MyFlags>)argument.Parse(args, ref i);
            Assert.AreEqual(2, i);
            Assert.IsNotNull(result.Values);
            Assert.AreEqual(2, result.Values.Count);
            Assert.AreEqual(MyFlags.Flag1, result.Values[0]);
            Assert.AreEqual(MyFlags.Flag3, result.Values[1]);
        }
Пример #10
0
        public void DuplicateValue()
        {
            EnumArgument <MyEnum> argument = new EnumArgument <MyEnum>("name", "");

            Assert.AreEqual("name", argument.Name);
            Assert.IsFalse(argument.AllowMultiple);
            Assert.IsFalse(string.IsNullOrEmpty(argument.GetSyntax()));
            Assert.IsFalse(string.IsNullOrEmpty(argument.GetHelp()));

            int i = 1;

            string[] args   = { "other", "value2", "value1", "other" };
            var      result = (ArgumentResult <MyEnum>)argument.Parse(args, ref i);

            Assert.AreEqual(2, i);
            Assert.IsNotNull(result.Values);
            Assert.AreEqual(1, result.Values.Count);
            Assert.AreEqual(MyEnum.Value2, result.Values[0]);
        }
        public void ParseOptionalFlags()
        {
            var valueArg = new EnumArgument <MyFlags>("MyFlags", "")
            {
                IsOptional = true
            };
            var argument = new SwitchValueArgument <MyFlags>("Flags", valueArg, "Description", null, new[] { 'f' })
            {
                Category   = "Category",
                IsOptional = true,
            };

            int i = 0;

            string[] args   = { "-f", };
            var      result = (ArgumentResult <MyFlags>)argument.Parse(args, ref i);

            Assert.AreEqual(1, i);
            Assert.IsTrue(result.Values == null || result.Values.Count == 0);
        }
        public void ParseFlags()
        {
            var valueArg = new EnumArgument <MyFlags>("MyFlags", "")
            {
                IsOptional = true
            };
            var argument = new SwitchValueArgument <MyFlags>("Flags", valueArg, "Description", null, new[] { 'f' })
            {
                Category   = "Category",
                IsOptional = true,
            };

            int i = 0;

            string[] args   = { "--flags:flag1", "flag3", };
            var      result = (ArgumentResult <MyFlags>)argument.Parse(args, ref i);

            Assert.AreEqual(2, i);
            Assert.IsNotNull(result.Values);
            Assert.AreEqual(2, result.Values.Count);
            Assert.AreEqual(MyFlags.Flag1, result.Values[0]);
            Assert.AreEqual(MyFlags.Flag3, result.Values[1]);
        }
Пример #13
0
        public void GetUsage()
        {
            var sut = new EnumArgument <TestEnum>(NAME, DESC, true);

            Assert.AreEqual("  /name      description\r\n\r\n               ONE\r\n               TWO\r\n               THREE\r\n               FOUR\r\n", sut.GetUsage());
        }
Пример #14
0
        public void ParseOptionalFlags()
        {
            var valueArg = new EnumArgument<MyFlags>("MyFlags", "") { IsOptional = true };
            var argument = new SwitchValueArgument<MyFlags>("Flags", valueArg, "Description", null, new[] { 'f' })
            {
                Category = "Category",
                IsOptional = true,
            };

            int i = 0;
            string[] args = { "-f", };
            var result = (ArgumentResult<MyFlags>)argument.Parse(args, ref i);
            Assert.AreEqual(1, i);
            Assert.IsTrue(result.Values == null || result.Values.Count == 0);
        }
Пример #15
0
        public void ParseFlags1()
        {
            EnumArgument<MyFlags> argument = new EnumArgument<MyFlags>("MyFlags", "");
            Assert.AreEqual("MyFlags", argument.Name);
            Assert.IsTrue(argument.AllowMultiple);

            int i = 1;
            string[] args = { "other", "Flag1", "flag3", };
            var result = (ArgumentResult<MyFlags>)argument.Parse(args, ref i);
            Assert.AreEqual(3, i);
            Assert.IsNotNull(result.Values);
            Assert.AreEqual(2, result.Values.Count);
            Assert.AreEqual(MyFlags.Flag1, result.Values[0]);
            Assert.AreEqual(MyFlags.Flag3, result.Values[1]);
        }