@Test public void testThatArgumentsAreOrdered() throws CLIException { cli.addArgument(new TypedArgument<String>().setIndex(1).setArgName("1").setType(String.class)); cli.addArgument(new TypedArgument<String>().setIndex(0).setArgName("2").setType(String.class)); cli.addArgument(new TypedArgument<String>().setIndex(2).setArgName("3").setType(String.class)); assertThat(cli.getArguments()).hasSize(3); evaluated = cli.parse(Arrays.asList("a", "b", "c")); Iterator<Argument> iterator = cli.getArguments().iterator(); assertThat(iterator.next().getArgName()).isEqualTo("2"); assertThat(iterator.next().getArgName()).isEqualTo("1"); assertThat(iterator.next().getArgName()).isEqualTo("3"); assertThat((String) evaluated.getArgumentValue("2")).isEqualTo("a"); assertThat((String) evaluated.getArgumentValue("1")).isEqualTo("b"); assertThat((String) evaluated.getArgumentValue("3")).isEqualTo("c"); }
@SuppressWarnings("unchecked") private static io.vertx.core.cli.Argument createArgument(Method method) { TypedArgument arg = new TypedArgument();
@Test(expected = CLIException.class) public void testThatArgumentWithTheSameIndexAreDetected() throws CLIException { cli.addArgument(new TypedArgument<String>().setIndex(0).setType(String.class)); cli.addArgument(new TypedArgument<String>().setIndex(0).setType(String.class)); evaluated = cli.parse(Arrays.asList("a", "b")); }
@Test public void testThatDefaultValuesAreHandled() throws CLIException { cli.addArgument(new TypedArgument<String>().setIndex(0).setArgName("1").setType(String.class) .setDefaultValue("hello").setRequired(false)); evaluated = cli.parse(Collections.singletonList("a")); assertThat((String) evaluated.getArgumentValue(0)).isEqualTo("a"); evaluated = cli.parse(Collections.emptyList()); assertThat((String) evaluated.getArgumentValue(0)).isEqualTo("hello"); }
@Test public void testThatInvalidValuesAsDefaultValueAreReported() throws CLIException { try { cli.addArgument(new TypedArgument<Integer>() .setIndex(0).setArgName("1").setType(Integer.class).setDefaultValue("a")); } catch (IllegalArgumentException e) { assertThat(e.getCause()).isInstanceOf(InvalidValueException.class); InvalidValueException cause = (InvalidValueException) e.getCause(); assertThat(cause.getArgument().getIndex()).isEqualTo(0); assertThat(cause.getArgument().getArgName()).isEqualTo("1"); assertThat(cause.getValue()).isEqualTo("a"); } }
@Test public void testThatInvalidValuesAreReported() throws CLIException { cli.addArgument(new TypedArgument<Integer>() .setIndex(0).setArgName("1").setType(Integer.class)); try { evaluated = cli.parse(Collections.singletonList("a")); evaluated.getArgumentValue(0); fail("Exception expected"); } catch (CLIException e) { assertThat(e).isInstanceOf(InvalidValueException.class); InvalidValueException cause = (InvalidValueException) e; assertThat(cause.getArgument().getIndex()).isEqualTo(0); assertThat(cause.getArgument().getArgName()).isEqualTo("1"); assertThat(cause.getValue()).isEqualTo("a"); } }
@Test public void testThatConvertersAreHandled() throws CLIException { final TypedArgument<Person4> arg = new TypedArgument<Person4>() .setIndex(0).setArgName("person").setType(Person4.class) .setConverter(ReflectionUtils.newInstance(Person4Converter.class)) .setDefaultValue("Bill,Ballantine") .setRequired(false); cli.addArgument(arg); evaluated = cli.parse(Collections.singletonList("Bob,Morane")); Person4 person = evaluated.getArgumentValue("person"); assertThat(person.first).isEqualTo("Bob"); assertThat(person.last).isEqualTo("Morane"); evaluated = cli.parse(Collections.emptyList()); person = evaluated.getArgumentValue("person"); assertThat(person.first).isEqualTo("Bill"); assertThat(person.last).isEqualTo("Ballantine"); }
@Test public void testMixedOfRequiredAnOptionalArguments() throws CLIException { cli.addArgument(new TypedArgument<String>().setIndex(0).setType(String.class) .setRequired(true)); cli.addArgument(new TypedArgument<String>().setIndex(1).setType(String.class) .setRequired(false)); try { evaluated = cli.parse(Collections.emptyList()); fail("Missing Value Exception expected"); } catch (MissingValueException e) { // OK } evaluated = cli.parse(Collections.singletonList("a")); assertThat((String) evaluated.getArgumentValue(0)).isEqualTo("a"); assertThat((String) evaluated.getArgumentValue(1)).isNull(); evaluated = cli.parse(Arrays.asList("a", "b")); assertThat((String) evaluated.getArgumentValue(0)).isEqualTo("a"); assertThat((String) evaluated.getArgumentValue(1)).isEqualTo("b"); }
@Test public void testThatMissingArgumentsAreDetected() throws CLIException { cli.addArgument(new TypedArgument<String>().setIndex(0).setType(String.class) .setRequired(true)); cli.addArgument(new TypedArgument<String>().setIndex(1).setType(String.class) .setRequired(true)); try { evaluated = cli.parse(Collections.emptyList()); fail("Missing Value Exception expected"); } catch (MissingValueException e) { // OK } try { evaluated = cli.parse(Collections.singletonList("a")); fail("Missing Value Exception expected"); } catch (MissingValueException e) { // OK } evaluated = cli.parse(Arrays.asList("a", "b")); }
}; cli.addOptions(Arrays.asList(options)); cli.addArgument(new TypedArgument<String>().setType(String.class) .setArgName("verticle").setIndex(0).setRequired(false));
@Test public void testThatArgumentsAreOrdered() throws CLIException { cli.addArgument(new TypedArgument<String>().setIndex(1).setArgName("1").setType(String.class)); cli.addArgument(new TypedArgument<String>().setIndex(0).setArgName("2").setType(String.class)); cli.addArgument(new TypedArgument<String>().setIndex(2).setArgName("3").setType(String.class)); assertThat(cli.getArguments()).hasSize(3); evaluated = cli.parse(Arrays.asList("a", "b", "c")); Iterator<Argument> iterator = cli.getArguments().iterator(); assertThat(iterator.next().getArgName()).isEqualTo("2"); assertThat(iterator.next().getArgName()).isEqualTo("1"); assertThat(iterator.next().getArgName()).isEqualTo("3"); assertThat((String) evaluated.getArgumentValue("2")).isEqualTo("a"); assertThat((String) evaluated.getArgumentValue("1")).isEqualTo("b"); assertThat((String) evaluated.getArgumentValue("3")).isEqualTo("c"); }
@Test(expected = CLIException.class) public void testThatArgumentWithTheSameIndexAreDetected() throws CLIException { cli.addArgument(new TypedArgument<String>().setIndex(0).setType(String.class)); cli.addArgument(new TypedArgument<String>().setIndex(0).setType(String.class)); evaluated = cli.parse(Arrays.asList("a", "b")); }
@SuppressWarnings("unchecked") private static io.vertx.core.cli.Argument createArgument(Method method) { TypedArgument arg = new TypedArgument();
@Test public void testThatDefaultValuesAreHandled() throws CLIException { cli.addArgument(new TypedArgument<String>().setIndex(0).setArgName("1").setType(String.class) .setDefaultValue("hello").setRequired(false)); evaluated = cli.parse(Collections.singletonList("a")); assertThat((String) evaluated.getArgumentValue(0)).isEqualTo("a"); evaluated = cli.parse(Collections.emptyList()); assertThat((String) evaluated.getArgumentValue(0)).isEqualTo("hello"); }
@Test public void testThatInvalidValuesAsDefaultValueAreReported() throws CLIException { try { cli.addArgument(new TypedArgument<Integer>() .setIndex(0).setArgName("1").setType(Integer.class).setDefaultValue("a")); } catch (IllegalArgumentException e) { assertThat(e.getCause()).isInstanceOf(InvalidValueException.class); InvalidValueException cause = (InvalidValueException) e.getCause(); assertThat(cause.getArgument().getIndex()).isEqualTo(0); assertThat(cause.getArgument().getArgName()).isEqualTo("1"); assertThat(cause.getValue()).isEqualTo("a"); } }
@Test public void testThatInvalidValuesAreReported() throws CLIException { cli.addArgument(new TypedArgument<Integer>() .setIndex(0).setArgName("1").setType(Integer.class)); try { evaluated = cli.parse(Collections.singletonList("a")); evaluated.getArgumentValue(0); fail("Exception expected"); } catch (CLIException e) { assertThat(e).isInstanceOf(InvalidValueException.class); InvalidValueException cause = (InvalidValueException) e; assertThat(cause.getArgument().getIndex()).isEqualTo(0); assertThat(cause.getArgument().getArgName()).isEqualTo("1"); assertThat(cause.getValue()).isEqualTo("a"); } }
@Test public void testThatConvertersAreHandled() throws CLIException { final TypedArgument<Person4> arg = new TypedArgument<Person4>() .setIndex(0).setArgName("person").setType(Person4.class) .setConverter(ReflectionUtils.newInstance(Person4Converter.class)) .setDefaultValue("Bill,Ballantine") .setRequired(false); cli.addArgument(arg); evaluated = cli.parse(Collections.singletonList("Bob,Morane")); Person4 person = evaluated.getArgumentValue("person"); assertThat(person.first).isEqualTo("Bob"); assertThat(person.last).isEqualTo("Morane"); evaluated = cli.parse(Collections.emptyList()); person = evaluated.getArgumentValue("person"); assertThat(person.first).isEqualTo("Bill"); assertThat(person.last).isEqualTo("Ballantine"); }
@Test public void testMixedOfRequiredAnOptionalArguments() throws CLIException { cli.addArgument(new TypedArgument<String>().setIndex(0).setType(String.class) .setRequired(true)); cli.addArgument(new TypedArgument<String>().setIndex(1).setType(String.class) .setRequired(false)); try { evaluated = cli.parse(Collections.emptyList()); fail("Missing Value Exception expected"); } catch (MissingValueException e) { // OK } evaluated = cli.parse(Collections.singletonList("a")); assertThat((String) evaluated.getArgumentValue(0)).isEqualTo("a"); assertThat((String) evaluated.getArgumentValue(1)).isNull(); evaluated = cli.parse(Arrays.asList("a", "b")); assertThat((String) evaluated.getArgumentValue(0)).isEqualTo("a"); assertThat((String) evaluated.getArgumentValue(1)).isEqualTo("b"); }
@Test public void testThatMissingArgumentsAreDetected() throws CLIException { cli.addArgument(new TypedArgument<String>().setIndex(0).setType(String.class) .setRequired(true)); cli.addArgument(new TypedArgument<String>().setIndex(1).setType(String.class) .setRequired(true)); try { evaluated = cli.parse(Collections.emptyList()); fail("Missing Value Exception expected"); } catch (MissingValueException e) { // OK } try { evaluated = cli.parse(Collections.singletonList("a")); fail("Missing Value Exception expected"); } catch (MissingValueException e) { // OK } evaluated = cli.parse(Arrays.asList("a", "b")); }
}; cli.addOptions(Arrays.asList(options)); cli.addArgument(new TypedArgument<String>().setType(String.class) .setArgName("verticle").setIndex(0).setRequired(false));