Skip to content

Commit

Permalink
#571 add ArgSpec tests
Browse files Browse the repository at this point in the history
  • Loading branch information
remkop committed Dec 20, 2018
1 parent aac44f0 commit a40f150
Showing 1 changed file with 81 additions and 0 deletions.
81 changes: 81 additions & 0 deletions src/test/java/picocli/CommandLineModelTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -728,6 +728,16 @@ public void testOptionSpecRequiresAtLeastOneName() throws Exception {
}
}

@Test
public void testOptionSpecRequiresNonEmptyName() throws Exception {
try {
OptionSpec.builder("").build();
fail("Expected exception");
} catch (InitializationException ex) {
assertEquals("Invalid names: []", ex.getMessage());
}
}

@Test
public void testConversion_TODO() {
// TODO convertion with aux types (abstract field types, generic map with and without explicit type attribute etc)
Expand Down Expand Up @@ -2129,6 +2139,17 @@ public void testArgSpecSetterRethrowsPicocliException() {
}
}

@Test
public void testArgSpecSetValueCallsSetter() {
final Object[] newVal = new Object[1];
ISetter setter = new ISetter() {
public <T> T set(T value) throws Exception { newVal[0] = value; return null; }
};
PositionalParamSpec positional = PositionalParamSpec.builder().setter(setter).build();
positional.setValue("abc");
assertEquals("abc", newVal[0]);
}

@Test
public void testArgSpecSetterWrapNonPicocliException() {
final Exception expected = new Exception("boom");
Expand Down Expand Up @@ -2191,4 +2212,64 @@ public void testArgSpecSplitUnbalancedQuotedValueDebug() {

assertArrayEquals(new String[] {"\"abc\\\"", "def"}, values);
}

@Test
public void testArgSpecEquals() {
PositionalParamSpec.Builder positional = PositionalParamSpec.builder()
.arity("1")
.hideParamSyntax(true)
.required(true)
.splitRegex(";")
.description("desc")
.descriptionKey("key")
.auxiliaryTypes(Integer.class);

PositionalParamSpec p1 = positional.build();
assertEquals(p1, p1);
assertEquals(p1, positional.build());
assertNotEquals(p1, positional.arity("2").build());
assertNotEquals(p1, positional.arity("1").hideParamSyntax(false).build());
assertNotEquals(p1, positional.hideParamSyntax(true).required(false).build());
assertNotEquals(p1, positional.required(true).splitRegex(",").build());
assertNotEquals(p1, positional.splitRegex(";").description("xyz").build());
assertNotEquals(p1, positional.description("desc").descriptionKey("XX").build());
assertNotEquals(p1, positional.descriptionKey("key").auxiliaryTypes(Short.class).build());
assertEquals(p1, positional.auxiliaryTypes(Integer.class).build());
}

@Test
public void testArgSpecBuilderDescriptionKey() {
PositionalParamSpec.Builder positional = PositionalParamSpec.builder()
.descriptionKey("key");

assertEquals("key", positional.descriptionKey());
assertEquals("xxx", positional.descriptionKey("xxx").descriptionKey());
}

@Test
public void testArgSpecBuilderHideParamSyntax() {
PositionalParamSpec.Builder positional = PositionalParamSpec.builder()
.hideParamSyntax(true);

assertEquals(true, positional.hideParamSyntax());
assertEquals(false, positional.hideParamSyntax(false).hideParamSyntax());
}

@Test
public void testArgSpecBuilderHasInitialValue() {
PositionalParamSpec.Builder positional = PositionalParamSpec.builder()
.hasInitialValue(true);

assertEquals(true, positional.hasInitialValue());
assertEquals(false, positional.hasInitialValue(false).hasInitialValue());
}

@Test
public void testArgSpecBuilderCompletionCandidates() {
List<String> candidates = Arrays.asList("a", "b");
PositionalParamSpec.Builder positional = PositionalParamSpec.builder()
.completionCandidates(candidates);

assertEquals(candidates, positional.completionCandidates());
}
}

0 comments on commit a40f150

Please sign in to comment.