JCommanderTest.java revision c1d51baff4fb68b90b2f9cdfea512c84ab94eb42
158a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust/** 258a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * Copyright (C) 2010 the original author or authors. 358a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * See the notice.md file distributed with this work for additional 458a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * information regarding copyright ownership. 558a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * 658a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * Licensed under the Apache License, Version 2.0 (the "License"); 758a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * you may not use this file except in compliance with the License. 858a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * You may obtain a copy of the License at 958a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * 1058a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * http://www.apache.org/licenses/LICENSE-2.0 1158a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * 1258a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * Unless required by applicable law or agreed to in writing, software 1358a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * distributed under the License is distributed on an "AS IS" BASIS, 1458a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1558a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * See the License for the specific language governing permissions and 1658a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * limitations under the License. 1758a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust */ 1858a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust 19e9229f961b3a5799f6798369afe26dec7960249Cedric Beustpackage com.beust.jcommander; 20e9229f961b3a5799f6798369afe26dec7960249Cedric Beust 21103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.Args1; 22103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.Args2; 239c170b3038460fde4999afc7af7bb5d31e3f1e47Cedric Beustimport com.beust.jcommander.args.ArgsLongDescription; 24103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.ArgsArityString; 25103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.ArgsBooleanArity; 26b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beustimport com.beust.jcommander.args.ArgsBooleanArity0; 27103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.ArgsConverter; 28103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.ArgsI18N1; 29103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.ArgsI18N2; 30103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.ArgsI18N2New; 31b7e9d9cfe060b02437f867716a8902cc466b0776Guillaume Sauthierimport com.beust.jcommander.args.ArgsInherited; 32103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.ArgsMaster; 33103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.ArgsMultipleUnparsed; 34103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.ArgsPrivate; 3572cacbaebb04753ddba0c8dc0f9328310e8cb222Cedric Beustimport com.beust.jcommander.args.ArgsRequired; 36103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.ArgsSlave; 37103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.ArgsSlaveBogus; 38e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beustimport com.beust.jcommander.args.Arity1; 39103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.SeparatorColon; 40103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.SeparatorEqual; 41103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.args.SeparatorMixed; 42d556f4a527306a9769776d1cbb2fccac98618bc9Cedric Beustimport com.beust.jcommander.args.SlashSeparator; 43dda1651c0b74aa9e8d225096f1d531871460e692Cedric Beustimport com.beust.jcommander.command.CommandAdd; 44dda1651c0b74aa9e8d225096f1d531871460e692Cedric Beustimport com.beust.jcommander.command.CommandCommit; 45dda1651c0b74aa9e8d225096f1d531871460e692Cedric Beustimport com.beust.jcommander.command.CommandMain; 46eca9dc8ab293c10f16a104e107b402b61c4c76deCedric Beust 47b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beustimport org.testng.Assert; 48b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beustimport org.testng.annotations.DataProvider; 49b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beustimport org.testng.annotations.Test; 50b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust 51e9229f961b3a5799f6798369afe26dec7960249Cedric Beustimport java.util.Arrays; 524c020da73b8b25773bba8553263cf1954c718573Cedric Beustimport java.util.Iterator; 539b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beustimport java.util.Locale; 544c020da73b8b25773bba8553263cf1954c718573Cedric Beustimport java.util.Map; 559b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beustimport java.util.ResourceBundle; 56e9229f961b3a5799f6798369afe26dec7960249Cedric Beust 57e9229f961b3a5799f6798369afe26dec7960249Cedric Beustpublic class JCommanderTest { 58e9229f961b3a5799f6798369afe26dec7960249Cedric Beust @Test 59e9229f961b3a5799f6798369afe26dec7960249Cedric Beust public void simpleArgs() { 6094fca5e6d4506c5b070b17db4063ad360a85d8fcCedric Beust Args1 args = new Args1(); 61cb91ef843854605fcde3b84ce91ec4d46205a47aCedric Beust String[] argv = { "-debug", "-log", "2", "-groups", "unit", "a", "b", "c" }; 6294fca5e6d4506c5b070b17db4063ad360a85d8fcCedric Beust new JCommander(args, argv); 63e9229f961b3a5799f6798369afe26dec7960249Cedric Beust 64cb91ef843854605fcde3b84ce91ec4d46205a47aCedric Beust Assert.assertTrue(args.debug); 6594fca5e6d4506c5b070b17db4063ad360a85d8fcCedric Beust Assert.assertEquals(args.verbose.intValue(), 2); 6694fca5e6d4506c5b070b17db4063ad360a85d8fcCedric Beust Assert.assertEquals(args.groups, "unit"); 6794fca5e6d4506c5b070b17db4063ad360a85d8fcCedric Beust Assert.assertEquals(args.parameters, Arrays.asList("a", "b", "c")); 68e9229f961b3a5799f6798369afe26dec7960249Cedric Beust } 69696418a94157048544c44f405d757ede86eec926Cedric Beust 70696418a94157048544c44f405d757ede86eec926Cedric Beust /** 71696418a94157048544c44f405d757ede86eec926Cedric Beust * Make sure that if there are args with multiple names (e.g. "-log" and "-verbose"), 72696418a94157048544c44f405d757ede86eec926Cedric Beust * the usage will only display it once. 73696418a94157048544c44f405d757ede86eec926Cedric Beust */ 74696418a94157048544c44f405d757ede86eec926Cedric Beust @Test 75696418a94157048544c44f405d757ede86eec926Cedric Beust public void repeatedArgs() { 7694fca5e6d4506c5b070b17db4063ad360a85d8fcCedric Beust Args1 args = new Args1(); 77696418a94157048544c44f405d757ede86eec926Cedric Beust String[] argv = { "-log", "2" }; 7894fca5e6d4506c5b070b17db4063ad360a85d8fcCedric Beust JCommander jc = new JCommander(args, argv); 794312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust Assert.assertEquals(jc.getParameters().size(), 4); 80696418a94157048544c44f405d757ede86eec926Cedric Beust } 81696418a94157048544c44f405d757ede86eec926Cedric Beust 82dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust /** 83dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust * Not specifying a required option should throw an exception. 84dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust */ 85dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust @Test(expectedExceptions = ParameterException.class) 866734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust public void requiredFields1Fail() { 8794fca5e6d4506c5b070b17db4063ad360a85d8fcCedric Beust Args1 args = new Args1(); 88dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust String[] argv = { "-debug" }; 8994fca5e6d4506c5b070b17db4063ad360a85d8fcCedric Beust new JCommander(args, argv); 90dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust } 91dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust 92dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust /** 93dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust * Required options with multiple names should work with all names. 94dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust */ 95c2559dfb9a77c3c8223c5cfb1eac5cc6bbba488eCedric Beust private void multipleNames(String option) { 9694fca5e6d4506c5b070b17db4063ad360a85d8fcCedric Beust Args1 args = new Args1(); 97c2559dfb9a77c3c8223c5cfb1eac5cc6bbba488eCedric Beust String[] argv = { option, "2" }; 9894fca5e6d4506c5b070b17db4063ad360a85d8fcCedric Beust new JCommander(args, argv); 99c2559dfb9a77c3c8223c5cfb1eac5cc6bbba488eCedric Beust Assert.assertEquals(args.verbose.intValue(), 2); 100c2559dfb9a77c3c8223c5cfb1eac5cc6bbba488eCedric Beust } 101c2559dfb9a77c3c8223c5cfb1eac5cc6bbba488eCedric Beust 102c2559dfb9a77c3c8223c5cfb1eac5cc6bbba488eCedric Beust @Test 103c2559dfb9a77c3c8223c5cfb1eac5cc6bbba488eCedric Beust public void multipleNames1() { 104c2559dfb9a77c3c8223c5cfb1eac5cc6bbba488eCedric Beust multipleNames("-log"); 105dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust } 106dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust 107dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust @Test 108c2559dfb9a77c3c8223c5cfb1eac5cc6bbba488eCedric Beust public void multipleNames2() { 109c2559dfb9a77c3c8223c5cfb1eac5cc6bbba488eCedric Beust multipleNames("-verbose"); 110dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust } 111dc76d5707bd6f5b761772203e9d7c285846e8362Cedric Beust 1126734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust private void i18n1(String bundleName, Locale locale, String expectedString) { 1136734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust ResourceBundle bundle = locale != null ? ResourceBundle.getBundle(bundleName, locale) 1149b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust : null; 1159b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust 1166734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust ArgsI18N1 i18n = new ArgsI18N1(); 1179b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust String[] argv = { "-host", "localhost" }; 1189b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust JCommander jc = new JCommander(i18n, bundle, argv); 11914516e91e6be4ba1c3e7b573ea450e5c59925ecfCedric Beust// jc.usage(); 1209b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust 1219b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust ParameterDescription pd = jc.getParameters().get(0); 1229b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust Assert.assertEquals(pd.getDescription(), expectedString); 1239b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust } 1249b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust 1259b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust @Test 1269b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust public void i18nNoLocale() { 1276734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust i18n1("MessageBundle", null, "Host"); 1289b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust } 1299b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust 1309b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust @Test 1319b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust public void i18nUsLocale() { 1326734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust i18n1("MessageBundle", new Locale("en", "US"), "Host"); 1339b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust } 1349b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust 1359b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust @Test 1369b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust public void i18nFrLocale() { 137c27a04a2e10667dff4390b25fa4224b58b291ca0David Gageot i18n1("MessageBundle", new Locale("fr", "FR"), "Hôte"); 1386734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust } 1396734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust 140b8010b01b766d131076f7343be5e36e7014319e3Cedric Beust private void i18n2(Object i18n) { 1416734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust String[] argv = { "-host", "localhost" }; 1426734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust Locale.setDefault(new Locale("fr", "FR")); 1436734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust JCommander jc = new JCommander(i18n, argv); 1446734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust ParameterDescription pd = jc.getParameters().get(0); 145c27a04a2e10667dff4390b25fa4224b58b291ca0David Gageot Assert.assertEquals(pd.getDescription(), "Hôte"); 1469b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust } 1479b9a740c04d97ccbb5c643e55775cf9e9e6fc2d7Cedric Beust 148d4e3897873895131ae5ebef4e9552b15a9e804ddCedric Beust @Test 149b8010b01b766d131076f7343be5e36e7014319e3Cedric Beust public void i18nWithResourceAnnotation() { 150b8010b01b766d131076f7343be5e36e7014319e3Cedric Beust i18n2(new ArgsI18N2()); 151b8010b01b766d131076f7343be5e36e7014319e3Cedric Beust } 152b8010b01b766d131076f7343be5e36e7014319e3Cedric Beust 153b8010b01b766d131076f7343be5e36e7014319e3Cedric Beust @Test 154b8010b01b766d131076f7343be5e36e7014319e3Cedric Beust public void i18nWithResourceAnnotationNew() { 155b8010b01b766d131076f7343be5e36e7014319e3Cedric Beust i18n2(new ArgsI18N2New()); 156b8010b01b766d131076f7343be5e36e7014319e3Cedric Beust } 157b8010b01b766d131076f7343be5e36e7014319e3Cedric Beust 158b8010b01b766d131076f7343be5e36e7014319e3Cedric Beust @Test 159d4e3897873895131ae5ebef4e9552b15a9e804ddCedric Beust public void multiObjects() { 160d4e3897873895131ae5ebef4e9552b15a9e804ddCedric Beust ArgsMaster m = new ArgsMaster(); 161d4e3897873895131ae5ebef4e9552b15a9e804ddCedric Beust ArgsSlave s = new ArgsSlave(); 162d4e3897873895131ae5ebef4e9552b15a9e804ddCedric Beust String[] argv = { "-master", "master", "-slave", "slave" }; 163b945b741b5de0510ce39f8c793e31202070ef942Cedric Beust new JCommander(new Object[] { m , s }, argv); 164d4e3897873895131ae5ebef4e9552b15a9e804ddCedric Beust 165d4e3897873895131ae5ebef4e9552b15a9e804ddCedric Beust Assert.assertEquals(m.master, "master"); 166d4e3897873895131ae5ebef4e9552b15a9e804ddCedric Beust Assert.assertEquals(s.slave, "slave"); 167d4e3897873895131ae5ebef4e9552b15a9e804ddCedric Beust } 168d4e3897873895131ae5ebef4e9552b15a9e804ddCedric Beust 1690c0b2226295308797b486e7dcc81d10497ad4886Cedric Beust @Test(expectedExceptions = ParameterException.class) 1706734de3a3b73ec9fe6bbfe4f8ba1da9f57264587Cedric Beust public void multiObjectsWithDuplicatesFail() { 1710c0b2226295308797b486e7dcc81d10497ad4886Cedric Beust ArgsMaster m = new ArgsMaster(); 1720c0b2226295308797b486e7dcc81d10497ad4886Cedric Beust ArgsSlave s = new ArgsSlaveBogus(); 1730c0b2226295308797b486e7dcc81d10497ad4886Cedric Beust String[] argv = { "-master", "master", "-slave", "slave" }; 1740c0b2226295308797b486e7dcc81d10497ad4886Cedric Beust new JCommander(new Object[] { m , s }, argv); 1750c0b2226295308797b486e7dcc81d10497ad4886Cedric Beust } 1760c0b2226295308797b486e7dcc81d10497ad4886Cedric Beust 177a21262377768de124914e354e428ed6860828949Cedric Beust @Test 178f3b82e196a622a959374d7588688e74fe852a512Cedric Beust public void arityString() { 179f3b82e196a622a959374d7588688e74fe852a512Cedric Beust ArgsArityString args = new ArgsArityString(); 180a21262377768de124914e354e428ed6860828949Cedric Beust String[] argv = { "-pairs", "pair0", "pair1", "rest" }; 181a21262377768de124914e354e428ed6860828949Cedric Beust new JCommander(args, argv); 182a21262377768de124914e354e428ed6860828949Cedric Beust 183a21262377768de124914e354e428ed6860828949Cedric Beust Assert.assertEquals(args.pairs.size(), 2); 184a21262377768de124914e354e428ed6860828949Cedric Beust Assert.assertEquals(args.pairs.get(0), "pair0"); 185a21262377768de124914e354e428ed6860828949Cedric Beust Assert.assertEquals(args.pairs.get(1), "pair1"); 186a21262377768de124914e354e428ed6860828949Cedric Beust Assert.assertEquals(args.rest.size(), 1); 187a21262377768de124914e354e428ed6860828949Cedric Beust Assert.assertEquals(args.rest.get(0), "rest"); 188a21262377768de124914e354e428ed6860828949Cedric Beust } 189a21262377768de124914e354e428ed6860828949Cedric Beust 190f3b82e196a622a959374d7588688e74fe852a512Cedric Beust @Test(expectedExceptions = ParameterException.class) 191e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust public void arity2Fail() { 192f3b82e196a622a959374d7588688e74fe852a512Cedric Beust ArgsArityString args = new ArgsArityString(); 193f3b82e196a622a959374d7588688e74fe852a512Cedric Beust String[] argv = { "-pairs", "pair0" }; 194f3b82e196a622a959374d7588688e74fe852a512Cedric Beust new JCommander(args, argv); 195f3b82e196a622a959374d7588688e74fe852a512Cedric Beust } 196f3b82e196a622a959374d7588688e74fe852a512Cedric Beust 197cb91ef843854605fcde3b84ce91ec4d46205a47aCedric Beust @Test(expectedExceptions = ParameterException.class) 198cb91ef843854605fcde3b84ce91ec4d46205a47aCedric Beust public void multipleUnparsedFail() { 199cb91ef843854605fcde3b84ce91ec4d46205a47aCedric Beust ArgsMultipleUnparsed args = new ArgsMultipleUnparsed(); 200cb91ef843854605fcde3b84ce91ec4d46205a47aCedric Beust String[] argv = { }; 201cb91ef843854605fcde3b84ce91ec4d46205a47aCedric Beust new JCommander(args, argv); 202cb91ef843854605fcde3b84ce91ec4d46205a47aCedric Beust } 203cb91ef843854605fcde3b84ce91ec4d46205a47aCedric Beust 2045f00acc5afee348e6f3b3741d5e53ca01e508b3eCedric Beust @Test 2055f00acc5afee348e6f3b3741d5e53ca01e508b3eCedric Beust public void privateArgs() { 2065f00acc5afee348e6f3b3741d5e53ca01e508b3eCedric Beust ArgsPrivate args = new ArgsPrivate(); 2075f00acc5afee348e6f3b3741d5e53ca01e508b3eCedric Beust new JCommander(args, "-verbose", "3"); 2085f00acc5afee348e6f3b3741d5e53ca01e508b3eCedric Beust Assert.assertEquals(args.getVerbose().intValue(), 3); 2095f00acc5afee348e6f3b3741d5e53ca01e508b3eCedric Beust } 2105f00acc5afee348e6f3b3741d5e53ca01e508b3eCedric Beust 2115a8d2cda56e06eccac04f985cfb6df4886cb270eCedric Beust @Test 2125a8d2cda56e06eccac04f985cfb6df4886cb270eCedric Beust public void converterArgs() { 2135a8d2cda56e06eccac04f985cfb6df4886cb270eCedric Beust ArgsConverter args = new ArgsConverter(); 2145a8d2cda56e06eccac04f985cfb6df4886cb270eCedric Beust String fileName = "a"; 2155a8d2cda56e06eccac04f985cfb6df4886cb270eCedric Beust new JCommander(args, "-file", "/tmp/" + fileName, "-days", "Tuesday,Thursday"); 2165a8d2cda56e06eccac04f985cfb6df4886cb270eCedric Beust Assert.assertEquals(args.file.getName(), fileName); 2175a8d2cda56e06eccac04f985cfb6df4886cb270eCedric Beust Assert.assertEquals(args.days.size(), 2); 2185a8d2cda56e06eccac04f985cfb6df4886cb270eCedric Beust Assert.assertEquals(args.days.get(0), "Tuesday"); 2195a8d2cda56e06eccac04f985cfb6df4886cb270eCedric Beust Assert.assertEquals(args.days.get(1), "Thursday"); 2205a8d2cda56e06eccac04f985cfb6df4886cb270eCedric Beust } 2215a8d2cda56e06eccac04f985cfb6df4886cb270eCedric Beust 222b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust private void argsBoolean1(String[] params, Boolean expected) { 223d3b9e34aed415eba172befec79d2261c3ac38123Cedric Beust ArgsBooleanArity args = new ArgsBooleanArity(); 224b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust new JCommander(args, params); 225b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust Assert.assertEquals(args.debug, expected); 226b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust } 227b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust 228b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust private void argsBoolean0(String[] params, Boolean expected) { 229b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust ArgsBooleanArity0 args = new ArgsBooleanArity0(); 230b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust new JCommander(args, params); 231b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust Assert.assertEquals(args.debug, expected); 232b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust } 233b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust 234b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust @Test 235b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust public void booleanArity1() { 236b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust argsBoolean1(new String[] {}, Boolean.FALSE); 237b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust argsBoolean1(new String[] { "-debug", "true" }, Boolean.TRUE); 238b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust } 239b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust 240c1d51baff4fb68b90b2f9cdfea512c84ab94eb42Cedric Beust @Test(enabled = false, 241c1d51baff4fb68b90b2f9cdfea512c84ab94eb42Cedric Beust description = "Disabled because of JCommander -> TestNG -> JCommander dependency") 242b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust public void booleanArity0() { 243b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust argsBoolean0(new String[] {}, Boolean.FALSE); 244b828856eb3f2d04ebc118babb4068419fce5b3bdCedric Beust argsBoolean0(new String[] { "-debug"}, Boolean.TRUE); 245d3b9e34aed415eba172befec79d2261c3ac38123Cedric Beust } 246d3b9e34aed415eba172befec79d2261c3ac38123Cedric Beust 2474312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust @Test(expectedExceptions = ParameterException.class) 2484312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust public void badParameterShouldThrowParameter1Exception() { 2494312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust Args1 args = new Args1(); 2504312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust String[] argv = { "-log", "foo" }; 2514312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust new JCommander(args, argv); 2524312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust } 2534312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust 2544312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust 2554312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust @Test(expectedExceptions = ParameterException.class) 2564312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust public void badParameterShouldThrowParameter2Exception() { 2574312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust Args1 args = new Args1(); 2584312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust String[] argv = { "-long", "foo" }; 2594312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust new JCommander(args, argv); 2604312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust } 2614312bccb3787db4e24d19c16c5786bf2a503a9b9Cedric Beust 262b2b58d4e3845c1eaa85d7a63cf4632f58e634056Cedric Beust @Test 263b2b58d4e3845c1eaa85d7a63cf4632f58e634056Cedric Beust public void listParameters() { 264b2b58d4e3845c1eaa85d7a63cf4632f58e634056Cedric Beust Args2 a = new Args2(); 265b2b58d4e3845c1eaa85d7a63cf4632f58e634056Cedric Beust String[] argv = {"-log", "2", "-groups", "unit", "a", "b", "c", "-host", "host2"}; 266b2b58d4e3845c1eaa85d7a63cf4632f58e634056Cedric Beust new JCommander(a, argv); 267b2b58d4e3845c1eaa85d7a63cf4632f58e634056Cedric Beust Assert.assertEquals(a.verbose.intValue(), 2); 268b2b58d4e3845c1eaa85d7a63cf4632f58e634056Cedric Beust Assert.assertEquals(a.groups, "unit"); 269b2b58d4e3845c1eaa85d7a63cf4632f58e634056Cedric Beust Assert.assertEquals(a.hosts, Arrays.asList("host2")); 270b2b58d4e3845c1eaa85d7a63cf4632f58e634056Cedric Beust Assert.assertEquals(a.parameters, Arrays.asList("a", "b", "c")); 271b2b58d4e3845c1eaa85d7a63cf4632f58e634056Cedric Beust } 27285866a95d6479be731596a838b6f5e793a341f5bCedric Beust 27385866a95d6479be731596a838b6f5e793a341f5bCedric Beust @Test 274fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust public void separatorEqual() { 275fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust SeparatorEqual s = new SeparatorEqual(); 276bc108076cf3dc506d4e87e004d8c2e413b995adaCedric Beust String[] argv = { "-log=3", "--longoption=10" }; 27785866a95d6479be731596a838b6f5e793a341f5bCedric Beust new JCommander(s, argv); 27885866a95d6479be731596a838b6f5e793a341f5bCedric Beust Assert.assertEquals(s.log.intValue(), 3); 279bc108076cf3dc506d4e87e004d8c2e413b995adaCedric Beust Assert.assertEquals(s.longOption.intValue(), 10); 28085866a95d6479be731596a838b6f5e793a341f5bCedric Beust } 28185866a95d6479be731596a838b6f5e793a341f5bCedric Beust 282fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust @Test 283fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust public void separatorColon() { 284fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust SeparatorColon s = new SeparatorColon(); 285fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust String[] argv = { "-verbose:true" }; 286fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust new JCommander(s, argv); 287fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust Assert.assertTrue(s.verbose); 288fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust } 289fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust 290fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust @Test 291fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust public void separatorBoth() { 292fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust SeparatorColon s = new SeparatorColon(); 293fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust SeparatorEqual s2 = new SeparatorEqual(); 294fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust String[] argv = { "-verbose:true", "-log=3" }; 295fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust new JCommander(new Object[] { s, s2 }, argv); 296fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust Assert.assertTrue(s.verbose); 297fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust Assert.assertEquals(s2.log.intValue(), 3); 298fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust } 299fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust 300fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust @Test 301fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust public void separatorMixed1() { 302fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust SeparatorMixed s = new SeparatorMixed(); 303fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust String[] argv = { "-long:1", "-level=42" }; 304fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust new JCommander(s, argv); 305fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust Assert.assertEquals(s.l.longValue(), 1l); 306fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust Assert.assertEquals(s.level.intValue(), 42); 307fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust } 308fe9b1e59d132e6b10819ae8c9dc3300fb3200ae0Cedric Beust 3095f57e62a9aad979f2fe17e6d61ce5d05136661dbCedric Beust @Test 310426bf32155b30f5c1819a00d88c16944c01e5a52Cedric Beust public void slashParameters() { 311d556f4a527306a9769776d1cbb2fccac98618bc9Cedric Beust SlashSeparator a = new SlashSeparator(); 312858c0e61453c4b3a8663d9094f38b6aba493d753Cedric Beust String[] argv = { "/verbose", "/file", "/tmp/a" }; 3135f57e62a9aad979f2fe17e6d61ce5d05136661dbCedric Beust new JCommander(a, argv); 314d556f4a527306a9769776d1cbb2fccac98618bc9Cedric Beust Assert.assertTrue(a.verbose); 315d556f4a527306a9769776d1cbb2fccac98618bc9Cedric Beust Assert.assertEquals(a.file, "/tmp/a"); 3165f57e62a9aad979f2fe17e6d61ce5d05136661dbCedric Beust } 3175f57e62a9aad979f2fe17e6d61ce5d05136661dbCedric Beust 3185f57e62a9aad979f2fe17e6d61ce5d05136661dbCedric Beust @Test 319b7e9d9cfe060b02437f867716a8902cc466b0776Guillaume Sauthier public void inheritance() { 320b7e9d9cfe060b02437f867716a8902cc466b0776Guillaume Sauthier ArgsInherited args = new ArgsInherited(); 321b7e9d9cfe060b02437f867716a8902cc466b0776Guillaume Sauthier String[] argv = { "-log", "3", "-child", "2" }; 322b7e9d9cfe060b02437f867716a8902cc466b0776Guillaume Sauthier new JCommander(args, argv); 323b7e9d9cfe060b02437f867716a8902cc466b0776Guillaume Sauthier Assert.assertEquals(args.child.intValue(), 2); 324b7e9d9cfe060b02437f867716a8902cc466b0776Guillaume Sauthier Assert.assertEquals(args.log.intValue(), 3); 325b7e9d9cfe060b02437f867716a8902cc466b0776Guillaume Sauthier } 326b7e9d9cfe060b02437f867716a8902cc466b0776Guillaume Sauthier 327b7e9d9cfe060b02437f867716a8902cc466b0776Guillaume Sauthier @Test 328858c0e61453c4b3a8663d9094f38b6aba493d753Cedric Beust public void negativeNumber() { 329858c0e61453c4b3a8663d9094f38b6aba493d753Cedric Beust Args1 a = new Args1(); 330858c0e61453c4b3a8663d9094f38b6aba493d753Cedric Beust String[] argv = { "-verbose", "-3" }; 331858c0e61453c4b3a8663d9094f38b6aba493d753Cedric Beust new JCommander(a, argv); 332858c0e61453c4b3a8663d9094f38b6aba493d753Cedric Beust Assert.assertEquals(a.verbose.intValue(), -3); 333858c0e61453c4b3a8663d9094f38b6aba493d753Cedric Beust } 334858c0e61453c4b3a8663d9094f38b6aba493d753Cedric Beust 33572cacbaebb04753ddba0c8dc0f9328310e8cb222Cedric Beust @Test(expectedExceptions = ParameterException.class) 3365f57e62a9aad979f2fe17e6d61ce5d05136661dbCedric Beust public void requiredMainParameters() { 33772cacbaebb04753ddba0c8dc0f9328310e8cb222Cedric Beust ArgsRequired a = new ArgsRequired(); 33872cacbaebb04753ddba0c8dc0f9328310e8cb222Cedric Beust String[] argv = {}; 33972cacbaebb04753ddba0c8dc0f9328310e8cb222Cedric Beust new JCommander(a, argv); 3405f57e62a9aad979f2fe17e6d61ce5d05136661dbCedric Beust } 3415f57e62a9aad979f2fe17e6d61ce5d05136661dbCedric Beust 342a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust @Test 343a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust public void usageShouldNotChange() { 344a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust JCommander jc = new JCommander(new Args1(), new String[]{"-log", "1"}); 345a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust StringBuilder sb = new StringBuilder(); 346a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust jc.usage(sb); 347a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust String expected = sb.toString(); 348a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust jc = new JCommander(new Args1(), new String[]{"-debug", "-log", "2", "-long", "5"}); 349a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust sb = new StringBuilder(); 350a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust jc.usage(sb); 351a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust String actual = sb.toString(); 352a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust Assert.assertEquals(actual, expected); 353a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust } 354a76d5b9a334e8600d0bc7b0c51506cf4e67e1a3aCedric Beust 3554c020da73b8b25773bba8553263cf1954c718573Cedric Beust private void verifyCommandOrdering(String[] commandNames, Object[] commands) { 3564c020da73b8b25773bba8553263cf1954c718573Cedric Beust CommandMain cm = new CommandMain(); 3574c020da73b8b25773bba8553263cf1954c718573Cedric Beust JCommander jc = new JCommander(cm); 3584c020da73b8b25773bba8553263cf1954c718573Cedric Beust 3594c020da73b8b25773bba8553263cf1954c718573Cedric Beust for (int i = 0; i < commands.length; i++) { 3604c020da73b8b25773bba8553263cf1954c718573Cedric Beust jc.addCommand(commandNames[i], commands[i]); 3614c020da73b8b25773bba8553263cf1954c718573Cedric Beust } 3624c020da73b8b25773bba8553263cf1954c718573Cedric Beust 3634c020da73b8b25773bba8553263cf1954c718573Cedric Beust Map<String, JCommander> c = jc.getCommands(); 3644c020da73b8b25773bba8553263cf1954c718573Cedric Beust Assert.assertEquals(c.size(), commands.length); 3654c020da73b8b25773bba8553263cf1954c718573Cedric Beust 3664c020da73b8b25773bba8553263cf1954c718573Cedric Beust Iterator<String> it = c.keySet().iterator(); 3674c020da73b8b25773bba8553263cf1954c718573Cedric Beust for (int i = 0; i < commands.length; i++) { 3684c020da73b8b25773bba8553263cf1954c718573Cedric Beust Assert.assertEquals(it.next(), commandNames[i]); 3694c020da73b8b25773bba8553263cf1954c718573Cedric Beust } 3704c020da73b8b25773bba8553263cf1954c718573Cedric Beust } 3714c020da73b8b25773bba8553263cf1954c718573Cedric Beust 3724c020da73b8b25773bba8553263cf1954c718573Cedric Beust @Test 3734c020da73b8b25773bba8553263cf1954c718573Cedric Beust public void commandsShouldBeShownInOrderOfInsertion() { 3744c020da73b8b25773bba8553263cf1954c718573Cedric Beust verifyCommandOrdering(new String[] { "add", "commit" }, 3754c020da73b8b25773bba8553263cf1954c718573Cedric Beust new Object[] { new CommandAdd(), new CommandCommit() }); 3764c020da73b8b25773bba8553263cf1954c718573Cedric Beust verifyCommandOrdering(new String[] { "commit", "add" }, 3774c020da73b8b25773bba8553263cf1954c718573Cedric Beust new Object[] { new CommandCommit(), new CommandAdd() }); 3784c020da73b8b25773bba8553263cf1954c718573Cedric Beust } 3794c020da73b8b25773bba8553263cf1954c718573Cedric Beust 380e78248b969b0fa0f217ce85e43d39a1d7c055753Cedric Beust @DataProvider 381e78248b969b0fa0f217ce85e43d39a1d7c055753Cedric Beust public static Object[][] f() { 382e78248b969b0fa0f217ce85e43d39a1d7c055753Cedric Beust return new Integer[][] { 383e78248b969b0fa0f217ce85e43d39a1d7c055753Cedric Beust new Integer[] { 3, 5, 1 }, 384e78248b969b0fa0f217ce85e43d39a1d7c055753Cedric Beust new Integer[] { 3, 8, 1 }, 385e78248b969b0fa0f217ce85e43d39a1d7c055753Cedric Beust new Integer[] { 3, 12, 2 }, 386e78248b969b0fa0f217ce85e43d39a1d7c055753Cedric Beust new Integer[] { 8, 12, 2 }, 387e78248b969b0fa0f217ce85e43d39a1d7c055753Cedric Beust new Integer[] { 9, 10, 1 }, 388e78248b969b0fa0f217ce85e43d39a1d7c055753Cedric Beust }; 389e78248b969b0fa0f217ce85e43d39a1d7c055753Cedric Beust } 390e78248b969b0fa0f217ce85e43d39a1d7c055753Cedric Beust 3911c5e7d362685371709595fe3d2e65ceadbdfcffcCedric Beust// @Test(expectedExceptions = ParameterException.class) 392e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust public void arity1Fail() { 393e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust final Arity1 arguments = new Arity1(); 394e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust final JCommander jCommander = new JCommander(arguments); 395e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust final String[] commands = { 396e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust "-inspect" 397e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust }; 398e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust jCommander.parse(commands); 399e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust System.out.println("Inspect:" + arguments.inspect); 400e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust Assert.assertTrue(arguments.inspect); 401e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust } 402e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust 4031c5e7d362685371709595fe3d2e65ceadbdfcffcCedric Beust// @Test(expectedExceptions = ParameterException.class) 404e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust public void arity1Success1() { 405e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust final Arity1 arguments = new Arity1(); 406e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust final JCommander jCommander = new JCommander(arguments); 407e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust final String[] commands = { 408e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust "-inspect", "true" 409e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust }; 410e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust jCommander.parse(commands); 411e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust System.out.println("Inspect:" + arguments.inspect); 412e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust Assert.assertTrue(arguments.inspect); 413e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust } 414e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust 4151c5e7d362685371709595fe3d2e65ceadbdfcffcCedric Beust// @Test(expectedExceptions = ParameterException.class) 416e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust public void arity1Success2() { 417e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust final Arity1 arguments = new Arity1(); 418e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust final JCommander jCommander = new JCommander(arguments); 419e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust final String[] commands = { 420e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust "-inspect", "false" 421e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust }; 422e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust jCommander.parse(commands); 423e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust System.out.println("Inspect:" + arguments.inspect); 424e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust Assert.assertFalse(arguments.inspect); 425e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust } 426e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust 427696418a94157048544c44f405d757ede86eec926Cedric Beust public static void main(String[] args) { 428c1d51baff4fb68b90b2f9cdfea512c84ab94eb42Cedric Beust new JCommanderTest().booleanArity0(); 4290dcc308f1c08b831376a3e153e2a1ed1a6166697Cedric Beust// new JCommanderTest().booleanArity1(); 430c1d51baff4fb68b90b2f9cdfea512c84ab94eb42Cedric Beust// ArgsLongDescription a = new ArgsLongDescription(); 431c1d51baff4fb68b90b2f9cdfea512c84ab94eb42Cedric Beust// JCommander jc = new JCommander(a); 432c1d51baff4fb68b90b2f9cdfea512c84ab94eb42Cedric Beust// jc.usage(); 433e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust// ArgsPassword a = new ArgsPassword(); 434e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust// JCommander jc = new JCommander(a); 435e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust// jc.parse("-password"); 436e5799d36df3ceddb4b71b5f786e343c1c1e0d027Cedric Beust// System.out.println("Password:" + a.password); 437ed891ffa6a8894150718d11df446269365bed216Cedric Beust// new JCommanderTest().commandsShouldBeShownInOrderOfInsertion(); 4384c020da73b8b25773bba8553263cf1954c718573Cedric Beust// CommandMain cm = new CommandMain(); 4394c020da73b8b25773bba8553263cf1954c718573Cedric Beust// JCommander jc = new JCommander(cm); 4404c020da73b8b25773bba8553263cf1954c718573Cedric Beust// CommandAdd add = new CommandAdd(); 4414c020da73b8b25773bba8553263cf1954c718573Cedric Beust// jc.addCommand("add", add); 4424c020da73b8b25773bba8553263cf1954c718573Cedric Beust// CommandCommit commit = new CommandCommit(); 4434c020da73b8b25773bba8553263cf1954c718573Cedric Beust// jc.addCommand("commit", commit); 4444c020da73b8b25773bba8553263cf1954c718573Cedric Beust// jc.usage(); 445dda1651c0b74aa9e8d225096f1d531871460e692Cedric Beust 446dda1651c0b74aa9e8d225096f1d531871460e692Cedric Beust// new JCommanderTest().requiredMainParameters(); 447dda1651c0b74aa9e8d225096f1d531871460e692Cedric Beust// new CommandTest().commandTest1(); 448f14a46abd32b378ec56a672a2da0b926c5d7276dCedric Beust// new DefaultProviderTest().defaultProvider1(); 4491eb22b901f731760a479740312337471363febffCedric Beust// ArgsMainParameter a = new ArgsMainParameter(); 4501eb22b901f731760a479740312337471363febffCedric Beust// new JCommander(a, "ex1:10", "ex2:20"); 4511eb22b901f731760a479740312337471363febffCedric Beust// System.out.println(a.parameters.get(0).host); 4521eb22b901f731760a479740312337471363febffCedric Beust// new JCommander(new Args1()).usage(); 45385866a95d6479be731596a838b6f5e793a341f5bCedric Beust// Separator a = new Separator(); 45476c4b6ace154f18794f9eb0c3d6211101bf426d0Cedric Beust// String[] argv = new String[] { "-n", "foo" }; 45576c4b6ace154f18794f9eb0c3d6211101bf426d0Cedric Beust// String[] argv = new String[] { "-v", "t" }; 45685866a95d6479be731596a838b6f5e793a341f5bCedric Beust// String[] argv = { "-log=10" }; 45785866a95d6479be731596a838b6f5e793a341f5bCedric Beust// JCommander jc = new JCommander(a, argv); 45885866a95d6479be731596a838b6f5e793a341f5bCedric Beust// Assert.assertEquals(a.log.intValue(), 10); 459696418a94157048544c44f405d757ede86eec926Cedric Beust } 460c3e28e12136391968250719b1627b6b4eaa196cdCedric Beust 461c3e28e12136391968250719b1627b6b4eaa196cdCedric Beust // Tests: 462c3e28e12136391968250719b1627b6b4eaa196cdCedric Beust // required unparsed parameter 463e9229f961b3a5799f6798369afe26dec7960249Cedric Beust} 464