01: // Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved.
02: // Released under the terms of the GNU General Public License version 2 or later.
03: package fitnesse.components;
04:
05: import junit.framework.TestCase;
06:
07: public class CommandLineTest extends TestCase {
08: private CommandLine options;
09:
10: public void testSimpleParsing() throws Exception {
11: assertTrue(createOptionsAndParse("", ""));
12: assertFalse(createOptionsAndParse("", "blah"));
13: }
14:
15: public void testOneRequiredArgument() throws Exception {
16: assertFalse(createOptionsAndParse("arg1", ""));
17:
18: assertTrue(createOptionsAndParse("arg1", "blah"));
19: assertEquals("blah", options.getArgument("arg1"));
20: }
21:
22: public void testThreeRequiredArguments() throws Exception {
23: assertTrue(createOptionsAndParse("arg1 arg2 arg3",
24: "tic tac toe"));
25: assertEquals("tic", options.getArgument("arg1"));
26: assertEquals("tac", options.getArgument("arg2"));
27: assertEquals("toe", options.getArgument("arg3"));
28: }
29:
30: public void testOneSimpleOption() throws Exception {
31: assertTrue(createOptionsAndParse("[-opt1]", ""));
32: assertFalse(options.hasOption("opt1"));
33: assertTrue(createOptionsAndParse("[-opt1]", "-opt1"));
34: assertTrue(options.hasOption("opt1"));
35: }
36:
37: public void testOptionWithArgument() throws Exception {
38: assertFalse(createOptionsAndParse("[-opt1 arg]", "-opt1"));
39:
40: assertTrue(createOptionsAndParse("[-opt1 arg]", "-opt1 blah"));
41: assertTrue(options.hasOption("opt1"));
42: String argument = options.getOptionArgument("opt1", "arg");
43: assertNotNull(argument);
44: assertEquals("blah", argument);
45: }
46:
47: public void testInvalidOption() throws Exception {
48: assertFalse(createOptionsAndParse("", "-badArg"));
49: }
50:
51: public void testCombo() throws Exception {
52: String descriptor = "[-opt1 arg1 arg2] [-opt2 arg1] [-opt3] arg1 arg2";
53:
54: assertFalse(createOptionsAndParse(descriptor, ""));
55: assertFalse(createOptionsAndParse(descriptor, "a"));
56: assertFalse(createOptionsAndParse(descriptor, "-opt1 a b c"));
57: assertFalse(createOptionsAndParse(descriptor, "-opt2 a b"));
58: assertFalse(createOptionsAndParse(descriptor, "-opt2 -opt3 a b"));
59: assertFalse(createOptionsAndParse(descriptor,
60: "-opt1 a -opt2 b -opt3 c d"));
61: assertFalse(createOptionsAndParse(descriptor,
62: "-opt1 a b -opt2 c -opt3 d e f"));
63:
64: assertTrue(createOptionsAndParse(descriptor, "a b"));
65: assertTrue(createOptionsAndParse(descriptor, "-opt3 a b"));
66: assertTrue(createOptionsAndParse(descriptor, "-opt2 a b c"));
67: assertTrue(createOptionsAndParse(descriptor, "-opt1 a b c d"));
68: assertTrue(createOptionsAndParse(descriptor,
69: "-opt1 a b -opt2 c d e"));
70:
71: assertTrue(createOptionsAndParse(descriptor,
72: "-opt1 a b -opt2 c -opt3 d e"));
73: assertTrue(options.hasOption("opt1"));
74: assertEquals("a", options.getOptionArgument("opt1", "arg1"));
75: assertEquals("b", options.getOptionArgument("opt1", "arg2"));
76: assertTrue(options.hasOption("opt2"));
77: assertEquals("c", options.getOptionArgument("opt2", "arg1"));
78: assertTrue(options.hasOption("opt3"));
79: assertEquals("d", options.getArgument("arg1"));
80: assertEquals("e", options.getArgument("arg2"));
81: }
82:
83: private boolean createOptionsAndParse(String validOptions,
84: String enteredOptions) {
85: options = new CommandLine(validOptions);
86: String[] args = new Option().split(enteredOptions);
87: return options.parse(args);
88: }
89: }
|