1   package org.kohsuke.args4j;
2   
3   public class SimpleStringTest extends Args4JTestBase<SimpleString> {
4   
5       @Override
6       public SimpleString getTestObject() {
7           return new SimpleString();
8       }
9   
10      public void testSettingStringNoValues() {
11          SimpleString bo = testObject;
12          args = new String[]{};
13          try {
14              parser.parseArgument(args);
15              assertTrue("Default value set.", "default".equals(bo.str));
16          } catch (CmdLineException e) {
17              fail("Call without parameters is valid!");
18          }
19      }
20  
21      public void testSettingString() {
22          SimpleString bo = testObject;
23          args = new String[]{"-str","test"};
24          try {
25              parser.parseArgument(args);
26              assertTrue("Given value set.", "test".equals(bo.str));
27          } catch (CmdLineException e) {
28              fail("Setting a string value should be possible");
29          }
30      }
31  
32      public void testSettingUsage() {
33          args = new String[]{"-wrong-usage"};
34          try {
35              parser.parseArgument(args);
36              fail("Doesnt detect wrong parameters.");
37          } catch (CmdLineException e) {
38              String expectedError = "\"-wrong-usage\" is not a valid option";
39              String expectedUsage   = " -str VAL : set a string";
40              String[] usageLines = getUsageMessage();
41              String errorMessage = e.getMessage();
42              assertTrue("Got wrong error message", errorMessage.startsWith(expectedError));
43              assertUsageLength(1);
44              assertEquals("Got wrong usage message", expectedUsage, usageLines[0]);
45          }
46      }
47  
48      public void testMissingParameter() {
49          args = new String[]{"-str"};
50          try {
51              parser.parseArgument(args);
52              fail("Should miss one parameter.");
53          } catch (CmdLineException e) {
54              String expectedError = "Option \"-str\" takes an operand";
55              String expectedUsage   = " -str VAL : set a string";
56              String[] usageLines = getUsageMessage();
57              String errorMessage = e.getMessage();
58              assertUsageLength(1);
59              assertTrue("Got wrong error message", errorMessage.startsWith(expectedError));
60              assertEquals("Got wrong usage message", expectedUsage, usageLines[0]);
61          }
62      }
63  
64  }