]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc/src/test/java/org/argeo/slc/example/junit/TestAntBuild.java
Improve error logging and reporting
[gpl/argeo-slc.git] / org.argeo.slc / src / test / java / org / argeo / slc / example / junit / TestAntBuild.java
1 package org.argeo.slc.example.junit;
2
3 import java.io.File;
4
5 import org.springframework.context.ApplicationContext;
6
7 import org.apache.tools.ant.Project;
8
9 import junit.framework.TestCase;
10
11 import org.argeo.slc.ant.AntRegistryUtil;
12 import org.argeo.slc.ant.SlcProjectHelper;
13 import org.argeo.slc.core.structure.tree.TreeSPath;
14 import org.argeo.slc.core.test.NumericTRId;
15 import org.argeo.slc.core.test.SimpleResultPart;
16 import org.argeo.slc.core.test.TestStatus;
17 import org.argeo.slc.core.test.tree.PartSubList;
18 import org.argeo.slc.core.test.tree.TreeTestResult;
19 import org.argeo.slc.dao.test.TestResultDao;
20
21 /** High level tests for SLC Ant. */
22 public class TestAntBuild extends TestCase {
23 /** Tests an end-to-end Ant run. */
24 public void testAllRunSimple() {
25 File[] reportFiles = new File("src/test/slc/work/results/report/")
26 .listFiles();
27 for (File file : reportFiles) {
28 file.delete();
29 }
30
31 File slcBaseDir = new File("./src/test/slc").getAbsoluteFile();
32
33 File antFile = new File(slcBaseDir.getPath()
34 + "/root/Category1/SubCategory2/build.xml");
35 Project p = AntRegistryUtil.runAll(antFile);
36
37 ApplicationContext context = (ApplicationContext) p
38 .getReference(SlcProjectHelper.REF_ROOT_CONTEXT);
39
40 TestResultDao testResultDao = (TestResultDao) context
41 .getBean("testResultDao");
42
43 NumericTRId numericTRId = new NumericTRId();
44 numericTRId.setValue(1l);
45 TreeTestResult testResult1 = (TreeTestResult) testResultDao
46 .getTestResult(numericTRId);
47 // assertPart(testResult1, "", 0, TestStatus.PASSED, "");
48 assertPart(
49 testResult1,
50 "/root/Category1/SubCategory2/testComplex/slc.test0/0",
51 0,
52 TestStatus.PASSED,
53 "Sub task with path /root/Category1/SubCategory2/testComplex/slc.test0/0 executed");
54 assertPart(testResult1,
55 "/root/Category1/SubCategory2/testSimple/slc.test0", 1,
56 TestStatus.FAILED,
57 "Compare nato-expected.txt with nato-reached.txt");
58 assertPart(testResult1,
59 "/root/Category1/SubCategory2/testError/slc.test0", 0,
60 TestStatus.ERROR, "Execute example appli");
61
62 numericTRId.setValue(2l);
63 TreeTestResult testResult2 = (TreeTestResult) testResultDao
64 .getTestResult(numericTRId);
65 assertPart(testResult2,
66 "/root/Category1/SubCategory2/testSimple/slc.test2", 1,
67 TestStatus.PASSED,
68 "Compare eu-reform-expected.txt with eu-reform-reached.txt");
69 assertPart(testResult2,
70 "/root/Category1/SubCategory2/testSimple/slc.test3", 1,
71 TestStatus.FAILED,
72 "Compare eu-reform-expected.txt with eu-reform-reached.txt");
73
74 String reportDirPath = "src/test/slc/work/results/report/";
75 assertTrue(new File(reportDirPath + "index.html").exists());
76 assertTrue(new File(reportDirPath + "slc-resultsList.html").exists());
77 assertTrue(new File(reportDirPath + "slc-result-1.html").exists());
78 assertTrue(new File(reportDirPath + "slc-result-2.html").exists());
79 }
80
81 private void assertPart(TreeTestResult testResult, String pathStr,
82 int index, Integer status, String message) {
83 TreeSPath path = TreeSPath.parseToCreatePath(pathStr);
84 PartSubList list = testResult.getResultParts().get(path);
85 SimpleResultPart part = (SimpleResultPart) list.getParts().get(index);
86 assertEquals(status, part.getStatus());
87 assertEquals(message, part.getMessage());
88 }
89 }