From 0299080aa6b38c28e68325fc681fbec0ff2f1c79 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 1 Feb 2008 09:51:26 +0000 Subject: [PATCH] Introduce unit tests git-svn-id: https://svn.argeo.org/slc/trunk@941 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../exampleSlcAppli/conf/contextTests.xml | 19 +++- .../root/Category1/SubCategory2/build.xml | 2 +- .../root/Category1/SubCategory2/complex.xml | 28 ------ .../exampleSlcAppli/root/Context/build.xml | 69 ++++++++++++++ .../example/junit/ContextIntegrationTest.java | 95 +++++++++++++++++++ .../example/junit/ExampleIntegrationTest.java | 44 +++------ 6 files changed, 195 insertions(+), 62 deletions(-) create mode 100644 org.argeo.slc.example/exampleSlcAppli/root/Context/build.xml create mode 100644 org.argeo.slc.example/src/test/java/org/argeo/slc/example/junit/ContextIntegrationTest.java diff --git a/org.argeo.slc.example/exampleSlcAppli/conf/contextTests.xml b/org.argeo.slc.example/exampleSlcAppli/conf/contextTests.xml index 440c6b87b..3400ef02f 100644 --- a/org.argeo.slc.example/exampleSlcAppli/conf/contextTests.xml +++ b/org.argeo.slc.example/exampleSlcAppli/conf/contextTests.xml @@ -19,17 +19,34 @@ + + + + + + + + + + + + + + + + - + + diff --git a/org.argeo.slc.example/exampleSlcAppli/root/Category1/SubCategory2/build.xml b/org.argeo.slc.example/exampleSlcAppli/root/Category1/SubCategory2/build.xml index d27ad20fc..f07f374e8 100644 --- a/org.argeo.slc.example/exampleSlcAppli/root/Category1/SubCategory2/build.xml +++ b/org.argeo.slc.example/exampleSlcAppli/root/Category1/SubCategory2/build.xml @@ -3,7 +3,7 @@ - + diff --git a/org.argeo.slc.example/exampleSlcAppli/root/Category1/SubCategory2/complex.xml b/org.argeo.slc.example/exampleSlcAppli/root/Category1/SubCategory2/complex.xml index 88cbf3fad..14e8695b7 100644 --- a/org.argeo.slc.example/exampleSlcAppli/root/Category1/SubCategory2/complex.xml +++ b/org.argeo.slc.example/exampleSlcAppli/root/Category1/SubCategory2/complex.xml @@ -1,7 +1,6 @@ Complex targets - @@ -18,31 +17,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/org.argeo.slc.example/exampleSlcAppli/root/Context/build.xml b/org.argeo.slc.example/exampleSlcAppli/root/Context/build.xml new file mode 100644 index 000000000..10c3f870e --- /dev/null +++ b/org.argeo.slc.example/exampleSlcAppli/root/Context/build.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/org.argeo.slc.example/src/test/java/org/argeo/slc/example/junit/ContextIntegrationTest.java b/org.argeo.slc.example/src/test/java/org/argeo/slc/example/junit/ContextIntegrationTest.java new file mode 100644 index 000000000..f7f69bc62 --- /dev/null +++ b/org.argeo.slc.example/src/test/java/org/argeo/slc/example/junit/ContextIntegrationTest.java @@ -0,0 +1,95 @@ +package org.argeo.slc.example.junit; + +import java.io.File; + +import junit.framework.TestCase; + +import org.springframework.context.ApplicationContext; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.tools.ant.Project; + +import org.argeo.slc.ant.AntRegistryUtil; +import org.argeo.slc.ant.SlcProjectHelper; +import org.argeo.slc.core.test.NumericTRId; +import org.argeo.slc.core.test.TestStatus; +import org.argeo.slc.core.test.tree.TreeTestResult; +import org.argeo.slc.dao.test.TestResultDao; +import org.argeo.slc.unit.test.tree.UnitTestTreeUtil; + +public class ContextIntegrationTest extends TestCase { + private static Log log = LogFactory.getLog(ContextIntegrationTest.class); + + public void testContext() throws Exception { + TestResultDao testResultDao = runAnt( + "root/Context/build.xml", null); + + NumericTRId numericTRId = new NumericTRId(); + numericTRId.setValue(1l); + TreeTestResult testResult1 = (TreeTestResult) testResultDao + .getTestResult(numericTRId); + + String basePath = "/root/Context/testContext/"; + UnitTestTreeUtil.assertPart(testResult1, basePath + + "slc.test0/reference", 0, TestStatus.PASSED, + "Values matched for key 'reference'"); + UnitTestTreeUtil.assertPart(testResult1, basePath + + "slc.test1/reference2", 0, TestStatus.PASSED, + "Values matched for key 'reference2'"); + UnitTestTreeUtil.assertPart(testResult1, basePath + + "slc.test1/var", 0, TestStatus.PASSED, + "Values matched for key 'var'"); + UnitTestTreeUtil.assertPart(testResult1, basePath + + "slc.test1/varIntern", 0, TestStatus.PASSED, + "Values matched for key 'varIntern'"); + UnitTestTreeUtil.assertPart(testResult1, basePath + + "slc.test1/varExtern", 0, TestStatus.PASSED, + "Values matched for key 'varExtern'"); + UnitTestTreeUtil.assertPart(testResult1, basePath + + "slc.test1/greeting", 0, TestStatus.PASSED, + "Values matched for key 'greeting'"); + + } + + public void testBaseContext() throws Exception { + TestResultDao testResultDao = runAnt( + "root/Context/build.xml", "testBaseContext"); + + NumericTRId numericTRId = new NumericTRId(); + numericTRId.setValue(1l); + TreeTestResult testResult1 = (TreeTestResult) testResultDao + .getTestResult(numericTRId); + + String basePath = "/root/Context/testBaseContext/"; + UnitTestTreeUtil.assertPart(testResult1, basePath + + "slc.test0/reference", 0, TestStatus.PASSED, + "Values matched for key 'reference'"); + UnitTestTreeUtil.assertPart(testResult1, basePath + + "slc.test1/reference", 0, TestStatus.PASSED, + "Values matched for key 'reference'"); + UnitTestTreeUtil.assertPart(testResult1, basePath + + "slc.test1/varIntern", 0, TestStatus.PASSED, + "Values matched for key 'varIntern'"); + + } + + private TestResultDao runAnt(String antFileRelPath, + String target) throws Exception { + String slcBase = System.getProperty("it.slc.base", "exampleSlcAppli"); + File slcBaseDir = new File(slcBase).getCanonicalFile(); + log.info("SLC base: " + slcBaseDir); + + File antFile = new File(slcBaseDir.getPath() + File.separator + + antFileRelPath); + Project p = AntRegistryUtil.runAll(antFile, target); + + ApplicationContext context = (ApplicationContext) p + .getReference(SlcProjectHelper.REF_ROOT_CONTEXT); + + TestResultDao testResultDao = (TestResultDao) context + .getBean("testResultDao"); + return testResultDao; + + } +} diff --git a/org.argeo.slc.example/src/test/java/org/argeo/slc/example/junit/ExampleIntegrationTest.java b/org.argeo.slc.example/src/test/java/org/argeo/slc/example/junit/ExampleIntegrationTest.java index cdc8fd596..c8fb1d62e 100644 --- a/org.argeo.slc.example/src/test/java/org/argeo/slc/example/junit/ExampleIntegrationTest.java +++ b/org.argeo.slc.example/src/test/java/org/argeo/slc/example/junit/ExampleIntegrationTest.java @@ -12,13 +12,11 @@ import org.apache.tools.ant.Project; import org.argeo.slc.ant.AntRegistryUtil; import org.argeo.slc.ant.SlcProjectHelper; -import org.argeo.slc.core.structure.tree.TreeSPath; import org.argeo.slc.core.test.NumericTRId; -import org.argeo.slc.core.test.SimpleResultPart; import org.argeo.slc.core.test.TestStatus; -import org.argeo.slc.core.test.tree.PartSubList; import org.argeo.slc.core.test.tree.TreeTestResult; import org.argeo.slc.dao.test.TestResultDao; +import org.argeo.slc.unit.test.tree.UnitTestTreeUtil; /** High level tests for SLC Ant. */ public class ExampleIntegrationTest extends TestCase { @@ -51,39 +49,29 @@ public class ExampleIntegrationTest extends TestCase { TreeTestResult testResult1 = (TreeTestResult) testResultDao .getTestResult(numericTRId); // assertPart(testResult1, "", 0, TestStatus.PASSED, ""); - assertPart( - testResult1, - "/root/Category1/SubCategory2/testComplex/slc.test0/0", - 0, - TestStatus.PASSED, - "Sub task with path /root/Category1/SubCategory2/testComplex/slc.test0/0 executed"); - assertPart(testResult1, + UnitTestTreeUtil + .assertPart( + testResult1, + "/root/Category1/SubCategory2/testComplex/slc.test0/0", + 0, + TestStatus.PASSED, + "Sub task with path /root/Category1/SubCategory2/testComplex/slc.test0/0 executed"); + UnitTestTreeUtil.assertPart(testResult1, "/root/Category1/SubCategory2/testSimple/slc.test0", 1, TestStatus.FAILED, "Compare nato-expected.txt with nato-reached.txt"); - assertPart(testResult1, + UnitTestTreeUtil.assertPart(testResult1, "/root/Category1/SubCategory2/testError/slc.test0", 0, TestStatus.ERROR, "Execute example appli"); - // Context - assertPart(testResult1, - "/root/Category1/SubCategory2/testContext/slc.test1/reference", - 0, TestStatus.PASSED, "Values matched for key 'reference'"); - assertPart(testResult1, - "/root/Category1/SubCategory2/testContext/slc.test1/varIntern", - 0, TestStatus.PASSED, "Values matched for key 'varIntern'"); - assertPart(testResult1, - "/root/Category1/SubCategory2/testContext/slc.test1/varExtern", - 0, TestStatus.PASSED, "Values matched for key 'varExtern'"); - numericTRId.setValue(2l); TreeTestResult testResult2 = (TreeTestResult) testResultDao .getTestResult(numericTRId); - assertPart(testResult2, + UnitTestTreeUtil.assertPart(testResult2, "/root/Category1/SubCategory2/testSimple/slc.test2", 1, TestStatus.PASSED, "Compare eu-reform-expected.txt with eu-reform-reached.txt"); - assertPart(testResult2, + UnitTestTreeUtil.assertPart(testResult2, "/root/Category1/SubCategory2/testSimple/slc.test3", 1, TestStatus.FAILED, "Compare eu-reform-expected.txt with eu-reform-reached.txt"); @@ -94,12 +82,4 @@ public class ExampleIntegrationTest extends TestCase { assertTrue(new File(reportDirPath + "slc-result-2.html").exists()); } - private void assertPart(TreeTestResult testResult, String pathStr, - int index, Integer status, String message) { - TreeSPath path = TreeSPath.parseToCreatePath(pathStr); - PartSubList list = testResult.getResultParts().get(path); - SimpleResultPart part = (SimpleResultPart) list.getParts().get(index); - assertEquals(status, part.getStatus()); - assertEquals(message, part.getMessage()); - } } -- 2.39.5