</bean>\r
\r
<bean id="context.simple2" parent="context.template">\r
+ <property name="values">\r
+ <map>\r
+ <entry key="reference" value="29" />\r
+ </map>\r
+ </property>\r
+ <property name="expectedValues">\r
+ <map>\r
+ <entry key="reference" value="22" />\r
+ <entry key="varIntern" value="60" />\r
+ </map>\r
+ </property>\r
+ </bean>\r
+ \r
+ <bean id="context.complex1" parent="context.template">\r
<property name="values">\r
<map>\r
<entry key="var" value="50" />\r
+ <entry key="reference2" value="28" />\r
+ <entry key="greeting" value="Hallo" />\r
</map>\r
</property>\r
<property name="expectedValues">\r
<map>\r
- <entry key="reference" value="21" />\r
+ <entry key="reference2" value="22" />\r
<entry key="var" value="50" />\r
<entry key="varIntern" value="60" />\r
<entry key="varExtern" value="70" />\r
+ <entry key="greeting" value="Bonjour" />\r
</map>\r
</property>\r
</bean>\r
\r
<import file="complex.xml" />\r
\r
- <target name="test" depends="testSimple,testComplex,testError,testContext">\r
+ <target name="test" depends="testSimple,testComplex,testError">\r
<slc.closeResult result="testResult" />\r
<slc.closeResult result="testResult2" />\r
<slc.report report="report" />\r
<project>\r
<description>Complex targets</description>\r
\r
-\r
<target name="testComplex" description="A complex test">\r
<slc.test description="Complex test">\r
<testDefinition bean="complexExampleTestDef" />\r
<testData bean="testData.un" />\r
</slc.test>\r
</target>\r
-\r
- <target name="testContext" description="Tests with context">\r
- <slc.context id="context1">\r
- <values>\r
- <entry key="varExtern" value="70" />\r
- </values>\r
- <expectedValues>\r
- <entry key="reference" value="20" />\r
- </expectedValues>\r
- </slc.context>\r
-\r
- <slc.test description="Context 1">\r
- <testDefinition bean="simpleContextTestDef" />\r
- <testData bean="context.simple1">\r
- <override name="parentContext" antref="context1" />\r
- </testData>\r
- </slc.test>\r
-\r
- <slc.test description="Context 2">\r
- <testDefinition bean="simpleContextTestDef" />\r
- <testData bean="context.simple2">\r
- <override name="parentContext" antref="context1" />\r
- </testData>\r
- </slc.test>\r
- </target>\r
-\r
-\r
</project>
\ No newline at end of file
--- /dev/null
+<project default="testContext">\r
+ <target name="testContext" description="Tests with context">\r
+ <slc.context id="context1">\r
+ <values>\r
+ <entry key="varExtern" value="70" />\r
+ </values>\r
+ <expectedValues>\r
+ <entry key="reference" value="20" />\r
+ </expectedValues>\r
+ </slc.context>\r
+\r
+ <slc.test description="Context 1">\r
+ <testDefinition bean="simpleContextTestDef" />\r
+ <testData bean="context.simple1">\r
+ <override name="parentContext" antref="context1" />\r
+ </testData>\r
+ </slc.test>\r
+\r
+ <slc.test description="Context 2">\r
+ <testDefinition bean="simpleContextTestDef" />\r
+ <testData bean="context.complex1">\r
+ <override name="parentContext" antref="context1">\r
+ <override name="updateValues">\r
+ <map>\r
+ <entry key="greeting" value="Bonjour" />\r
+ </map>\r
+ </override>\r
+ <override name="updateExpectedValues">\r
+ <map>\r
+ <entry key="reference2" value="28" />\r
+ </map>\r
+ </override>\r
+ </override>\r
+ </testData>\r
+ </slc.test>\r
+ </target>\r
+\r
+ <target name="testBaseContext" description="Tests with base context">\r
+ <slc.context id="context1">\r
+ <expectedValues>\r
+ <entry key="reference" value="20" />\r
+ </expectedValues>\r
+ </slc.context>\r
+\r
+ <slc.test description="Context 1">\r
+ <testDefinition bean="simpleContextTestDef" />\r
+ <testData bean="context.simple1">\r
+ <override name="parentContext" antref="context1" />\r
+ </testData>\r
+ </slc.test>\r
+\r
+ <slc.context id="context2" basedon="context1">\r
+ <values>\r
+ <entry key="reference" value="29" />\r
+ </values>\r
+ <expectedValues>\r
+ <entry key="reference" value="29" />\r
+ </expectedValues>\r
+ </slc.context>\r
+ \r
+ <slc.test description="Context 2">\r
+ <testDefinition bean="simpleContextTestDef" />\r
+ <testData bean="context.simple2">\r
+ <override name="parentContext" antref="context2"/>\r
+ </testData>\r
+ </slc.test>\r
+ </target>\r
+\r
+</project>
\ No newline at end of file
--- /dev/null
+package org.argeo.slc.example.junit;\r
+\r
+import java.io.File;\r
+\r
+import junit.framework.TestCase;\r
+\r
+import org.springframework.context.ApplicationContext;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.apache.tools.ant.Project;\r
+\r
+import org.argeo.slc.ant.AntRegistryUtil;\r
+import org.argeo.slc.ant.SlcProjectHelper;\r
+import org.argeo.slc.core.test.NumericTRId;\r
+import org.argeo.slc.core.test.TestStatus;\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.dao.test.TestResultDao;\r
+import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;\r
+\r
+public class ContextIntegrationTest extends TestCase {\r
+ private static Log log = LogFactory.getLog(ContextIntegrationTest.class);\r
+\r
+ public void testContext() throws Exception {\r
+ TestResultDao<TreeTestResult> testResultDao = runAnt(\r
+ "root/Context/build.xml", null);\r
+\r
+ NumericTRId numericTRId = new NumericTRId();\r
+ numericTRId.setValue(1l);\r
+ TreeTestResult testResult1 = (TreeTestResult) testResultDao\r
+ .getTestResult(numericTRId);\r
+\r
+ String basePath = "/root/Context/testContext/";\r
+ UnitTestTreeUtil.assertPart(testResult1, basePath\r
+ + "slc.test0/reference", 0, TestStatus.PASSED,\r
+ "Values matched for key 'reference'");\r
+ UnitTestTreeUtil.assertPart(testResult1, basePath\r
+ + "slc.test1/reference2", 0, TestStatus.PASSED,\r
+ "Values matched for key 'reference2'");\r
+ UnitTestTreeUtil.assertPart(testResult1, basePath\r
+ + "slc.test1/var", 0, TestStatus.PASSED,\r
+ "Values matched for key 'var'");\r
+ UnitTestTreeUtil.assertPart(testResult1, basePath\r
+ + "slc.test1/varIntern", 0, TestStatus.PASSED,\r
+ "Values matched for key 'varIntern'");\r
+ UnitTestTreeUtil.assertPart(testResult1, basePath\r
+ + "slc.test1/varExtern", 0, TestStatus.PASSED,\r
+ "Values matched for key 'varExtern'");\r
+ UnitTestTreeUtil.assertPart(testResult1, basePath\r
+ + "slc.test1/greeting", 0, TestStatus.PASSED,\r
+ "Values matched for key 'greeting'");\r
+\r
+ }\r
+\r
+ public void testBaseContext() throws Exception {\r
+ TestResultDao<TreeTestResult> testResultDao = runAnt(\r
+ "root/Context/build.xml", "testBaseContext");\r
+\r
+ NumericTRId numericTRId = new NumericTRId();\r
+ numericTRId.setValue(1l);\r
+ TreeTestResult testResult1 = (TreeTestResult) testResultDao\r
+ .getTestResult(numericTRId);\r
+\r
+ String basePath = "/root/Context/testBaseContext/";\r
+ UnitTestTreeUtil.assertPart(testResult1, basePath\r
+ + "slc.test0/reference", 0, TestStatus.PASSED,\r
+ "Values matched for key 'reference'");\r
+ UnitTestTreeUtil.assertPart(testResult1, basePath\r
+ + "slc.test1/reference", 0, TestStatus.PASSED,\r
+ "Values matched for key 'reference'");\r
+ UnitTestTreeUtil.assertPart(testResult1, basePath\r
+ + "slc.test1/varIntern", 0, TestStatus.PASSED,\r
+ "Values matched for key 'varIntern'");\r
+\r
+ }\r
+\r
+ private TestResultDao<TreeTestResult> runAnt(String antFileRelPath,\r
+ String target) throws Exception {\r
+ String slcBase = System.getProperty("it.slc.base", "exampleSlcAppli");\r
+ File slcBaseDir = new File(slcBase).getCanonicalFile();\r
+ log.info("SLC base: " + slcBaseDir);\r
+\r
+ File antFile = new File(slcBaseDir.getPath() + File.separator\r
+ + antFileRelPath);\r
+ Project p = AntRegistryUtil.runAll(antFile, target);\r
+\r
+ ApplicationContext context = (ApplicationContext) p\r
+ .getReference(SlcProjectHelper.REF_ROOT_CONTEXT);\r
+\r
+ TestResultDao<TreeTestResult> testResultDao = (TestResultDao<TreeTestResult>) context\r
+ .getBean("testResultDao");\r
+ return testResultDao;\r
+\r
+ }\r
+}\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
+import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;\r
\r
/** High level tests for SLC Ant. */\r
public class ExampleIntegrationTest extends TestCase {\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
+ UnitTestTreeUtil\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
+ UnitTestTreeUtil.assertPart(testResult1,\r
"/root/Category1/SubCategory2/testSimple/slc.test0", 1,\r
TestStatus.FAILED,\r
"Compare nato-expected.txt with nato-reached.txt");\r
- assertPart(testResult1,\r
+ UnitTestTreeUtil.assertPart(testResult1,\r
"/root/Category1/SubCategory2/testError/slc.test0", 0,\r
TestStatus.ERROR, "Execute example appli");\r
\r
- // Context\r
- assertPart(testResult1,\r
- "/root/Category1/SubCategory2/testContext/slc.test1/reference",\r
- 0, TestStatus.PASSED, "Values matched for key 'reference'");\r
- assertPart(testResult1,\r
- "/root/Category1/SubCategory2/testContext/slc.test1/varIntern",\r
- 0, TestStatus.PASSED, "Values matched for key 'varIntern'");\r
- assertPart(testResult1,\r
- "/root/Category1/SubCategory2/testContext/slc.test1/varExtern",\r
- 0, TestStatus.PASSED, "Values matched for key 'varExtern'");\r
-\r
numericTRId.setValue(2l);\r
TreeTestResult testResult2 = (TreeTestResult) testResultDao\r
.getTestResult(numericTRId);\r
- assertPart(testResult2,\r
+ UnitTestTreeUtil.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
+ UnitTestTreeUtil.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
assertTrue(new File(reportDirPath + "slc-result-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