Add other SLC interfaces.
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 26 Oct 2007 15:59:40 +0000 (15:59 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 26 Oct 2007 15:59:40 +0000 (15:59 +0000)
Pass TestRun to TestDefinition. (API break)

git-svn-id: https://svn.argeo.org/slc/trunk@658 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc/src/main/java/org/argeo/slc/ant/test/SlcTestTask.java
org.argeo.slc/src/main/java/org/argeo/slc/core/build/DistributionId.java [new file with mode: 0644]
org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/DeployedSystem.java [new file with mode: 0644]
org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/DeployedSystemId.java [new file with mode: 0644]
org.argeo.slc/src/main/java/org/argeo/slc/core/test/TestDefinition.java
org.argeo.slc/src/main/java/org/argeo/slc/core/test/TestResult.java
org.argeo.slc/src/main/java/org/argeo/slc/core/test/TestResultId.java [new file with mode: 0644]
org.argeo.slc/src/main/java/org/argeo/slc/core/test/TestRun.java
org.argeo.slc/src/test/java/org/argeo/slc/testslc/DummyTestDefinition.java

index a82538786b419f20504718a0fef5866b7d645885..9d7a3c3407f68861e26460341b7278f88f194437 100644 (file)
@@ -4,11 +4,14 @@ import org.apache.tools.ant.BuildException;
 \r
 import org.argeo.slc.ant.structure.SAwareArg;\r
 import org.argeo.slc.ant.structure.SAwareTask;\r
+import org.argeo.slc.core.deploy.DeployedSystem;\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.TestRun;\r
 \r
-/** Ant task wrapping a test run.*/\r
-public class SlcTestTask extends SAwareTask {\r
+/** Ant task wrapping a test run. */\r
+public class SlcTestTask extends SAwareTask implements TestRun {\r
 \r
        private TestDefinitionArg testDefinitionArg;\r
        private TestDataArg testDataArg;\r
@@ -16,9 +19,8 @@ public class SlcTestTask extends SAwareTask {
        @Override\r
        public void executeActions(String mode) throws BuildException {\r
                TestDefinition testDefinition = testDefinitionArg.getTestDefinition();\r
-               testDefinition.setTestData(testDataArg.getTestData());\r
-               testDefinition.execute();\r
-       }       \r
+               testDefinition.execute(this);\r
+       }\r
 \r
        public TestDefinitionArg createTestDefinition() {\r
                testDefinitionArg = new TestDefinitionArg();\r
@@ -31,17 +33,48 @@ public class SlcTestTask extends SAwareTask {
                sAwareArgs.add(testDataArg);\r
                return testDataArg;\r
        }\r
+\r
+       public DeployedSystem getDeployedSystem() {\r
+               throw new RuntimeException("Not yet implemented.");\r
+       }\r
+\r
+       public TestDefinition geTestDefinition() {\r
+               return testDefinitionArg.getTestDefinition();\r
+       }\r
+\r
+       public TestData getTestData() {\r
+               return testDataArg.getTestData();\r
+       }\r
+\r
+       public TestResult getTestResult() {\r
+               throw new RuntimeException("Not yet implemented.");\r
+       }\r
+\r
 }\r
 \r
 class TestDefinitionArg extends SAwareArg {\r
-       public TestDefinition getTestDefinition(){\r
-               return (TestDefinition)getBeanInstance();\r
+       private TestDefinition testDefinition;\r
+\r
+       public TestDefinition getTestDefinition() {\r
+               if (testDefinition == null) {\r
+                       // don't call Spring each time in order not to multi-instantiate\r
+                       // prototype\r
+                       testDefinition = (TestDefinition) getBeanInstance();\r
+               }\r
+               return testDefinition;\r
        }\r
 }\r
 \r
 class TestDataArg extends SAwareArg {\r
-       public TestData getTestData(){\r
-               return (TestData)getBeanInstance();\r
+       private TestData testData;\r
+\r
+       public TestData getTestData() {\r
+               if (testData == null) {\r
+                       // don't call Spring each time in order not to multi-instantiate\r
+                       // prototype\r
+                       testData = (TestData) getBeanInstance();\r
+               }\r
+               return testData;\r
        }\r
 \r
 }\r
diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/build/DistributionId.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/build/DistributionId.java
new file mode 100644 (file)
index 0000000..9262479
--- /dev/null
@@ -0,0 +1,6 @@
+package org.argeo.slc.core.build;\r
+\r
+/** The id uniquely identifying the distribution of a software system. */\r
+public interface DistributionId {\r
+\r
+}\r
diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/DeployedSystem.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/DeployedSystem.java
new file mode 100644 (file)
index 0000000..250c2a4
--- /dev/null
@@ -0,0 +1,6 @@
+package org.argeo.slc.core.deploy;\r
+\r
+/** An instance of a software system.*/\r
+public interface DeployedSystem {\r
+       public DeployedSystemId getDeployedSystemId();\r
+}\r
diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/DeployedSystemId.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/DeployedSystemId.java
new file mode 100644 (file)
index 0000000..bddb81d
--- /dev/null
@@ -0,0 +1,8 @@
+package org.argeo.slc.core.deploy;\r
+\r
+import org.argeo.slc.core.build.DistributionId;\r
+\r
+/** The id uniquely identifying a deployed system.*/\r
+public interface DeployedSystemId {\r
+       public DistributionId getDistributionId();\r
+}\r
index 2eaf7bc8a0a78a17a660e54751cf5759659b5fd1..77ee482807732546dfb77534bb6c3ba8e948eca4 100644 (file)
@@ -1,13 +1,10 @@
 package org.argeo.slc.core.test;\r
 \r
 /**\r
- * The programmatic definition of a test, which will be associated with test\r
- * data within a test run.\r
+ * The programmatic definition of a test, which will be associated with\r
+ * transient objects within a test run.\r
  */\r
 public interface TestDefinition {\r
-       /** Perform the test. */\r
-       public void execute();\r
-\r
-       /** Initialize the test data */\r
-       public void setTestData(TestData testData);\r
+       /** Performs the test. */\r
+       public void execute(TestRun testRun);\r
 }\r
index d88d2de567e98fe216e896a8296bcb266b6af080..7292ccb4aa5ef674badd6d0693278cc20326776a 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.slc.core.test;\r
 \r
-/** The result of a test (<b>NOT YET IMPLEMENTED</b>)*/\r
+/** The result of a test */\r
 public interface TestResult {\r
-\r
+       public TestResultId geTestResultId();\r
 }\r
diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/test/TestResultId.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/test/TestResultId.java
new file mode 100644 (file)
index 0000000..5dfa073
--- /dev/null
@@ -0,0 +1,8 @@
+package org.argeo.slc.core.test;\r
+\r
+import org.argeo.slc.core.deploy.DeployedSystemId;\r
+\r
+/** The unique id referencing a test result.*/\r
+public interface TestResultId {\r
+       public DeployedSystemId getDeployedSystemId();\r
+}\r
index f77169707991edeea5bb9a01b29dc28772233e8e..ce8e3623dd75f2f578e9d87f744be3822995ab75 100644 (file)
@@ -1,6 +1,14 @@
 package org.argeo.slc.core.test;\r
 \r
-/** The actual run of a test (<b>NOT YET IMPLEMENTED</b>)*/\r
+import org.argeo.slc.core.deploy.DeployedSystem;\r
+\r
+/** The actual run of a test */\r
 public interface TestRun {\r
+       public TestDefinition geTestDefinition();\r
+\r
+       public TestData getTestData();\r
+\r
+       public DeployedSystem getDeployedSystem();\r
 \r
+       public TestResult getTestResult();\r
 }\r
index aa3532f739249bd3a9c1d97a350eaf26dff74b74..940e414b102a56e4a4d71302aae05ee185ee9e56 100644 (file)
@@ -1,13 +1,17 @@
 package org.argeo.slc.testslc;\r
 \r
 import org.argeo.slc.core.test.IncompatibleTestDataException;\r
-import org.argeo.slc.core.test.TestData;\r
 import org.argeo.slc.core.test.TestDefinition;\r
+import org.argeo.slc.core.test.TestRun;\r
 \r
 public class DummyTestDefinition implements TestDefinition {\r
-       private DummyTestData testData;\r
 \r
-       public void execute() {\r
+       public void execute(TestRun testRun) {\r
+               if (!(testRun.getTestData() instanceof DummyTestData)) {\r
+                       throw new IncompatibleTestDataException(testRun.getTestData(), this);\r
+               }\r
+               DummyTestData testData = (DummyTestData) testRun.getTestData();\r
+\r
                if (testData.getReached().equals(testData.getExpected())) {\r
                        stdOut("Test passed");\r
                } else {\r
@@ -15,13 +19,6 @@ public class DummyTestDefinition implements TestDefinition {
                }\r
        }\r
 \r
-       public void setTestData(TestData testData) {\r
-               if (!(testData instanceof DummyTestData)) {\r
-                       throw new IncompatibleTestDataException(testData, this);\r
-               }\r
-               this.testData = (DummyTestData) testData;\r
-       }\r
-\r
        private static void stdOut(Object o) {\r
                System.out.println(o);\r
        }\r