Index: lutinutil/src/test/org/codelutin/option/def/DefinitionParserTest.java
diff -u /dev/null lutinutil/src/test/org/codelutin/option/def/DefinitionParserTest.java:1.1
--- /dev/null Sun Dec 30 22:51:23 2007
+++ lutinutil/src/test/org/codelutin/option/def/DefinitionParserTest.java Sun Dec 30 22:51:18 2007
@@ -0,0 +1,145 @@
+/**
+ * ##% Copyright (C) 2002, 2007 Code Lutin This program is free software; you
+ * can redistribute it and/or modify it under the terms of the GNU General
+ * Public License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. This program is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public License for more details. You
+ * should have received a copy of the GNU General Public License along with this
+ * program; if not, write to the Free Software Foundation, Inc., 59 Temple Place
+ * - Suite 330, Boston, MA 02111-1307, USA. ##%*
+ */
+package org.codelutin.option.def;
+
+import junit.framework.TestCase;
+import org.codelutin.option.ParserUtilForTest;
+import static org.codelutin.option.def.DefinitionParserUtil.TypeSource.properties;
+import org.codelutin.option.def.DefinitionParser;
+
+import java.io.File;
+
+/**
+ * DefinitionParser Tester.
+ *
+ * @author chemit
+ * @version 1.0
+ * @since
11/18/2007
+ */
+public class DefinitionParserTest extends TestCase {
+
+ DefinitionParser parser;
+ File file;
+ String optionName;
+
+ public void testNoOptions() throws Exception {
+ file = ParserUtilForTest.initFileMock("", "option", "testNoOptions.properties");
+ parser = DefinitionParser.doParse(properties, file);
+ assertTrue(parser.getOptions().length == 0);
+ }
+
+ public void testOneOption() throws Exception {
+
+ /*STRING optionName;
+ optionName = "testOneOptions0";
+ file = initFileMock(optionName, "--testOneOptions0", "with no args and one alias");
+ parser = DefinitionParser.doParse(properties, file);
+ assertEquals(1, parser.getDefinitions().length);
+ assertEquals(1, parser.getDefinitions()[0].getAlias().length);
+ assertEquals("--" + optionName, parser.getDefinitions()[0].getAlias()[0]);
+ assertEquals(0, parser.getDefinitions()[0].getGroups().length);
+
+ optionName = "testOneOptions00";
+ file = initFileMock(optionName, "--testOneOptions00|-one0", "with no args and two alias");
+ parser = DefinitionParser.doParse(properties, file);
+ assertEquals(1, parser.getDefinitions().length);
+ assertEquals(2, parser.getDefinitions()[0].getAlias().length);
+ assertEquals("--" + optionName, parser.getDefinitions()[0].getAlias()[0]);
+ assertEquals("-one0", parser.getDefinitions()[0].getAlias()[1]);
+ assertEquals(0, parser.getDefinitions()[0].getGroups().length);
+
+ optionName = "testOneOptions000";
+ file = initFileMock(optionName, "--testOneOptions000|-one0|-o0", "with no args and three alias");
+ parser = DefinitionParser.doParse(properties, file);
+ assertEquals(1, parser.getDefinitions().length);
+ assertEquals(3, parser.getDefinitions()[0].getAlias().length);
+ assertEquals("--" + optionName, parser.getDefinitions()[0].getAlias()[0]);
+ assertEquals("-one0", parser.getDefinitions()[0].getAlias()[1]);
+ assertEquals("-o0", parser.getDefinitions()[0].getAlias()[2]);
+ assertEquals(0, parser.getDefinitions()[0].getGroups().length);
+
+ optionName = "testOneOptions1";
+ file = initFileMock(optionName, "--testOneOptions1|-one1 ", "with one group of three constant and two alias");
+ parser = DefinitionParser.doParse(properties, file);
+ assertEquals(1, parser.getDefinitions().length);
+ assertEquals(2, parser.getDefinitions()[0].getAlias().length);
+ assertEquals("--" + optionName, parser.getDefinitions()[0].getAlias()[0]);
+ assertEquals("-one1", parser.getDefinitions()[0].getAlias()[1]);
+ assertEquals(3, parser.getDefinitions()[0].getGroups().length);
+
+
+ optionName = "testOneOptions2";
+ file = initFileMock(optionName, "--testOneOptions2|-one2 ", "with one group of 5 valued args and two alias");
+ parser = DefinitionParser.doParse(properties, file);
+ assertEquals(1, parser.getDefinitions().length);
+ assertEquals(2, parser.getDefinitions()[0].getAlias().length);
+ assertEquals("--" + optionName, parser.getDefinitions()[0].getAlias()[0]);
+ assertEquals("-one2", parser.getDefinitions()[0].getAlias()[1]);
+ assertEquals(5, parser.getDefinitions()[0].getGroups().length);
+
+ optionName = "testOneOptions3";
+ file = initFileMock(optionName, "--testOneOptions3|-one3 ", "with one group of 6 namedAndValued args and two alias");
+ parser = DefinitionParser.doParse(properties, file);
+ assertEquals(1, parser.getDefinitions().length);
+ assertEquals(2, parser.getDefinitions()[0].getAlias().length);
+ assertEquals("--" + optionName, parser.getDefinitions()[0].getAlias()[0]);
+ assertEquals("-one3", parser.getDefinitions()[0].getAlias()[1]);
+ assertEquals(6, parser.getDefinitions()[0].getGroups().length);
+
+ optionName = "testOneOptions4";
+ file = initFileMock(optionName, "--testOneOptions4|-one4 ", "with one group of 14 args (3 constants, 5 valued, 6 namedAndValued) and two alias");
+ parser = DefinitionParser.doParse(properties, file);
+ //printParserDetails();
+
+ assertEquals(1, parser.getDefinitions().length);
+ assertEquals(2, parser.getDefinitions()[0].getAlias().length);
+ assertEquals("--" + optionName, parser.getDefinitions()[0].getAlias()[0]);
+ assertEquals("-one4", parser.getDefinitions()[0].getAlias()[1]);
+ assertEquals(14, parser.getDefinitions()[0].getGroups().length);*/
+ }
+
+ public void testOneOptionArgumentCardinalite() throws Exception {
+
+ optionName = "testArgumentConstantCardinalite00005";
+ file = ParserUtilForTest.initFileMock(optionName, "option", "-testArgumentConstantCardinalite00005 ");
+ parser = DefinitionParser.doParse(properties, file);
+ ParserUtilForTest.assertError(parser, 1, 0);
+
+ optionName = "testArgumentConstantCardinalite00015";
+ file = ParserUtilForTest.initFileMock(optionName, "option", "-testArgumentConstantCardinalite00015 [constant]");
+ parser = DefinitionParser.doParse(properties, file);
+ ParserUtilForTest.assertError(parser, 1, 0);
+
+ optionName = "testArgumentValuedCardinalite00003";
+ file = ParserUtilForTest.initFileMock(optionName, "option", "-testArgumentValuedCardinalite00003 ");
+ parser = DefinitionParser.doParse(properties, file);
+ ParserUtilForTest.assertError(parser, 1, 0);
+
+ optionName = "testArgumentValuedCardinalite00004";
+ file = ParserUtilForTest.initFileMock(optionName, "option", "-testArgumentValuedCardinalite00004 ");
+ parser = DefinitionParser.doParse(properties, file);
+ ParserUtilForTest.assertError(parser, 1, 0);
+
+ optionName = "testArgumentValuedCardinalite00010";
+ file = ParserUtilForTest.initFileMock(optionName, "option", "-testArgumentValuedCardinalite00010 [string:String{0,5}]");
+ parser = DefinitionParser.doParse(properties, file);
+ ParserUtilForTest.assertError(parser, 1, 0);
+
+ optionName = "testArgumentValuedCardinalite00011";
+
+ file = ParserUtilForTest.initFileMock(optionName, "option", "-testArgumentValuedCardinalite00011 [string:String*]");
+ parser = DefinitionParser.doParse(properties, file);
+ ParserUtilForTest.assertError(parser, 1, 0);
+ }
+
+}
Index: lutinutil/src/test/org/codelutin/option/def/DefinitionParserBadOptionTest.java
diff -u /dev/null lutinutil/src/test/org/codelutin/option/def/DefinitionParserBadOptionTest.java:1.1
--- /dev/null Sun Dec 30 22:51:23 2007
+++ lutinutil/src/test/org/codelutin/option/def/DefinitionParserBadOptionTest.java Sun Dec 30 22:51:18 2007
@@ -0,0 +1,202 @@
+/**
+ * ##% Copyright (C) 2002, 2007 Code Lutin This program is free software; you
+ * can redistribute it and/or modify it under the terms of the GNU General
+ * Public License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. This program is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public License for more details. You
+ * should have received a copy of the GNU General Public License along with this
+ * program; if not, write to the Free Software Foundation, Inc., 59 Temple Place
+ * - Suite 330, Boston, MA 02111-1307, USA. ##%*
+ */
+package org.codelutin.option.def;
+
+import junit.framework.TestCase;
+import org.codelutin.option.ParserUtilForTest;
+import static org.codelutin.option.def.DefinitionParserUtil.TypeSource.properties;
+import org.codelutin.option.def.DefinitionParser;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * DefinitionParser Tester.
+ *
+ * @author chemit
+ * @version 1.0
+ * @since 11/18/2007
+ */
+public class DefinitionParserBadOptionTest extends TestCase {
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ ParserUtilForTest.initI18n();
+ }
+
+ DefinitionParser parser;
+ File file;
+ String key;
+
+ public void testOneOptionBadAlias() throws Exception {
+
+ initAndParse("testOneOption");
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ initAndParse("-testOneOptionsBad00|t");
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ initAndParse("-testOneOptionsBad00|-t|-t2|-t3|-t4");
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ initAndParse("-testOneOptionsBad00|-t|-t2|t3|-t4|-t5|t55");
+ ParserUtilForTest.assertError(parser, 0, 3);
+
+ initAndParse("-testOneOptionsBad000 {0,2}", "-testOneOptionsBad000 {0,4}");
+ ParserUtilForTest.assertError(parser, 1, 1);
+
+ initAndParse("-testOneOptionsBad000|-t0", "-testOneOptionsBad001|-t0");
+ ParserUtilForTest.assertError(parser, 1, 1);
+ }
+
+ public void testOneOptionBadCardinalite() throws Exception {
+
+ initAndParse("-testBadCardinalite0 {-1,1}");
+ ParserUtilForTest.assertError(parser, 1, 0);
+
+ initAndParse("-testBadCardinalite1 {1,-2}");
+ ParserUtilForTest.assertError(parser, 1, 0);
+
+ initAndParse("-testBadCardinalite2 {1,0}");
+ ParserUtilForTest.assertError(parser, 0, 2);
+
+ initAndParse("-testBadCardinalite3 {5,3}");
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ }
+
+ public void testOneOptionBadConstantArgumentCardinalite() throws Exception {
+ key = "testBadArgumentConstantCardinalite0";
+ initAndParse("-testBadArgumentConstantCardinalite0 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentConstantCardinalite00";
+ initAndParse("-testBadArgumentConstantCardinalite00 ");
+
+ ParserUtilForTest.assertError(parser, 1, 0);
+
+ key = "testBadArgumentConstantCardinalite000";
+ initAndParse("-testBadArgumentConstantCardinalite000 ");
+
+ ParserUtilForTest.assertError(parser, 1, 0);
+
+ key = "testBadArgumentConstantCardinalite0000";
+ initAndParse("-testBadArgumentConstantCardinalite0000 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentConstantCardinalite00000";
+ initAndParse("-testBadArgumentConstantCardinalite00000 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentConstantCardinalite00001";
+ initAndParse("-testBadArgumentConstantCardinalite00001 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentConstantCardinalite00002";
+ initAndParse("-testBadArgumentConstantCardinalite00002 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentConstantCardinalite00003";
+ initAndParse("-testBadArgumentConstantCardinalite00003 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentConstantCardinalite00004";
+ initAndParse("-testBadArgumentConstantCardinalite00004 ");
+
+ ParserUtilForTest.assertError(parser, 1, 0);
+
+ key = "testBadArgumentConstantCardinalite00010";
+ initAndParse("-testBadArgumentConstantCardinalite00010 [constant{0,5}]");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentConstantCardinalite00011";
+ initAndParse("-testBadArgumentConstantCardinalite00011 [constant*]");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentConstantCardinalite00012";
+ initAndParse("-testBadArgumentConstantCardinalite00012 [constant{1,2}]");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentConstantCardinalite00013";
+ initAndParse("-testBadArgumentConstantCardinalite00013 [constant+]");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentConstantCardinalite00014";
+ initAndParse("-testBadArgumentConstantCardinalite00014 [constant{1,-1}]");
+
+ ParserUtilForTest.assertError(parser, 1, 0);
+ }
+
+ public void testOneOptionBadValuedArgumentCardinalite() throws Exception {
+ key = "testBadArgumentValuedCardinalite0";
+ initAndParse("-testBadArgumentValuedCardinalite0 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentValuedCardinalite00";
+ initAndParse("-testBadArgumentValuedCardinalite00 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentValuedCardinalite000";
+ initAndParse("-testBadArgumentValuedCardinalit000 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentValuedCardinalite0000";
+ initAndParse("-testBadArgumentValuedCardinalite0000 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentValuedCardinalite00000";
+ initAndParse("-testBadArgumentValuedCardinalite00000 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentValuedCardinalite00001";
+ initAndParse("-testBadArgumentValuedCardinalite00001 ");
+
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ key = "testBadArgumentValuedCardinalite00002";
+ initAndParse("-testBadArgumentValuedCardinalite00002 ");
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ initAndParse("-testArgumentValuedCardinalite00012 [string:String{1,2}]");
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ initAndParse("-testBadArgumentValuedCardinalite00013 [string:String+]");
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ initAndParse("-testBadArgumentValuedCardinalite00014 [string:String{1,-1}]");
+ ParserUtilForTest.assertError(parser, 0, 1);
+
+ }
+
+ private void initAndParse(String... defs) throws IOException {
+ key = getName() + System.currentTimeMillis();
+ file = ParserUtilForTest.initFileMock(key, "option", defs);
+ parser = DefinitionParser.doParse(properties, file);
+ }
+}
\ No newline at end of file