Wrong arity for default boolean type
- Set boolean type arity zero or more as default. - Fixes #675
This commit is contained in:
@@ -157,10 +157,10 @@ public class StandardMethodTargetRegistrar implements MethodTargetRegistrar {
|
||||
}
|
||||
else {
|
||||
if (ClassUtils.isAssignable(boolean.class, parameterType)) {
|
||||
optionSpec.arity(OptionArity.ZERO);
|
||||
optionSpec.arity(OptionArity.ZERO_OR_ONE);
|
||||
}
|
||||
else if (ClassUtils.isAssignable(Boolean.class, parameterType)) {
|
||||
optionSpec.arity(OptionArity.ZERO);
|
||||
optionSpec.arity(OptionArity.ZERO_OR_ONE);
|
||||
}
|
||||
}
|
||||
if (!ObjectUtils.nullSafeEquals(so.defaultValue(), ShellOption.NONE)
|
||||
@@ -198,10 +198,10 @@ public class StandardMethodTargetRegistrar implements MethodTargetRegistrar {
|
||||
.required()
|
||||
.position(mp.getParameterIndex());
|
||||
if (ClassUtils.isAssignable(boolean.class, parameterType)) {
|
||||
optionSpec.arity(OptionArity.ZERO);
|
||||
optionSpec.arity(OptionArity.ZERO_OR_ONE);
|
||||
}
|
||||
else if (ClassUtils.isAssignable(Boolean.class, parameterType)) {
|
||||
optionSpec.arity(OptionArity.ZERO);
|
||||
optionSpec.arity(OptionArity.ZERO_OR_ONE);
|
||||
}
|
||||
else {
|
||||
optionSpec.arity(OptionArity.EXACTLY_ONE);
|
||||
|
||||
@@ -417,16 +417,29 @@ public class StandardMethodTargetRegistrarTests {
|
||||
assertThat(catalog.getRegistrations().get("foo1").getOptions()).hasSize(1);
|
||||
assertThat(catalog.getRegistrations().get("foo1").getOptions().get(0).getDefaultValue()).isEqualTo("false");
|
||||
assertThat(catalog.getRegistrations().get("foo1").getOptions().get(0).isRequired()).isFalse();
|
||||
assertThat(catalog.getRegistrations().get("foo1").getOptions().get(0).getArityMin()).isEqualTo(0);
|
||||
assertThat(catalog.getRegistrations().get("foo1").getOptions().get(0).getArityMax()).isEqualTo(1);
|
||||
|
||||
assertThat(catalog.getRegistrations().get("foo2")).isNotNull();
|
||||
assertThat(catalog.getRegistrations().get("foo2").getOptions()).hasSize(1);
|
||||
assertThat(catalog.getRegistrations().get("foo2").getOptions().get(0).getDefaultValue()).isEqualTo("true");
|
||||
assertThat(catalog.getRegistrations().get("foo2").getOptions().get(0).isRequired()).isFalse();
|
||||
assertThat(catalog.getRegistrations().get("foo2").getOptions().get(0).getArityMin()).isEqualTo(0);
|
||||
assertThat(catalog.getRegistrations().get("foo2").getOptions().get(0).getArityMax()).isEqualTo(1);
|
||||
|
||||
assertThat(catalog.getRegistrations().get("foo3")).isNotNull();
|
||||
assertThat(catalog.getRegistrations().get("foo3").getOptions()).hasSize(1);
|
||||
assertThat(catalog.getRegistrations().get("foo3").getOptions().get(0).isRequired()).isFalse();
|
||||
assertThat(catalog.getRegistrations().get("foo3").getOptions().get(0).getDefaultValue()).isEqualTo("false");
|
||||
assertThat(catalog.getRegistrations().get("foo3").getOptions().get(0).getArityMin()).isEqualTo(0);
|
||||
assertThat(catalog.getRegistrations().get("foo3").getOptions().get(0).getArityMax()).isEqualTo(1);
|
||||
|
||||
assertThat(catalog.getRegistrations().get("foo4")).isNotNull();
|
||||
assertThat(catalog.getRegistrations().get("foo4").getOptions()).hasSize(1);
|
||||
assertThat(catalog.getRegistrations().get("foo4").getOptions().get(0).isRequired()).isTrue();
|
||||
assertThat(catalog.getRegistrations().get("foo4").getOptions().get(0).getDefaultValue()).isNull();
|
||||
assertThat(catalog.getRegistrations().get("foo4").getOptions().get(0).getArityMin()).isEqualTo(0);
|
||||
assertThat(catalog.getRegistrations().get("foo4").getOptions().get(0).getArityMax()).isEqualTo(1);
|
||||
}
|
||||
|
||||
@ShellComponent
|
||||
@@ -443,6 +456,10 @@ public class StandardMethodTargetRegistrarTests {
|
||||
@ShellMethod(value = "foo3")
|
||||
public void foo3(@ShellOption boolean arg1) {
|
||||
}
|
||||
|
||||
@ShellMethod(value = "foo4")
|
||||
public void foo4(boolean arg1) {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user