DefaultProviderTest.java revision c63fd2224e04bc4c02b416da83b8e210abfe35c4
1package com.beust.jcommander;
2
3import com.beust.jcommander.defaultprovider.PropertyFileDefaultProvider;
4
5import org.testng.Assert;
6import org.testng.annotations.Test;
7
8public class DefaultProviderTest {
9  private static final IDefaultProvider DEFAULT_PROVIDER = new IDefaultProvider() {
10
11    @Override
12    public String getDefaultValueFor(String optionName) {
13      return "-debug".equals(optionName) ? "false" : "42";
14    }
15
16  };
17
18  private ArgsDefault defaultProvider(IDefaultProvider provider, String... args) {
19    ArgsDefault a = new ArgsDefault();
20    JCommander jc = new JCommander(a);
21    jc.setDefaultProvider(provider);
22
23    jc.parse(args);
24    return a;
25  }
26
27  @Test
28  public void defaultProvider1() {
29    ArgsDefault a = defaultProvider(DEFAULT_PROVIDER, "f");
30
31    Assert.assertEquals(a.groups, "42");
32    Assert.assertEquals(a.level, 42);
33    Assert.assertEquals(a.log.intValue(), 42);
34  }
35
36  @Test
37  public void defaultProvider2() {
38    ArgsDefault a = defaultProvider(DEFAULT_PROVIDER, "-groups", "foo", "f");
39
40    Assert.assertEquals(a.groups, "foo");
41    Assert.assertEquals(a.level, 42);
42    Assert.assertEquals(a.log.intValue(), 42);
43  }
44
45  @Test
46  public void defaultProvider3() {
47    ArgsDefault a = defaultProvider(DEFAULT_PROVIDER, "-groups", "foo", "-level", "13", "f");
48
49    Assert.assertEquals(a.groups, "foo");
50    Assert.assertEquals(a.level, 13);
51    Assert.assertEquals(a.log.intValue(), 42);
52  }
53
54  @Test
55  public void defaultProvider4() {
56    ArgsDefault a = defaultProvider(DEFAULT_PROVIDER,
57        "-log", "19", "-groups", "foo", "-level", "13", "f");
58
59    Assert.assertEquals(a.groups, "foo");
60    Assert.assertEquals(a.level, 13);
61    Assert.assertEquals(a.log.intValue(), 19);
62  }
63
64  @Test
65  public void propertyFileDefaultProvider1() {
66    ArgsDefault a = defaultProvider(new PropertyFileDefaultProvider(), "f");
67
68    Assert.assertEquals(a.groups, "unit");
69    Assert.assertEquals(a.level, 17);
70    Assert.assertEquals(a.log.intValue(), 18);
71  }
72
73  @Test
74  public void propertyFileDefaultProvider2() {
75    ArgsDefault a = defaultProvider(new PropertyFileDefaultProvider(), "-groups", "foo", "f");
76
77    Assert.assertEquals(a.groups, "foo");
78    Assert.assertEquals(a.level, 17);
79    Assert.assertEquals(a.log.intValue(), 18);
80  }
81
82  @Test
83  public void propertyFileDefaultProvider3() {
84    ArgsDefault a = defaultProvider(new PropertyFileDefaultProvider(),
85        "-groups", "foo", "-level", "13", "f");
86
87    Assert.assertEquals(a.groups, "foo");
88    Assert.assertEquals(a.level, 13);
89    Assert.assertEquals(a.log.intValue(), 18);
90  }
91
92  @Test
93  public void propertyFileDefaultProvider4() {
94    ArgsDefault a = defaultProvider(new PropertyFileDefaultProvider(),
95        "-log", "19", "-groups", "foo", "-level", "13", "f");
96
97    Assert.assertEquals(a.groups, "foo");
98    Assert.assertEquals(a.level, 13);
99    Assert.assertEquals(a.log.intValue(), 19);
100  }
101
102}
103