@@ -979,6 +979,43 @@ public void Ensure_Stable_When_Additional_Args_Are_Provided_But_Capture_Addition
979
979
Assert . IsFalse ( result . HelpCalled ) ;
980
980
}
981
981
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
+
982
1019
#endregion
983
1020
984
1021
#region Lists
0 commit comments