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 junit.framework.TestCase;
09:
10: /**
11: * @author <a href="mailto:pholser@alumni.rice.edu">Paul Holser</a>
12: * @version $Id: ArgumentListTest.java,v 1.11 2007/04/10 20:06:26 pholser Exp $
13: */
14: public class ArgumentListTest extends TestCase {
15: private ArgumentList args;
16:
17: protected void setUp() throws Exception {
18: super .setUp();
19:
20: args = new ArgumentList(new String[] { "-a", "b", "c" });
21: }
22:
23: public void testNextAndPeek() {
24: assertNextArgIs("-a");
25: assertNextArgIs("b");
26: assertNextArgIs("c");
27: assertNoMoreArgs();
28: }
29:
30: public void testTreatNextAsLongOption() {
31: args.treatNextAsLongOption();
32: assertNextArgIs("-a");
33: args.treatNextAsLongOption();
34: assertNextArgIs("--b");
35: args.treatNextAsLongOption();
36: assertNextArgIs("--c");
37:
38: assertNoMoreArgs();
39: }
40:
41: private void assertNextArgIs(String expectedArg) {
42: assertTrue("no more args?", args.hasMore());
43: assertEquals("peek?", expectedArg, args.peek());
44: assertEquals("next?", expectedArg, args.next());
45: }
46:
47: private void assertNoMoreArgs() {
48: assertFalse("more args?", args.hasMore());
49:
50: try {
51: args.peek();
52: fail("peek() should have overrun array bounds");
53: } catch (ArrayIndexOutOfBoundsException expected) {
54: assertTrue(expected.getMessage(), true);
55: }
56:
57: try {
58: args.next();
59: fail("next() should have overrun array bounds");
60: } catch (ArrayIndexOutOfBoundsException expected) {
61: assertTrue(expected.getMessage(), true);
62: }
63:
64: try {
65: args.treatNextAsLongOption();
66: fail("treatNextAsLongOption() should have overrun array bounds");
67: } catch (ArrayIndexOutOfBoundsException expected) {
68: assertTrue(expected.getMessage(), true);
69: }
70: }
71: }
|