1   package org.kohsuke.args4j;
2   
3   public class StringWithMetavarTest extends Args4JTestBase<StringWithMetavar> {
4       @Override
5       public StringWithMetavar getTestObject() {
6           return new StringWithMetavar();
7       }
8   
9       public void testSettingUsage() {
10          args = new String[]{"-wrong-usage"};
11          try {
12              parser.parseArgument(args);
13              fail("Doesnt detect wrong parameters.");
14          } catch (CmdLineException e) {
15              String expectedError = "\"-wrong-usage\" is not a valid option";
16              String expectedUsage   = " -str METAVAR : set a string";
17              String[] usageLines = getUsageMessage();
18              String errorMessage = e.getMessage();
19              assertUsageLength(1);
20              assertTrue("Got wrong error message", errorMessage.startsWith(expectedError));
21              assertEquals("Got wrong usage message", expectedUsage, usageLines[0]);
22          }
23      }
24  
25      public void testMissingParameter() {
26          args = new String[]{"-str"};
27          try {
28              parser.parseArgument(args);
29              fail("Should miss one parameter.");
30          } catch (CmdLineException e) {
31              String expectedError = "Option \"-str\" takes an operand";
32              String expectedUsage   = " -str METAVAR : set a string";
33              String errorMessage = e.getMessage();
34              String[] usageLines = getUsageMessage();
35              assertUsageLength(1);
36              assertTrue("Got wrong error message", errorMessage.startsWith(expectedError));
37              assertEquals("Got wrong usage message", expectedUsage, usageLines[0]);
38          }
39      }
40  
41  }