public void Should_Detect_Required_Variables() { var optionSet = new RequiredValuesOptionSet(); var name = optionSet.AddRequiredVariable <string>("n", ""); var age = optionSet.AddRequiredVariable <int>("a", ""); var age2 = optionSet.AddRequiredVariable <int>("b", ""); var age3 = optionSet.AddRequiredVariable <int>("c", ""); //TODO: Screaming for NUnit-test-case-coverage. var args = "-n FindThisString".Split(' '); optionSet.Parse(args); /* TODO: Might could (should) also verify that each of the missing ones, * as well as found ones, are either there are not there. */ Assert.AreEqual(3, optionSet.GetMissingVariables().Count()); Assert.AreEqual("FindThisString", name); }
public void Should_Respond_To_Missing_Required_Variables_With_Show_Help() { var optionSet = new RequiredValuesOptionSet(); //Populate the OptionSet with some nominal options. var name = optionSet.AddRequiredVariable <string>("n", ""); var age = optionSet.AddRequiredVariable <int>("a", ""); var age2 = optionSet.AddRequiredVariable <int>("b", ""); var age3 = optionSet.AddRequiredVariable <int>("c", ""); const string ConsoleName = "Test"; var cm = new ConsoleManager(ConsoleName, optionSet); using (var writer = new StringWriter()) { var parsed = cm.TryParseOrShowHelp(writer, new string[] {}); Assert.IsFalse(parsed); Assert.IsTrue(writer.ToString().Contains(ConsoleName + ": error parsing arguments:")); } }
public void Show_Show_Help_For_Remaining_Args() { var optionSet = new RequiredValuesOptionSet(); //This one can be a required-variable, no problem, but that's it. var name = optionSet.AddRequiredVariable <string>("n"); const string ConsoleName = "Test"; var cm = new ConsoleManager(ConsoleName, optionSet); //Then we should have some remaining args. var args = "-n ThisIsName UnknownOptionCausesErrorShowHelp".Split(' '); using (var writer = new StringWriter()) { var parsed = cm.TryParseOrShowHelp(writer, args); Assert.IsFalse(parsed); // Test contains Visual Studio error message Assert.IsTrue(writer.ToString().Contains(ConsoleName + ": error parsing arguments:")); } }