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 }