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