jcommander
jcommander copied to clipboard
setCaseSensitiveOptions does not work for parameters with separators
setCaseSensitiveOptions does not work for parameters like someParameter2=2 Example unit Test:
import org.junit.Assert;
import org.junit.Test;
import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters;
public class JCommanderTest {
private String[] testValues = {"someParameter1=1", "someparameter2=2", "someparameter3", "3"};
private TestJobRunnerArgs testJobRunnerArgs = new TestJobRunnerArgs();
@Test
public void testWithoutCaseSensetive() throws Exception {
final JCommander jCommander = JCommander.newBuilder()
.acceptUnknownOptions(true)
.addObject(testJobRunnerArgs)
.build();
jCommander.setCaseSensitiveOptions(false);
jCommander.parse(testValues);
Assert.assertEquals("2", testJobRunnerArgs.someParameter2);
}
@Parameters(separators = "=", commandDescription = "Some command")
private class TestJobRunnerArgs {
@Parameter(names = "someParameter2", description = "Some Description 2")
private String someParameter2 = "defaultValue 2";
}
}