public void Example_Documentation() { var swA = new CommandSwitch("AAA", 'a'); swA.AddParameter(Arity.One, "a-param"); swA.SetHelp("Help for A."); var swB = new CommandSwitch("be"); swB.AddParameter(Arity.NoneOrOne, "b-param"); swB.SetHelp("Help for B."); var parser = new Parser(); parser.AddSwitch(swA); parser.AddSwitch(swB); var result = parser.Parse(new string[] { "-a", "111", "--be=222", "path1" }); Assert.AreEqual(1, result.pathsCount); Assert.AreEqual("path1", result.paths[0]); Assert.AreEqual(2, result.switchesCount); Assert.AreEqual("AAA", result.switches[0].primaryName); Assert.AreEqual("111", result.switches[0].args[0]); Assert.AreEqual("be", result.switches[1].primaryName); Assert.AreEqual("222", result.switches[1].args[0]); }
public void GetHelp_MaybeParam() { var sw1 = new CommandSwitch("switch"); sw1.SetHelp("Help here"); sw1.AddParameter(Arity.NoneOrOne, "p"); StringBuilder sb = new StringBuilder(); sw1.GetHelp(new Setup(), sb); var actual = sb.ToString(); var expected = " --switch[=p] Help here\n"; Assert.AreEqual(expected, actual); }
public void GetHelp_WithAltNamesNoLongname_CorrectDisplay() { var sw1 = new CommandSwitch("s"); sw1.AddAlternativeNames("alternative"); sw1.SetHelp("Help here"); StringBuilder sb = new StringBuilder(); sw1.GetHelp(new Setup(), sb); var actual = sb.ToString(); var expected = " -s --alternative Help here\n"; Assert.AreEqual(expected, actual); }
public void GetHelp_NoParam() { var sw1 = new CommandSwitch("switch", 's'); sw1.AddAlternativeNames("alt"); sw1.SetHelp("Help here"); StringBuilder sb = new StringBuilder(); sw1.GetHelp(new Setup(), sb); var actual = sb.ToString(); var expected = " -s --switch, --alt Help here\n"; Assert.AreEqual(expected, actual); }
public void GetHelp_WhenNoLongNameAndNoAltNames() { var sw1 = new CommandSwitch("s"); sw1.SetHelp("Help here"); sw1.AddParameter(Arity.NoneOrOne, "p"); StringBuilder sb = new StringBuilder(); sw1.GetHelp(new Setup(), sb); var actual = sb.ToString(); var expected = " -s[=p] Help here\n"; Assert.AreEqual(expected, actual); }