public void TestClassifyArgument()
        {
            var parser = new CommandLineParser(typeof(TestMixCommand));

            {
                var classified = parser.ClassifyArgument("--keyword-argument");
                Assert.AreEqual(CommandLineParser.ArgumentType.Keyword, classified.ArgumentType);
                Assert.AreEqual("keywordArgument", classified.ParameterInfo.ParameterInfo.Name);
            }

            {
                var classified = parser.ClassifyArgument("--flag-argument");
                Assert.AreEqual(CommandLineParser.ArgumentType.Flag, classified.ArgumentType);
                Assert.AreEqual("flagArgument", classified.ParameterInfo.ParameterInfo.Name);
            }

            {
                var classified = parser.ClassifyArgument("stringValue");
                Assert.AreEqual(CommandLineParser.ArgumentType.Value, classified.ArgumentType);
                Assert.AreEqual("stringValue", classified.Value);
            }

            AssertUtility.Throws<UnknownOptionException>(() => {
                var classified = parser.ClassifyArgument("--unknown-option");
            });
        }
        public void TestParseClassParameter()
        {
            var parser = new CommandLineParser(typeof(ClassParameterCommand));

            var store = parser.ParseV("3");
            Assert.AreEqual(0, store.RestArguments.Length);
        }