Index: maven-commandline-plugin/src/test/org/codelutin/util/GenerateTest.java diff -u /dev/null maven-commandline-plugin/src/test/org/codelutin/util/GenerateTest.java:1.1 --- /dev/null Wed Dec 12 21:03:21 2007 +++ maven-commandline-plugin/src/test/org/codelutin/util/GenerateTest.java Wed Dec 12 21:03:15 2007 @@ -0,0 +1,124 @@ +package org.codelutin.util; + +import org.codelutin.util.OptionParserAnnotationHelper.ApplicationA; + +import java.io.File; +import java.io.StringWriter; +import java.io.Writer; + +/** + * OptionDefinitionParser Tester. + * + * @author chemit + * @version 1.0 + * @since
11/16/2007
+ */ +public class GenerateTest extends junit.framework.TestCase { + + private static final String PROJECT_NAME = GenerateTest.class.getSimpleName(); + private static final String HERE = new File("").getAbsolutePath(); + private static final String OUT_PATH = new File(HERE, "target/test-classes").getAbsolutePath(); + private static final String PARSER_NAME = "org.codelutin.util.CodeLutinUtilOptionParser"; + private static final String PROPERTIES_FILE_PATH = HERE + "/src/test/testOptions.properties"; + private static final String RST_FILE_NAME = HERE + "/target/gen/site/fr/rst/GenerateTest.rst"; + + @Override + protected void setUp() throws Exception { + super.setUp(); + //ParserUtil.initI18n(); + } + + public void testLaunch() throws Exception { + + Generate goal = new Generate(); + + goal.source = new File(PROPERTIES_FILE_PATH); + goal.parserFullyQualifiedName = PARSER_NAME; + goal.projectName = PROJECT_NAME; + goal.out = new File(OUT_PATH); + goal.rstFilePath = new File(RST_FILE_NAME); + goal.generateOptionImplementation = true; + goal.typeSource = "properties"; + goal.showErrors = true; + goal.execute(); + + //assertNotNull(goal.parser); + //todo make asserts on parser + + } + + public void estLaunchWithDetails() throws Exception { + + Generate goal = new Generate(); + + goal.source = new File(PROPERTIES_FILE_PATH); + goal.parserFullyQualifiedName = PARSER_NAME + "_details"; + goal.projectName = PROJECT_NAME + "_details"; + goal.out = new File(OUT_PATH); + goal.rstFilePath = new File(RST_FILE_NAME + "_details"); + goal.execute(); + + //assertNotNull(goal.parser); + //todo make asserts on parser + + } + + public void estLaunchWithDetailsAndErrors() throws Exception { + + Generate goal = new Generate(); + + goal.source = new File(PROPERTIES_FILE_PATH); + goal.parserFullyQualifiedName = PARSER_NAME + "_detailsAndErrors"; + goal.projectName = PROJECT_NAME + "_detailsAndErrors"; + goal.showErrors = true; + goal.generateOptionImplementation= true; + goal.out = new File(OUT_PATH); + goal.rstFilePath = new File(RST_FILE_NAME + "_detailsAndErrors"); + goal.execute(); + + //assertNotNull(goal.parser); + //todo make asserts on parser + } + + public void testReloadParser() throws Exception { + + OptionParser parser; + + parser = newParser(PARSER_NAME, getClass().getClassLoader()); + + assertNotNull(parser); + + ApplicationA annotation; + annotation = parser.getClass().getAnnotation(ApplicationA.class); + assertNotNull(annotation); + Writer writer = new StringWriter(); + parser.printUsage(writer, parser.getClass().getSimpleName()); + System.out.println(writer); + writer.flush(); + writer.close(); + + parser.doParse("argument00"); + + assertFalse(parser.hasFailed()); + } + + public static OptionParser newParser(String className, ClassLoader loader) { + + Class parserClass; + OptionParser parser; + try { + // find parser class + parserClass = Class.forName(className, true, loader); + // instanciate parser, load factory and init ParserContext + parser = (OptionParser) parserClass.newInstance(); + return parser; + } catch (ClassNotFoundException e) { + throw new IllegalArgumentException(e); + } catch (IllegalAccessException e) { + throw new IllegalArgumentException(e); + } catch (InstantiationException e) { + throw new IllegalArgumentException(e); + } + } + +}