public void testMethodOption() throws Exception { class A { @Command public void main(@Option(names = "o") String o) {} } CommandDescriptor<Instance<A>> cmd = CommandFactory.DEFAULT.create(A.class); // Tester<A> tester = new Tester<A>(cmd, "-o"); tester.assertOption("o"); tester.assertEnd(Event.Stop.Done.class, 2); tester = new Tester<A>(cmd, "-o a"); tester.assertOption("o", "a"); tester.assertEnd(Event.Stop.Done.class, 4); tester = new Tester<A>(cmd, "-o a b"); tester.assertOption("o", "a"); tester.assertSeparator(); tester.assertEnd(Event.Stop.Unresolved.TooManyArguments.class, 5); }
public void testMethodOptionList() throws Exception { class A { @Command public void main(@Option(names = "o") List<String> o) {} } CommandDescriptor<Instance<A>> cmd = CommandFactory.DEFAULT.create(A.class); // Tester<A> tester = new Tester<A>(cmd, "-o"); tester.assertOption("o"); tester.assertEnd(Event.Stop.Done.class, 2); tester = new Tester<A>(cmd, "-o a"); tester.assertOption("o", "a"); tester.assertEnd(Event.Stop.Done.class, 4); tester = new Tester<A>(cmd, "-o a -o b"); tester.assertOption("o", "a"); tester.assertSeparator(); tester.assertOption("o", "b"); tester.assertEnd(Event.Stop.Done.class, 9); }
public void testImplicitSubordinateOption() throws Exception { class A { @Command public void main(@Option(names = "o") String o) {} } CommandDescriptor<Instance<A>> cmd = CommandFactory.DEFAULT.create(A.class); // Tester<A> tester = new Tester<A>(cmd, "-o foo"); tester.assertOption("o", "foo"); tester.assertEnd(Event.Stop.Done.class, 6); }