public void TestHelpParameter()
        {
            IParameterParser processor;
              string[] commandline = {"--help"};
              ParsedParameters output;

              processor = new UnixParameters();
              processor.RegisterParameter<string>("run-scheduled-task",
                                          ParameterType.ValueRequired,
                                          new string[] { "run-scheduled-task" },
                                          new string[] { "s" });
              processor.RegisterParameter<string>("verbose",
                                          ParameterType.NoValue,
                                          new string[] { "verbose" },
                                          new string[] { "v" });
              processor.RegisterParameter<string>("quiet",
                                          ParameterType.NoValue,
                                          new string[] { "quiet" },
                                          new string[] { "q" });
              processor.RegisterParameter<string>("help",
                                          ParameterType.NoValue,
                                          new string[] { "help" },
                                          new string[] { "h" });

              output = processor.Parse(commandline);

              Assert.IsTrue(output.HasParameter("help"), "Help key is present");
        }
        public void TestParametersEnumeration()
        {
            IParameterParser processor = new UnixParameters();
              processor.RegisterParameters(typeof(ParametersEnumeration));
              ParsedParameters output;

              Assert.AreEqual(5, processor.ParameterCount, "Correct count of parameters");
              Assert.IsInstanceOfType(typeof(Parameter<int>),
                              processor[ParametersEnumeration.Count],
                              "Count parameter is correct generic type.");

              output = processor.Parse(new string[] { "-A",
                                              "Do something interesting",
                                              "/home/craig/foo/bar",
                                              "--help",
                                              "--explode",
                                              "--count",
                                              "78" });

              Assert.IsTrue(output.HasParameter(ParametersEnumeration.Action), "Action parameter is present.");
              Assert.AreEqual("Do something interesting",
                      output.GetValue<string>(ParametersEnumeration.Action),
                      "Action parameter has correct value.");

              Assert.IsTrue(output.HasParameter(ParametersEnumeration.Help), "Help parameter is present.");
              Assert.IsFalse(output.HasParameter(ParametersEnumeration.Verbose), "Verbose parameter is not present.");

              Assert.AreEqual(1, output.GetRemainingArguments().Count, "Correct count of remaining args");
              Assert.AreEqual("/home/craig/foo/bar", output.GetRemainingArguments()[0], "Correct remaining arg");

              Assert.IsTrue(output.HasParameter(ParametersEnumeration.Explode), "Explode parameter is present.");

              Assert.IsTrue(output.HasParameter(ParametersEnumeration.Count), "Count parameter is present.");
              Assert.AreEqual(78,
                      output.GetValue<int>(ParametersEnumeration.Count),
                      "Count parameter has correct value.");
        }