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 }