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); }
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); }
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); }
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; } }
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)); }
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)); }
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]); }
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]); }
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]); }
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()); }
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 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]); }