Skip to content

Commit a94283a

Browse files
committed
added test around capturing individual additional arguments for different options
1 parent 34a1354 commit a94283a

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

FluentCommandLineParser.Tests/FluentCommandLineParserTests.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -979,6 +979,43 @@ public void Ensure_Stable_When_Additional_Args_Are_Provided_But_Capture_Addition
979979
Assert.IsFalse(result.HelpCalled);
980980
}
981981

982+
[Test]
983+
public void Ensure_Additional_Args_Can_Be_Captured_For_Different_Options()
984+
{
985+
var parser = CreateFluentParser();
986+
987+
var option1AddArgs = new List<string>();
988+
var option2AddArgs = new List<string>();
989+
990+
string option1Value = null;
991+
string option2Value = null;
992+
993+
parser.Setup<string>("option-one")
994+
.Callback(s => option1Value = s)
995+
.CaptureAdditionalArguments(option1AddArgs.AddRange);
996+
997+
parser.Setup<string>("option-two")
998+
.Callback(s => option2Value = s)
999+
.CaptureAdditionalArguments(option2AddArgs.AddRange);
1000+
1001+
var result = parser.Parse(new[] { "--option-one", "value-one", "addArg1", "addArg2", "--option-two", "value-two", "addArg3", "addArg4" });
1002+
1003+
Assert.IsFalse(result.HasErrors);
1004+
Assert.IsFalse(result.EmptyArgs);
1005+
Assert.IsFalse(result.HelpCalled);
1006+
1007+
Assert.AreEqual("value-one", option1Value);
1008+
Assert.AreEqual("value-two", option2Value);
1009+
1010+
Assert.AreEqual(2, option1AddArgs.Count());
1011+
Assert.IsTrue(option1AddArgs.Contains("addArg1"));
1012+
Assert.IsTrue(option1AddArgs.Contains("addArg2"));
1013+
1014+
Assert.AreEqual(2, option1AddArgs.Count());
1015+
Assert.IsTrue(option2AddArgs.Contains("addArg3"));
1016+
Assert.IsTrue(option2AddArgs.Contains("addArg4"));
1017+
}
1018+
9821019
#endregion
9831020

9841021
#region Lists

0 commit comments

Comments
 (0)