public void Should_Detect_Required_VariableLists() { var optionSet = new RequiredValuesOptionSet(); var n = optionSet.AddRequiredVariableList <string>("n", ""); var a = optionSet.AddRequiredVariableList <int>("a", ""); var m = optionSet.AddRequiredVariableList <string>("m", ""); //TODO: Screaming for an NUnit-test-case-coverage. var args = "-n FindThisString -n:Findit2 -n:Findit3 -a2 -a3 -a5565 -a:23".Split(' '); optionSet.Parse(args); Action <IEnumerable <string> > verifyN = x => { // ReSharper disable PossibleMultipleEnumeration Assert.AreEqual(3, x.Count()); Assert.IsTrue(x.Contains("FindThisString")); Assert.IsTrue(x.Contains("Findit2")); Assert.IsTrue(x.Contains("Findit3")); // ReSharper restore PossibleMultipleEnumeration }; Action <IEnumerable <int> > verifyA = x => { // ReSharper disable PossibleMultipleEnumeration Assert.AreEqual(4, x.Count()); Assert.IsTrue(x.Contains(2)); Assert.IsTrue(x.Contains(3)); Assert.IsTrue(x.Contains(5565)); Assert.IsTrue(x.Contains(23)); // ReSharper restore PossibleMultipleEnumeration }; Action <IEnumerable <string> > verifyM = x => { // ReSharper disable PossibleMultipleEnumeration Assert.AreEqual(0, x.Count()); Assert.AreEqual(1, optionSet.GetMissingVariables().Count()); // ReSharper restore PossibleMultipleEnumeration }; verifyA(a); verifyA(a.Values); verifyN(n); verifyN(n.Values); verifyM(m); verifyM(m.Values); }
public void Should_Respond_To_Missing_Required_VariableLists_With_Show_Help() { var optionSet = new RequiredValuesOptionSet(); //Populate the OptionSet with some nominal options. var n = optionSet.AddRequiredVariableList <string>("n", ""); var a = optionSet.AddRequiredVariableList <int>("a", ""); var m = optionSet.AddRequiredVariableList <string>("m", ""); 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:")); } }