diff options
Diffstat (limited to 'test/org/gnunet/util/getopt/GetoptTest.java')
-rw-r--r-- | test/org/gnunet/util/getopt/GetoptTest.java | 113 |
1 files changed, 92 insertions, 21 deletions
diff --git a/test/org/gnunet/util/getopt/GetoptTest.java b/test/org/gnunet/util/getopt/GetoptTest.java index 81a10a8..e60757e 100644 --- a/test/org/gnunet/util/getopt/GetoptTest.java +++ b/test/org/gnunet/util/getopt/GetoptTest.java | |||
@@ -25,8 +25,8 @@ import org.junit.Assert; | |||
25 | import org.junit.Test; | 25 | import org.junit.Test; |
26 | 26 | ||
27 | class Target { | 27 | class Target { |
28 | @Option( | 28 | @Argument( |
29 | action = OptionAction.STORE_STRING, | 29 | action = ArgumentAction.STORE_STRING, |
30 | shortname = "s", | 30 | shortname = "s", |
31 | longname = "string", | 31 | longname = "string", |
32 | argumentName = "SOME_STRING", | 32 | argumentName = "SOME_STRING", |
@@ -34,16 +34,16 @@ class Target { | |||
34 | ) | 34 | ) |
35 | String someString; | 35 | String someString; |
36 | 36 | ||
37 | @Option( | 37 | @Argument( |
38 | action = OptionAction.SET, | 38 | action = ArgumentAction.SET, |
39 | shortname = "y", | 39 | shortname = "y", |
40 | longname = "set", | 40 | longname = "set", |
41 | description = "enable, default disabled" | 41 | description = "enable, default disabled" |
42 | ) | 42 | ) |
43 | boolean set = false; | 43 | boolean set = false; |
44 | 44 | ||
45 | @Option( | 45 | @Argument( |
46 | action = OptionAction.RESET, | 46 | action = ArgumentAction.RESET, |
47 | shortname = "n", | 47 | shortname = "n", |
48 | longname = "reset", | 48 | longname = "reset", |
49 | description = "disable, default enabled" | 49 | description = "disable, default enabled" |
@@ -51,21 +51,20 @@ class Target { | |||
51 | boolean reset = true; | 51 | boolean reset = true; |
52 | 52 | ||
53 | 53 | ||
54 | @Option( | 54 | @Argument( |
55 | action = OptionAction.INCREMENT, | 55 | action = ArgumentAction.STORE_NUMBER, |
56 | shortname = "i", | ||
57 | longname = "inc", | ||
58 | description = "increment a counter" | ||
59 | ) | ||
60 | int counter = 0; | ||
61 | |||
62 | @Option( | ||
63 | action = OptionAction.STORE_NUMBER, | ||
64 | shortname = "w", | 56 | shortname = "w", |
65 | longname = "value", | 57 | longname = "value", |
66 | description = "some value" | 58 | description = "some value" |
67 | ) | 59 | ) |
68 | int intVal = 0; | 60 | int intVal = 0; |
61 | |||
62 | static int someConstant = 42; | ||
63 | } | ||
64 | |||
65 | class InvalidTarget { | ||
66 | @Argument(action = ArgumentAction.SET, shortname = "foo", longname = "bar", description = "bla bla") | ||
67 | boolean foo; | ||
69 | } | 68 | } |
70 | 69 | ||
71 | public class GetoptTest { | 70 | public class GetoptTest { |
@@ -74,12 +73,7 @@ public class GetoptTest { | |||
74 | Target t = new Target(); | 73 | Target t = new Target(); |
75 | Parser p = new Parser(t); | 74 | Parser p = new Parser(t); |
76 | 75 | ||
77 | t.someString = null; | ||
78 | 76 | ||
79 | // argument after shortopt | ||
80 | p.parse(new String[]{"-s", "foo"}); | ||
81 | Assert.assertEquals("foo", t.someString); | ||
82 | |||
83 | t.someString = null; | 77 | t.someString = null; |
84 | 78 | ||
85 | // argument directly with shortopt | 79 | // argument directly with shortopt |
@@ -88,6 +82,12 @@ public class GetoptTest { | |||
88 | 82 | ||
89 | t.someString = null; | 83 | t.someString = null; |
90 | 84 | ||
85 | // argument after shortopt | ||
86 | p.parse(new String[]{"-s", "foo"}); | ||
87 | Assert.assertEquals("foo", t.someString); | ||
88 | |||
89 | t.someString = null; | ||
90 | |||
91 | p.parse(new String[]{"--string=foo"}); | 91 | p.parse(new String[]{"--string=foo"}); |
92 | Assert.assertEquals("foo", t.someString); | 92 | Assert.assertEquals("foo", t.someString); |
93 | 93 | ||
@@ -186,6 +186,21 @@ public class GetoptTest { | |||
186 | Assert.assertArrayEquals(new String[]{"foo", "bar", "--reset", "baz"}, rest); | 186 | Assert.assertArrayEquals(new String[]{"foo", "bar", "--reset", "baz"}, rest); |
187 | } | 187 | } |
188 | 188 | ||
189 | |||
190 | @Test(expected = Parser.ArgumentError.class) | ||
191 | public void test_missingLongopt() { | ||
192 | Target t = new Target(); | ||
193 | Parser p = new Parser(t); | ||
194 | p.parse(new String[]{"--foobar"}); | ||
195 | } | ||
196 | |||
197 | @Test(expected = Parser.ArgumentError.class) | ||
198 | public void test_missingShortopt_1() { | ||
199 | Target t = new Target(); | ||
200 | Parser p = new Parser(t); | ||
201 | p.parse(new String[]{"-x"}); | ||
202 | } | ||
203 | |||
189 | @Test | 204 | @Test |
190 | public void test_long() { | 205 | public void test_long() { |
191 | Target t = new Target(); | 206 | Target t = new Target(); |
@@ -196,6 +211,9 @@ public class GetoptTest { | |||
196 | rest = p.parse(new String[]{"-w5"}); | 211 | rest = p.parse(new String[]{"-w5"}); |
197 | Assert.assertEquals(5, t.intVal); | 212 | Assert.assertEquals(5, t.intVal); |
198 | 213 | ||
214 | rest = p.parse(new String[]{"-w", "5"}); | ||
215 | Assert.assertEquals(5, t.intVal); | ||
216 | |||
199 | rest = p.parse(new String[]{"--value=6"}); | 217 | rest = p.parse(new String[]{"--value=6"}); |
200 | Assert.assertEquals(6, t.intVal); | 218 | Assert.assertEquals(6, t.intVal); |
201 | 219 | ||
@@ -213,4 +231,57 @@ public class GetoptTest { | |||
213 | } | 231 | } |
214 | Assert.assertTrue(thrown); | 232 | Assert.assertTrue(thrown); |
215 | } | 233 | } |
234 | |||
235 | |||
236 | @Test(expected = Parser.ArgumentError.class) | ||
237 | public void test_missingNumberArgument_short() { | ||
238 | Target t = new Target(); | ||
239 | Parser p = new Parser(t); | ||
240 | |||
241 | p.parse(new String[]{"-w"}); | ||
242 | Assert.assertEquals(5, t.intVal); | ||
243 | } | ||
244 | |||
245 | @Test(expected = Parser.ArgumentError.class) | ||
246 | public void test_missingNumberArgument_long() { | ||
247 | Target t = new Target(); | ||
248 | Parser p = new Parser(t); | ||
249 | |||
250 | |||
251 | p.parse(new String[]{"--w"}); | ||
252 | Assert.assertEquals(5, t.intVal); | ||
253 | } | ||
254 | |||
255 | |||
256 | @Test(expected = Parser.ArgumentError.class) | ||
257 | public void test_invalidNumberFormat() { | ||
258 | Target t = new Target(); | ||
259 | Parser p = new Parser(t); | ||
260 | |||
261 | String[] rest; | ||
262 | |||
263 | rest = p.parse(new String[]{"-w", "abc"}); | ||
264 | Assert.assertEquals(5, t.intVal); | ||
265 | } | ||
266 | |||
267 | |||
268 | @Test | ||
269 | public void test_dashRest() { | ||
270 | Target t = new Target(); | ||
271 | Parser p = new Parser(t); | ||
272 | |||
273 | String[] rest; | ||
274 | |||
275 | rest = p.parse(new String[]{"-w", "123", "-"}); | ||
276 | Assert.assertArrayEquals(new String[]{"-"}, rest); | ||
277 | } | ||
278 | |||
279 | |||
280 | @Test(expected = AssertionError.class) | ||
281 | public void test_invalid() { | ||
282 | InvalidTarget it = new InvalidTarget(); | ||
283 | Parser p = new Parser(it); | ||
284 | |||
285 | p.parse(new String[]{"-foo"}); | ||
286 | } | ||
216 | } | 287 | } |