]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc/src/test/java/org/argeo/slc/example/SimpleExampleTestDef.java
Introduce end to end testing with logging of results
[gpl/argeo-slc.git] / org.argeo.slc / src / test / java / org / argeo / slc / example / SimpleExampleTestDef.java
1 package org.argeo.slc.example;
2
3 import java.io.BufferedReader;
4 import java.io.File;
5 import java.io.FileReader;
6 import java.io.IOException;
7
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10
11 import org.argeo.slc.core.test.SimpleResultPart;
12 import org.argeo.slc.core.test.TestDefinition;
13 import org.argeo.slc.core.test.TestResult;
14 import org.argeo.slc.core.test.TestResultPart;
15 import org.argeo.slc.core.test.TestRun;
16 import org.argeo.slc.example.appli.ExampleAppli;
17
18 public class SimpleExampleTestDef implements TestDefinition {
19 private Log log = LogFactory.getLog(SimpleExampleTestDef.class);
20
21 public void execute(TestRun testRun) {
22 ExampleDeployedSystem system = (ExampleDeployedSystem) testRun
23 .getDeployedSystem();
24
25 ExampleTestData data = (ExampleTestData) testRun.getTestData();
26
27 ExampleAppli appli = system.getExampleAppliInstance();
28 String[] args = { data.getInputFile().getAbsolutePath(),
29 data.getReachedFile().getAbsolutePath() };
30
31 // execute
32 log.info("Execute example appli...");
33 appli.filter(args);
34
35 TestResult result = testRun.getTestResult();
36 result.addResultPart(assertFiles(data));
37 }
38
39 private TestResultPart assertFiles(ExampleTestData data) {
40 SimpleResultPart part = new SimpleResultPart();
41 part.setMessage("Compare " + data.getExpectedFile().getName()
42 + " with " + data.getReachedFile().getName());
43 try {
44 String expected = loadFile(data.getExpectedFile());
45 String reached = loadFile(data.getReachedFile());
46 part.setStatus(expected.equals(reached) ? SimpleResultPart.PASSED
47 : SimpleResultPart.FAILED);
48 } catch (Exception e) {
49 part.setStatus(SimpleResultPart.ERROR);
50 part.setException(e);
51 log.error("Error while asserting files", e);
52 }
53 return part;
54 }
55
56 public String loadFile(File file) throws IOException {
57 StringBuffer buf = new StringBuffer("");
58 BufferedReader in = new BufferedReader(new FileReader(file));
59 String line;
60 while ((line = in.readLine()) != null) {
61 buf.append(line).append('\n');
62 }
63 in.close();
64 return buf.toString();
65 }
66 }