jcommander icon indicating copy to clipboard operation
jcommander copied to clipboard

setCaseSensitiveOptions does not work for parameters with separators

Open saganami opened this issue 8 years ago • 0 comments

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";
  }
}

saganami avatar Aug 29 '17 14:08 saganami