]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/ant/test/SlcTestTask.java
Various changes
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / ant / test / SlcTestTask.java
index 96b5176e9b70a8dfad1005212e73dd9b1867dd0b..3acfc5e0fab00260e64b5782da7ddd803a78de6b 100644 (file)
@@ -8,12 +8,18 @@ import org.argeo.slc.ant.SlcAntConfig;
 import org.argeo.slc.ant.spring.AbstractSpringArg;\r
 import org.argeo.slc.ant.structure.SAwareTask;\r
 import org.argeo.slc.core.deploy.DeployedSystem;\r
+import org.argeo.slc.core.process.SlcExecution;\r
+import org.argeo.slc.core.process.SlcExecutionAware;\r
 import org.argeo.slc.core.structure.StructureAware;\r
+import org.argeo.slc.core.structure.tree.TreeSPath;\r
 import org.argeo.slc.core.test.ExecutableTestRun;\r
+import org.argeo.slc.core.test.SimpleTestResult;\r
+import org.argeo.slc.core.test.SimpleTestRun;\r
 import org.argeo.slc.core.test.TestData;\r
 import org.argeo.slc.core.test.TestDefinition;\r
 import org.argeo.slc.core.test.TestResult;\r
 import org.argeo.slc.core.test.WritableTestRun;\r
+import org.argeo.slc.spring.SpringUtils;\r
 \r
 /** Ant task wrapping a test run. */\r
 public class SlcTestTask extends SAwareTask {\r
@@ -28,6 +34,7 @@ public class SlcTestTask extends SAwareTask {
 \r
        @Override\r
        public void executeActions(String mode) throws BuildException {\r
+               // find test run\r
                final String testRunBeanT;\r
                if (testRunBean != null) {\r
                        testRunBeanT = testRunBean;\r
@@ -35,8 +42,25 @@ public class SlcTestTask extends SAwareTask {
                        testRunBeanT = getProject().getUserProperty(\r
                                        SlcAntConfig.DEFAULT_TEST_RUN_PROPERTY);\r
                }\r
-               WritableTestRun testRun = (WritableTestRun) getContext().getBean(\r
-                               testRunBeanT);\r
+               WritableTestRun testRun = null;\r
+\r
+               if (testRunBeanT != null) {\r
+                       testRun = (WritableTestRun) getContext().getBean(testRunBeanT);\r
+                       if (log.isTraceEnabled())\r
+                               log.trace("Load test run bean from bean name " + testRunBeanT);\r
+               }\r
+\r
+               if (testRun == null) {\r
+                       testRun = loadSingleFromContext(WritableTestRun.class);\r
+                       if (testRun == null) {\r
+                               testRun = new SimpleTestRun();\r
+                               if (log.isTraceEnabled())\r
+                                       log.trace("Created simple test run");\r
+                       } else {\r
+                               if (log.isTraceEnabled())\r
+                                       log.trace("Load test run from scanning Spring context");\r
+                       }\r
+               }\r
 \r
                // set overridden references\r
                if (testDataArg != null) {\r
@@ -61,9 +85,25 @@ public class SlcTestTask extends SAwareTask {
 \r
                // notify path to test result\r
                TestResult result = testRun.getTestResult();\r
+               if (result == null) {\r
+                       result = loadSingleFromContext(TestResult.class);\r
+                       if (result == null) {\r
+                               result = new SimpleTestResult();\r
+                               if (log.isTraceEnabled())\r
+                                       log.trace("Created simple test result");\r
+                       } else {\r
+                               if (log.isTraceEnabled())\r
+                                       log.trace("Load test result from scanning Spring context");\r
+                       }\r
+                       testRun.setTestResult(result);\r
+               }\r
+\r
+               SlcExecution slcExecution = getSlcExecution();\r
+               testRun.notifySlcExecution(slcExecution);\r
+\r
                if (result != null && result instanceof StructureAware) {\r
-                       ((StructureAware) result).notifyCurrentPath(getRegistry(),\r
-                                       getPath());\r
+                       ((StructureAware<TreeSPath>) result).notifyCurrentPath(\r
+                                       getRegistry(), getTreeSPath());\r
                }\r
 \r
                ((ExecutableTestRun) testRun).execute();\r
@@ -104,6 +144,9 @@ public class SlcTestTask extends SAwareTask {
                return testResultArg;\r
        }\r
 \r
+       protected <T> T loadSingleFromContext(Class<T> clss) {\r
+               return SpringUtils.loadSingleFromContext(getContext(), clss);\r
+       }\r
 }\r
 \r
 class TestDefinitionArg extends AbstractSpringArg {\r