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