Improve unit tests
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 17 Nov 2007 20:01:06 +0000 (20:01 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 17 Nov 2007 20:01:06 +0000 (20:01 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@713 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc/src/main/config/include/ant/slc-factory-targets.xml
org.argeo.slc/src/main/java/org/argeo/slc/ant/AntRegistryUtil.java
org.argeo.slc/src/test/java/org/argeo/slc/example/junit/TestAntBuild.java
org.argeo.slc/src/test/slc/conf/data.xml
org.argeo.slc/src/test/slc/conf/slc.xml

index 6df84da2d24fc8941cb106147932f73a5d45d5b1..baa1ef763a009bfef9e1c1eb2eff6ebd1749a975 100644 (file)
@@ -39,7 +39,7 @@ $LastChangedDate$
                <fileset dir="${main.libdir}">\r
                        <include name="**/*.jar" />\r
                </fileset>\r
-               <pathelement location="${compile.base}/${main.artifact}" />\r
+               <pathelement location="${dist.jar}/${main.artifact}.jar" />\r
        </path>\r
 \r
        <import file="slc-factory-macrodefs.xml" />\r
@@ -117,21 +117,21 @@ $LastChangedDate$
                <compile artifact="${main.artifact}" srcdir="${main.srcdir}" />\r
        </target>\r
 \r
-       <target name="build.test" depends="build.main">\r
+       <target name="jar.main" depends="build.main">\r
+               <createJar artifact="${main.artifact}" srcdir="${main.srcdir}" />\r
+       </target>\r
+\r
+       <target name="build.test" depends="jar.main">\r
                <compile artifact="${test.artifact}"\r
                         srcdir="${test.srcdir}"\r
                         classpathref="cp.test" />\r
        </target>\r
 \r
-       <target name="jar.main" depends="build.test">\r
-               <createJar artifact="${main.artifact}" srcdir="${main.srcdir}" />\r
-       </target>\r
-\r
        <target name="jar.sources" unless="flag.noSources">\r
                <createSourcesJar artifact="${main.artifact}" srcdir="${main.srcdir}" />\r
        </target>\r
 \r
-       <target name="jar.test" depends="jar.main,jar.sources">\r
+       <target name="jar.test" depends="build.test">\r
                <createJar artifact="${test.artifact}" srcdir="${test.srcdir}" />\r
        </target>\r
 \r
@@ -149,6 +149,8 @@ $LastChangedDate$
                                <fileset dir="${test.srcdir}">\r
                                        <include name="**/*Test*.java" />\r
                                        <exclude name="**/Abstract*.java" />\r
+                                       <exclude name="**/*TestDef*.java" />\r
+                                       <exclude name="**/*TestData*.java" />\r
                                </fileset>\r
                        </batchtest>\r
                </junit>\r
@@ -162,7 +164,7 @@ $LastChangedDate$
        </target>\r
 \r
        <target name="package.common"\r
-               depends="dist.unittest,dist.api,dist.apiWithSlc,dist.dependencies,dist.appli">\r
+               depends="dist.unittest,jar.sources,dist.api,dist.apiWithSlc,dist.dependencies,dist.appli">\r
        </target>\r
 \r
        <target name="dist.package" depends="package.common">\r
index 872dd9cc1bd17432ff2b1ae076817810ce63e1d0..c73b59015303edc6b11383463891e0c341d4401c 100644 (file)
@@ -36,7 +36,8 @@ public class AntRegistryUtil {
        }\r
 \r
        /** Executes only the active paths of the Ant file. */\r
-       public static void runActive(File antFile, List<StructurePath> activePaths) {\r
+       public static Project runActive(File antFile,\r
+                       List<StructurePath> activePaths) {\r
                if (log.isDebugEnabled())\r
                        log.debug("Runs the " + activePaths.size()\r
                                        + " provided active paths of Ant file " + antFile);\r
@@ -53,10 +54,11 @@ public class AntRegistryUtil {
                registry.setMode(StructureRegistry.ACTIVE);\r
                registry.setActivePaths(activePaths);\r
                p.executeTarget(p.getDefaultTarget());\r
+               return p;\r
        }\r
 \r
        /** Executes all paths of the default target of the Ant file. */\r
-       public static void runAll(File antFile) {\r
+       public static Project runAll(File antFile) {\r
                if (log.isDebugEnabled())\r
                        log.debug("Runs all paths of Ant file " + antFile);\r
                Project p = new Project();\r
@@ -67,5 +69,6 @@ public class AntRegistryUtil {
                p.addReference("ant.projectHelper", helper);\r
                helper.parse(p, antFile);\r
                p.executeTarget(p.getDefaultTarget());\r
+               return p;\r
        }\r
 }\r
index 70bad1191dbd0e0517752b710def5dd787edbb3f..ad88b3b6cd104052e1167b48c4ca1c03320758bd 100644 (file)
@@ -2,17 +2,81 @@ package org.argeo.slc.example.junit;
 \r
 import java.io.File;\r
 \r
+import org.springframework.context.ApplicationContext;\r
+\r
+import org.apache.tools.ant.Project;\r
+\r
 import junit.framework.TestCase;\r
 \r
 import org.argeo.slc.ant.AntRegistryUtil;\r
+import org.argeo.slc.ant.SlcProjectHelper;\r
+import org.argeo.slc.core.structure.tree.TreeSPath;\r
+import org.argeo.slc.core.test.NumericTRId;\r
+import org.argeo.slc.core.test.SimpleResultPart;\r
+import org.argeo.slc.core.test.TestStatus;\r
+import org.argeo.slc.core.test.tree.PartSubList;\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.dao.test.TestResultDao;\r
 \r
 public class TestAntBuild extends TestCase {\r
        public void testAllRunSimple() {\r
+               File[] reportFiles = new File("src/test/slc/work/results/report/").listFiles();\r
+               for(File file: reportFiles){\r
+                       file.delete();\r
+               }\r
+               \r
                File slcBaseDir = new File("./src/test/slc").getAbsoluteFile();\r
 \r
                File antFile = new File(slcBaseDir.getPath()\r
                                + "/root/Category1/SubCategory2/build.xml");\r
-               AntRegistryUtil.runAll(antFile);\r
+               Project p = AntRegistryUtil.runAll(antFile);\r
+\r
+               ApplicationContext context = (ApplicationContext) p\r
+                               .getReference(SlcProjectHelper.REF_ROOT_CONTEXT);\r
+\r
+               TestResultDao testResultDao = (TestResultDao) context\r
+                               .getBean("testResultDao");\r
+\r
+               NumericTRId numericTRId = new NumericTRId();\r
+               numericTRId.setValue(1l);\r
+               TreeTestResult testResult1 = (TreeTestResult) testResultDao\r
+                               .getTestResult(numericTRId);\r
+               // assertPart(testResult1, "", 0, TestStatus.PASSED, "");\r
+               assertPart(\r
+                               testResult1,\r
+                               "#root#Category1#SubCategory2#testComplex#slc.test0#0",\r
+                               0,\r
+                               TestStatus.PASSED,\r
+                               "Sub task with path #root#Category1#SubCategory2#testComplex#slc.test0#0 executed");\r
+               assertPart(testResult1,\r
+                               "#root#Category1#SubCategory2#testSimple#slc.test0", 1,\r
+                               TestStatus.FAILED,\r
+                               "Compare nato-expected.txt with nato-reached.txt");\r
+\r
+               numericTRId.setValue(2l);\r
+               TreeTestResult testResult2 = (TreeTestResult) testResultDao\r
+                               .getTestResult(numericTRId);\r
+               assertPart(testResult2,\r
+                               "#root#Category1#SubCategory2#testSimple#slc.test2", 1,\r
+                               TestStatus.PASSED,\r
+                               "Compare eu-reform-expected.txt with eu-reform-reached.txt");\r
+               assertPart(testResult2,\r
+                               "#root#Category1#SubCategory2#testSimple#slc.test3", 1,\r
+                               TestStatus.FAILED,\r
+                               "Compare eu-reform-expected.txt with eu-reform-reached.txt");\r
+\r
+               assertTrue(new File("src/test/slc/work/results/report/index.html")\r
+                               .exists());\r
+               assertTrue(new File("src/test/slc/work/results/report/1.html").exists());\r
+               assertTrue(new File("src/test/slc/work/results/report/2.html").exists());\r
+       }\r
 \r
+       private void assertPart(TreeTestResult testResult, String pathStr,\r
+                       int index, Integer status, String message) {\r
+               TreeSPath path = TreeSPath.parseToCreatePath(pathStr, '#');\r
+               PartSubList list = testResult.getResultParts().get(path);\r
+               SimpleResultPart part = (SimpleResultPart) list.getParts().get(index);\r
+               assertEquals(status, part.getStatus());\r
+               assertEquals(message, part.getMessage());\r
        }\r
 }\r
index 6e4ce5cde7df718576d3c500d6a320cadcbd8dc5..4ab0629fccc51dc7ae36224a78d03ae3fb6f90b7 100644 (file)
@@ -8,8 +8,10 @@
                class="org.springframework.jdbc.datasource.SingleConnectionDataSource"\r
                destroy-method="destroy">\r
                <property name="driverClassName" value="org.hsqldb.jdbcDriver" />\r
+               <!-- <property name="url"\r
+                       value="jdbc:hsqldb:file:${slc.workDir}/results/hsqldb/db;shutdown=true" />-->\r
                <property name="url"\r
-                       value="jdbc:hsqldb:file:${slc.workDir}/results/hsqldb/db;shutdown=true" />\r
+                       value="jdbc:hsqldb:mem:results" />\r
                <property name="username" value="sa" />\r
                <property name="password" value="" />\r
                <property name="suppressClose" value="true" />\r
@@ -51,7 +53,7 @@
                                cache.use_minimal_puts=false\r
                                max_fetch_depth=3\r
                                current_session_context_class=thread\r
-                               hibernate.hbm2ddl.auto=update\r
+                               hibernate.hbm2ddl.auto=create\r
                        </value>\r
                </property>\r
        </bean>\r
index 9ec452b68f69905347a6916a22ff8b2fd92e5d8e..ab92fe8b16c5f345c88179e8f0f555802c6e2919 100644 (file)
 \r
        <bean id="testResult"\r
                class="org.argeo.slc.core.test.tree.TreeTestResult">\r
-               <property name="numericResultId" ref="testResultId" />\r
+               <property name="numericResultId">\r
+                       <bean class="org.argeo.slc.core.test.NumericTRId">\r
+                               <property name="value" value="1" />\r
+                       </bean>\r
+               </property>\r
                <property name="listeners">\r
                        <list>\r
                                <ref bean="resultLogger" />\r
        </bean>\r
 \r
        <bean id="testResult2"\r
-               class="org.argeo.slc.core.test.tree.TreeTestResult"\r
-               >\r
-               <property name="numericResultId" ref="testResultId" />\r
+               class="org.argeo.slc.core.test.tree.TreeTestResult">\r
+               <property name="numericResultId">\r
+                       <bean class="org.argeo.slc.core.test.NumericTRId">\r
+                               <property name="value" value="2" />\r
+                       </bean>\r
+               </property>\r
                <property name="listeners">\r
                        <list>\r
                                <ref bean="resultLogger" />\r
                        </list>\r
                </property>\r
        </bean>\r
-\r
+<!--  \r
        <bean id="testResultId" class="org.argeo.slc.core.test.NumericTRId"\r
                init-method="init" scope="prototype">\r
        </bean>\r
-\r
+-->\r
        <bean\r
                class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />\r
 \r
@@ -68,7 +75,7 @@
 \r
        <bean id="exampleDeployedSystem"\r
                class="org.argeo.slc.example.ExampleDeployedSystem">\r
-               <property name="skipFreq" value="2"/>\r
+               <property name="skipFreq" value="2" />\r
                <property name="deployedSystemId">\r
                        <bean class="org.argeo.slc.core.deploy.NumericDSId">\r
                                <property name="value" value="123456" />\r
@@ -84,7 +91,7 @@
 \r
        <bean id="exampleDeployedSystem2"\r
                class="org.argeo.slc.example.ExampleDeployedSystem">\r
-               <property name="skipFreq" value="3"/>\r
+               <property name="skipFreq" value="3" />\r
                <property name="deployedSystemId">\r
                        <bean class="org.argeo.slc.core.deploy.NumericDSId">\r
                                <property name="value" value="654321" />\r