public void TestBasicParsing() { ArgumentsBasicTarget target = new ArgumentsBasicTarget(); CommandLineParser parser = new CommandLineParser(typeof(ArgumentsBasic), null, CommandLineParserFlags.Default); string[] args = new string[] { "-arg1:valueForArg1", "-a2:One", "-arg2:Two", "-arg3:Alpha", "-arg3:Beta", "-arg4+", "-arg5:10", "-arg7:a=1;b=2", "-arg8:blah.txt", "-arg9:blah.txt", "something.txt" }; parser.ParseAndSetTarget(args, target); Assert.AreEqual(target.Arg1, "valueForArg1"); CollectionAssert.AreEqual(new string[] { "One", "Two" }, target.Arg2); CollectionAssert.AreEqual(new string[] { "Alpha", "Beta" }, target.Arg3); Assert.AreEqual(true, target.Arg4); Assert.AreEqual(10, target.Arg5); Assert.AreEqual(false, target.Arg6); CollectionAssert.AreEquivalent(new KeyValuePair<string, string>[] { new KeyValuePair<string, string>("a", "1"), new KeyValuePair<string, string>("b", "2") }, target.Arg7.Parameters); Assert.AreEqual("blah.txt", target.Arg8.ToString()); Assert.AreEqual("blah.txt", target.Arg9.ToString()); Assert.AreEqual(11, parser.ArgumentCount); Assert.AreEqual(" -arg1:valueForArg1 -arg2:One -arg2:Two -arg3:Alpha -arg3:Beta -arg4 -arg5:10 -arg7:a=1;b=2 -arg8:blah.txt -arg9:blah.txt something.txt", parser.Arguments); }
public void TestGetTarget() { ArgumentsBasicTarget target = new ArgumentsBasicTarget(); CommandLineParser parser = new CommandLineParser(typeof(ArgumentsBasic), null, CommandLineParserFlags.Default); target.Arg1 = "valueForArg1"; target.Arg2 = new string[] { "One", "Two" }; List<string> arg3 = new List<string>(); arg3.Add("Alpha"); arg3.Add("Beta"); target.Arg3 = arg3; target.Arg4 = true; target.Arg5 = 10; target.Arg6 = false; CustomType arg7 = new CustomType(); arg7.Parameters.Add("a", "1"); arg7.Parameters.Add("b", "2"); target.Arg7 = arg7; target.Arg8 = new FileInfo("blah.txt"); target.Arg9 = new ParsedPath("blah.txt", PathType.File); target.Default = "something.txt"; parser.GetTargetArguments(target); // NOTE: Not setting arguments #10 and #11 Assert.AreEqual(13, parser.ArgumentCount); Assert.AreEqual(" -arg1:valueForArg1 -arg2:One -arg2:Two -arg3:Alpha -arg3:Beta -arg4 -arg5:10 -arg7:a=1;b=2 -arg8:blah.txt -arg9:blah.txt -arg11:0 something.txt", parser.Arguments); }
public void TestArgumentNoDescription() { ArgumentsBasicTarget target = new ArgumentsBasicTarget(); // The target object is not derived from the given argument specification type... new CommandLineParser(typeof(ArgumentsNoDescription)).ParseAndSetTarget(null, target); }
public void TestNullable() { ArgumentsBasicTarget target = new ArgumentsBasicTarget(); CommandLineParser parser = new CommandLineParser(typeof(ArgumentsBasic), null, CommandLineParserFlags.Default); string[] args = new string[] { "-arg12:10" }; parser.ParseAndSetTarget(args, target); Assert.AreEqual(10, target.Arg12); }