/** * Test if regular arguments (no options) are correctly recognized. */ public void testArguments() { ArgumentParser parser = new ArgumentParser( new String[] {"a", "bc", "def=g", "hjk=lmn opq"}); Iterator<String> iter = parser.iterator(); assertEquals("a", iter.next()); assertEquals("bc", iter.next()); assertEquals("def=g", iter.next()); // '=' should not be parsed! assertEquals("hjk=lmn opq", iter.next()); assertIteratorAtEnd(iter); }
/** * Test if long options (beginning with '--') are correctly recognized. */ public void testLongOptions() { ArgumentParser parser = new ArgumentParser( new String[] {"--a", "--bc", "--def=ghj", "--kl=mn op", "=", "--qr=", "--=", "--=st", "--=uv=wxy z"}, true); Iterator<String> iter = parser.iterator(); assertEquals("--a", iter.next()); assertEquals("--bc", iter.next()); assertEquals("--def", iter.next()); assertEquals("ghj", iter.next()); assertEquals("--kl", iter.next()); assertEquals("mn op", iter.next()); assertEquals("=", iter.next()); assertEquals("--qr", iter.next()); assertEquals("", iter.next()); // empty argument after '--qr=' assertEquals("--=", iter.next()); assertEquals("--=st", iter.next()); assertEquals("--=uv=wxy z", iter.next()); // see comment in testShortArguments() for similar case assertIteratorAtEnd(iter); }
new String[] {"-a", "-b", "-cd", "-efg", "-h=j", "-kl=m", "-nop=qrs", "-tu=vw xyz", "=", "-", "-=", "-1", "-2=", "-=3", "-=4=5"}, true); Iterator<String> iter = parser.iterator(); assertEquals("-a", iter.next()); assertEquals("-b", iter.next()); assertEquals("-c", iter.next()); assertEquals("-d", iter.next()); assertEquals("-e", iter.next()); assertEquals("-f", iter.next()); assertEquals("-g", iter.next()); assertEquals("-h", iter.next()); assertEquals("j", iter.next()); assertEquals("-k", iter.next()); assertEquals("-l", iter.next()); assertEquals("m", iter.next()); assertEquals("-n", iter.next()); assertEquals("-o", iter.next()); assertEquals("-p", iter.next()); assertEquals("qrs", iter.next()); assertEquals("-t", iter.next()); assertEquals("-u", iter.next()); assertEquals("vw xyz", iter.next()); assertEquals("=", iter.next()); assertEquals("-", iter.next()); assertEquals("-=", iter.next()); assertEquals("-1", iter.next()); assertEquals("-2", iter.next()); assertEquals("", iter.next()); // empty argument after '-2=' assertEquals("-=3", iter.next()); // interpret as string argument, as it makes no sense otherwise assertEquals("-=4=5", iter.next()); /* one could iterprete '=4' as param name and '5' as value to that param,
new String[] {"-xcf", "myfile.tgz", "file1", "file2", "--verbose"}, true); Iterator<String> iter = parser.iterator(); assertEquals("-x", iter.next()); assertEquals("-c", iter.next()); assertEquals("-f", iter.next()); assertEquals("myfile.tgz", iter.next()); assertEquals("file1", iter.next()); assertEquals("file2", iter.next()); assertEquals("--verbose", iter.next()); assertIteratorAtEnd(iter); new String[] {"-xcf", "myfile.tgz", "file1", "file2", "--verbose"}, false); iter = parser.iterator(); assertEquals("-xcf", iter.next()); assertEquals("myfile.tgz", iter.next()); assertEquals("file1", iter.next()); assertEquals("file2", iter.next()); assertEquals("--verbose", iter.next()); assertIteratorAtEnd(iter); assertEquals("-xcf", iter.next()); assertEquals("=", iter.next()); assertEquals("=a", iter.next()); assertEquals("=ab", iter.next()); assertEquals("-=", iter.next()); assertEquals("-=a", iter.next()); assertEquals("--=", iter.next()); assertEquals("--=a", iter.next()); assertEquals("--a", iter.next());