@@ -19,17 +19,11 @@ public class ValueTest extends TestCase
1919
2020 public static Test suite () {
2121 return new TestSuite (ValueTest .class );
22- /*
23- TestSuite suite = new TestSuite();
24-
25- suite.addTest( new ValueTest("testLongNoArg") );
26-
27- return suite;
28- */
2922 }
3023
3124 private CommandLine _cl = null ;
32-
25+ private CommandLine _clOptional = null ;
26+ private Options opts = new Options ();
3327
3428 public ValueTest (String name )
3529 {
@@ -38,7 +32,6 @@ public ValueTest(String name)
3832
3933 public void setUp ()
4034 {
41- Options opts = new Options ();
4235 opts .addOption ("a" ,
4336 false ,
4437 "toggle -a" );
@@ -57,10 +50,32 @@ public void setUp()
5750 true ,
5851 "set -d" );
5952
53+ opts .addOption ( OptionBuilder .hasOptionalArg ()
54+ .create ( 'e' ) );
55+
56+ opts .addOption ( OptionBuilder .hasOptionalArg ()
57+ .withLongOpt ( "fish" )
58+ .create ( ) );
59+
60+ opts .addOption ( OptionBuilder .hasOptionalArgs ()
61+ .withLongOpt ( "gravy" )
62+ .create ( ) );
63+
64+ opts .addOption ( OptionBuilder .hasOptionalArgs ( 2 )
65+ .withLongOpt ( "hide" )
66+ .create ( ) );
67+
68+ opts .addOption ( OptionBuilder .hasOptionalArgs ( 2 )
69+ .create ( 'i' ) );
70+
71+ opts .addOption ( OptionBuilder .hasOptionalArgs ( )
72+ .create ( 'j' ) );
73+
6074 String [] args = new String [] { "-a" ,
61- "-b" , "foo" ,
62- "--c" ,
63- "--d" , "bar" };
75+ "-b" , "foo" ,
76+ "--c" ,
77+ "--d" , "bar"
78+ };
6479
6580 try
6681 {
@@ -103,4 +118,155 @@ public void testLongWithArg()
103118 assertNotNull ( _cl .getOptionValue ("d" ) );
104119 assertEquals ( _cl .getOptionValue ("d" ), "bar" );
105120 }
121+
122+ public void testShortOptionalArgNoValue ()
123+ {
124+ String [] args = new String [] { "-e"
125+ };
126+ try
127+ {
128+ CommandLineParser parser = CommandLineParserFactory .newParser ();
129+ CommandLine cmd = parser .parse (opts ,args );
130+ assertTrue ( cmd .hasOption ("e" ) );
131+ assertNull ( cmd .getOptionValue ("e" ) );
132+ }
133+ catch (ParseException e )
134+ {
135+ fail ("Cannot setUp() CommandLine: " + e .toString ());
136+ }
137+ }
138+
139+ public void testShortOptionalArgValue ()
140+ {
141+ String [] args = new String [] { "-e" , "everything"
142+ };
143+ try
144+ {
145+ CommandLineParser parser = CommandLineParserFactory .newParser ();
146+ CommandLine cmd = parser .parse (opts ,args );
147+ assertTrue ( cmd .hasOption ("e" ) );
148+ assertEquals ( "everything" , cmd .getOptionValue ("e" ) );
149+ }
150+ catch (ParseException e )
151+ {
152+ fail ("Cannot setUp() CommandLine: " + e .toString ());
153+ }
154+ }
155+
156+ public void testLongOptionalNoValue ()
157+ {
158+ String [] args = new String [] { "--fish"
159+ };
160+ try
161+ {
162+ CommandLineParser parser = CommandLineParserFactory .newParser ();
163+ CommandLine cmd = parser .parse (opts ,args );
164+ assertTrue ( cmd .hasOption ("fish" ) );
165+ assertNull ( cmd .getOptionValue ("fish" ) );
166+ }
167+ catch (ParseException e )
168+ {
169+ fail ("Cannot setUp() CommandLine: " + e .toString ());
170+ }
171+ }
172+
173+ public void testLongOptionalArgValue ()
174+ {
175+ String [] args = new String [] { "--fish" , "face"
176+ };
177+ try
178+ {
179+ CommandLineParser parser = CommandLineParserFactory .newParser ();
180+ CommandLine cmd = parser .parse (opts ,args );
181+ assertTrue ( cmd .hasOption ("fish" ) );
182+ assertEquals ( "face" , cmd .getOptionValue ("fish" ) );
183+ }
184+ catch (ParseException e )
185+ {
186+ fail ("Cannot setUp() CommandLine: " + e .toString ());
187+ }
188+ }
189+
190+ public void testShortOptionalArgValues ()
191+ {
192+ String [] args = new String [] { "-j" , "ink" , "idea"
193+ };
194+ try
195+ {
196+ CommandLineParser parser = CommandLineParserFactory .newParser ();
197+ CommandLine cmd = parser .parse (opts ,args );
198+ assertTrue ( cmd .hasOption ("j" ) );
199+ assertEquals ( "ink" , cmd .getOptionValue ("j" ) );
200+ assertEquals ( "ink" , cmd .getOptionValues ("j" )[0 ] );
201+ assertEquals ( "idea" , cmd .getOptionValues ("j" )[1 ] );
202+ assertEquals ( cmd .getArgs ().length , 0 );
203+ }
204+ catch (ParseException e )
205+ {
206+ fail ("Cannot setUp() CommandLine: " + e .toString ());
207+ }
208+ }
209+
210+ public void testLongOptionalArgValues ()
211+ {
212+ String [] args = new String [] { "--gravy" , "gold" , "garden"
213+ };
214+ try
215+ {
216+ CommandLineParser parser = CommandLineParserFactory .newParser ();
217+ CommandLine cmd = parser .parse (opts ,args );
218+ assertTrue ( cmd .hasOption ("gravy" ) );
219+ assertEquals ( "gold" , cmd .getOptionValue ("gravy" ) );
220+ assertEquals ( "gold" , cmd .getOptionValues ("gravy" )[0 ] );
221+ assertEquals ( "garden" , cmd .getOptionValues ("gravy" )[1 ] );
222+ assertEquals ( cmd .getArgs ().length , 0 );
223+ }
224+ catch (ParseException e )
225+ {
226+ fail ("Cannot setUp() CommandLine: " + e .toString ());
227+ }
228+ }
229+
230+ public void testShortOptionalNArgValues ()
231+ {
232+ String [] args = new String [] { "-i" , "ink" , "idea" , "isotope" , "ice"
233+ };
234+ try
235+ {
236+ CommandLineParser parser = CommandLineParserFactory .newParser ();
237+ CommandLine cmd = parser .parse (opts ,args );
238+ assertTrue ( cmd .hasOption ("i" ) );
239+ assertEquals ( "ink" , cmd .getOptionValue ("i" ) );
240+ assertEquals ( "ink" , cmd .getOptionValues ("i" )[0 ] );
241+ assertEquals ( "idea" , cmd .getOptionValues ("i" )[1 ] );
242+ assertEquals ( cmd .getArgs ().length , 2 );
243+ assertEquals ( "isotope" , cmd .getArgs ()[0 ] );
244+ assertEquals ( "ice" , cmd .getArgs ()[1 ] );
245+ }
246+ catch (ParseException e )
247+ {
248+ fail ("Cannot setUp() CommandLine: " + e .toString ());
249+ }
250+ }
251+
252+ public void testLongOptionalNArgValues ()
253+ {
254+ String [] args = new String [] { "--hide" , "house" , "hair" , "head"
255+ };
256+ try
257+ {
258+ CommandLineParser parser = CommandLineParserFactory .newParser ();
259+ CommandLine cmd = parser .parse (opts ,args );
260+ assertTrue ( cmd .hasOption ("hide" ) );
261+ assertEquals ( "house" , cmd .getOptionValue ("hide" ) );
262+ assertEquals ( "house" , cmd .getOptionValues ("hide" )[0 ] );
263+ assertEquals ( "hair" , cmd .getOptionValues ("hide" )[1 ] );
264+ assertEquals ( cmd .getArgs ().length , 1 );
265+ assertEquals ( "head" , cmd .getArgs ()[0 ] );
266+ }
267+ catch (ParseException e )
268+ {
269+ fail ("Cannot setUp() CommandLine: " + e .toString ());
270+ }
271+ }
106272}
0 commit comments