01: /*
02: Copyright 2004-2007 Paul R. Holser, Jr. All rights reserved.
03: Licensed under the Academic Free License version 3.0
04: */
05:
06: package joptsimple;
07:
08: import java.util.Arrays;
09: import java.util.Collections;
10:
11: /**
12: * @author <a href="mailto:pholser@alumni.rice.edu">Paul Holser</a>
13: * @version $Id: ShortOptionsRequiredArgumentTest.java,v 1.15 2007/04/10 20:06:26 pholser Exp $
14: */
15: public class ShortOptionsRequiredArgumentTest extends
16: AbstractOptionParserFixture {
17: protected void setUp() throws Exception {
18: super .setUp();
19:
20: parser.accepts("d").withRequiredArg();
21: parser.accepts("e");
22: parser.accepts("f");
23: parser.accepts("infile").withOptionalArg();
24: }
25:
26: public void testArgumentNotPresent() {
27: try {
28: parser.parse(new String[] { "-d" });
29: fail();
30: } catch (OptionMissingRequiredArgumentException expected) {
31: assertEquals("d", expected.option());
32: }
33: }
34:
35: public void testWithArgument() {
36: OptionSet options = parser.parse(new String[] { "-d", "foo" });
37: assertOptionDetected(options, "d");
38: assertEquals("foo", options.argumentOf("d"));
39: assertEquals(Collections.EMPTY_LIST, options
40: .nonOptionArguments());
41: }
42:
43: public void testClusteredOptionsWithOneAcceptingAnArgument() {
44: try {
45: parser.parse(new String[] { "-fed" });
46: fail();
47: } catch (IllegalOptionClusterException expected) {
48: assertEquals("d", expected.option());
49: }
50: }
51:
52: public void testArgumentNotPresentFollowedByAnotherOption() {
53: OptionSet options = parser.parse(new String[] { "-d",
54: "--infile" });
55: assertOptionDetected(options, "d");
56: assertOptionNotDetected(options, "infile");
57: assertEquals("--infile", options.argumentOf("d"));
58: assertEquals(Collections.EMPTY_LIST, options
59: .nonOptionArguments());
60: }
61:
62: public void testAppearingMultipleTimes() {
63: OptionSet options = parser.parse(new String[] { "-d", "foo",
64: "-d", "bar" });
65: assertOptionDetected(options, "d");
66: assertEquals(Arrays.asList(new String[] { "foo", "bar" }),
67: options.argumentsOf("d"));
68: assertEquals(Collections.EMPTY_LIST, options
69: .nonOptionArguments());
70: }
71:
72: public void testInSameToken() {
73: OptionSet options = parser.parse(new String[] { "-dfoo" });
74: assertOptionDetected(options, "d");
75: assertEquals(Collections.singletonList("foo"), options
76: .argumentsOf("d"));
77: assertEquals(Collections.EMPTY_LIST, options
78: .nonOptionArguments());
79: }
80: }
|