// OptionsTest.java package net.sf.gogui.util; import java.util.ArrayList; public final class OptionsTest extends junit.framework.TestCase { public static void main(String args[]) { junit.textui.TestRunner.run(suite()); } public static junit.framework.Test suite() { return new junit.framework.TestSuite(OptionsTest.class); } public void testBasic() throws ErrorMessage { String specs[] = { "flag1", "value1:", "value2:", "flag2", "value3:", "value4:" }; String args[] = { "arg1", "-value1", "42", "-flag2", "-value3", "-9223372036854775807", "-value4", "-1", "arg2" }; Options opt = new Options(args, specs); assertFalse(opt.contains("flag1")); assertTrue(opt.contains("flag2")); assertTrue(opt.contains("value1")); assertFalse(opt.contains("value2")); assertEquals(opt.get("value1"), "42"); assertEquals(opt.getInteger("value1"), 42); assertEquals(opt.getInteger("value2", -98), -98); assertEquals(opt.getLong("value3"), -9223372036854775807L); ArrayList<String> arguments = opt.getArguments(); assertEquals(arguments.size(), 2); assertEquals(arguments.get(0), "arg1"); assertEquals(arguments.get(1), "arg2"); } public void testCheckNoArguments() throws ErrorMessage { String specs[] = { "option:" }; { String args[] = { "-option", "value", "arg" }; Options opt = new Options(args, specs); boolean errorThrown = false; try { opt.checkNoArguments(); } catch (ErrorMessage e) { errorThrown = true; } assertTrue(errorThrown); } { String args[] = { "-option", "value" }; Options opt = new Options(args, specs); try { opt.checkNoArguments(); } catch (ErrorMessage e) { fail(); } } } public void testStopParsing() throws ErrorMessage { String specs[] = { "flag1", "value1:", "value2:", "flag2" }; String args[] = { "-value1", "foo", "--", "-arg1" }; Options opt = new Options(args, specs); ArrayList<String> arguments = opt.getArguments(); assertEquals(arguments.size(), 1); assertEquals(arguments.get(0), "-arg1"); } }