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 }