package org.couchbase.mock.util;
import java.util.List;
import junit.framework.TestCase;
import org.couchbase.mock.util.Getopt.CommandLineOption;
import org.couchbase.mock.util.Getopt.Entry;
private final Getopt getopt;
super(testName);
getopt = new Getopt();
getopt.addOption(new CommandLineOption('a', "--alpha", true)).
addOption(new CommandLineOption('b', "--bravo", false)).
addOption(new CommandLineOption('c', "--charlie", false));
}
@Override
protected void setUp()
throws Exception {
super.setUp();
}
@Override
protected void tearDown()
throws Exception {
super.tearDown();
}
System.out.println("parse: { }");
String[] argv = new String[0];
Getopt instance = new Getopt();
if (!instance.parse(argv).isEmpty()) {
fail("Parse should return an empty set");
}
assertEquals(-1, getopt.getOptind());
}
System.out.println("parse: { }");
String[] argv = new String[0];
if (!getopt.parse(argv).isEmpty()) {
fail("Parse should return an empty set");
}
assertEquals(-1, getopt.getOptind());
}
System.out.println("parse: { foo, bar}");
String[] argv = {"foo", "bar"};
if (!getopt.parse(argv).isEmpty()) {
fail("Parse should return an empty set");
}
assertEquals(0, getopt.getOptind());
}
System.out.println("parse: { foo, --, bar}");
String[] argv = {"foo", "--", "bar"};
if (!getopt.parse(argv).isEmpty()) {
fail("Parse should return an empty set");
}
assertEquals(0, getopt.getOptind());
}
System.out.println("parse: { --bravo}");
String[] argv = {"--bravo"};
List<Entry> options = getopt.parse(argv);
assertEquals(1, options.size());
assertEquals("--bravo", options.get(0).key);
assertNull(options.get(0).value);
assertEquals(-1, getopt.getOptind());
}
System.out.println("parse: { --alpha}");
String[] argv = {"--alpha"};
try {
getopt.parse(argv);
fail("Parse should throw an exception");
} catch (IllegalArgumentException exp) {
}
}
System.out.println("parse: { --alpha=foo}");
String[] argv = {"--alpha=foo"};
List<Entry> options = getopt.parse(argv);
assertEquals(1, options.size());
assertEquals("--alpha", options.get(0).key);
assertEquals("foo", options.get(0).value);
assertEquals(-1, getopt.getOptind());
}
System.out.println("parse: { --alpha, foo}");
String[] argv = {"--alpha", "foo"};
List<Entry> options = getopt.parse(argv);
assertEquals(1, options.size());
assertEquals("--alpha", options.get(0).key);
assertEquals("foo", options.get(0).value);
assertEquals(-1, getopt.getOptind());
}
System.out.println("parse: { --alpha=foo, --bravo, --charlie, foo}");
String[] argv = {"--alpha=foo", "--bravo", "--charlie", "foo"};
List<Entry> options = getopt.parse(argv);
assertEquals(3, options.size());
assertEquals("--alpha", options.get(0).key);
assertEquals("foo", options.get(0).value);
assertEquals("--bravo", options.get(1).key);
assertNull(options.get(1).value);
assertEquals("--charlie", options.get(2).key);
assertNull(options.get(2).value);
assertEquals(3, getopt.getOptind());
}
System.out.println("parse: { --alpha=foo, --, --bravo, --charlie, foo}");
String[] argv = {"--alpha=foo", "--", "--bravo", "--charlie", "foo"};
List<Entry> options = getopt.parse(argv);
assertEquals(1, options.size());
assertEquals("--alpha", options.get(0).key);
assertEquals("foo", options.get(0).value);
assertEquals(2, getopt.getOptind());
}
System.out.println("parse: { --alpha, foo, --, --bravo, --charlie, foo}");
String[] argv = {"--alpha", "foo", "--", "--bravo", "--charlie", "foo"};
List<Entry> options = getopt.parse(argv);
assertEquals(1, options.size());
assertEquals("--alpha", options.get(0).key);
assertEquals("foo", options.get(0).value);
assertEquals(3, getopt.getOptind());
}
System.out.println("parse: { -b}");
String[] argv = {"-b"};
List<Entry> options = getopt.parse(argv);
assertEquals(1, options.size());
assertEquals("-b", options.get(0).key);
assertNull(options.get(0).value);
assertEquals(-1, getopt.getOptind());
}
System.out.println("parse: { -a}");
String[] argv = {"-a"};
try {
getopt.parse(argv);
fail("Parse should throw an exception");
} catch (IllegalArgumentException exp) {
}
}
System.out.println("parse: { -a, foo}");
String[] argv = {"-a", "foo"};
List<Entry> options = getopt.parse(argv);
assertEquals(1, options.size());
assertEquals("-a", options.get(0).key);
assertEquals("foo", options.get(0).value);
assertEquals(-1, getopt.getOptind());
}
System.out.println("parse: { -a, foo, -b -c, foo}");
String[] argv = {"-a", "foo", "-b", "-c", "foo"};
List<Entry> options = getopt.parse(argv);
assertEquals(3, options.size());
assertEquals("-a", options.get(0).key);
assertEquals("foo", options.get(0).value);
assertEquals("-b", options.get(1).key);
assertNull(options.get(1).value);
assertEquals("-c", options.get(2).key);
assertNull(options.get(2).value);
assertEquals(4, getopt.getOptind());
}
System.out.println("parse: { -abc, foo, foo}");
String[] argv = {"-abc", "foo", "foo"};
List<Entry> options = getopt.parse(argv);
assertEquals(3, options.size());
assertEquals("-a", options.get(0).key);
assertEquals("foo", options.get(0).value);
assertEquals("-b", options.get(1).key);
assertNull(options.get(1).value);
assertEquals("-c", options.get(2).key);
assertNull(options.get(2).value);
assertEquals(2, getopt.getOptind());
}
System.out.println("parse: { -a, foo, --, -b, -c, foo}");
String[] argv = {"-a", "foo", "--", "-b", "-c", "foo"};
List<Entry> options = getopt.parse(argv);
assertEquals(1, options.size());
assertEquals("-a", options.get(0).key);
assertEquals("foo", options.get(0).value);
assertEquals(3, getopt.getOptind());
}
System.out.println("parse: { --alpha, foo, -a, bar, -b, -c, --bravo, -bc, foo}");
String[] argv = {"--alpha", "foo", "-a", "bar", "-b", "-c", "--bravo", "-bc", "foo"};
List<Entry> options = getopt.parse(argv);
assertEquals(7, options.size());
assertEquals("--alpha", options.get(0).key);
assertEquals("foo", options.get(0).value);
assertEquals("-a", options.get(1).key);
assertEquals("bar", options.get(1).value);
assertEquals("-b", options.get(2).key);
assertNull(options.get(2).value);
assertEquals("-c", options.get(3).key);
assertNull(options.get(3).value);
assertEquals("--bravo", options.get(4).key);
assertNull(options.get(4).value);
assertEquals("-b", options.get(5).key);
assertNull(options.get(5).value);
assertEquals("-c", options.get(6).key);
assertNull(options.get(6).value);
assertEquals(8, getopt.getOptind());
}
}