]> git.argeo.org Git - gpl/argeo-slc.git/blob - examples/org.argeo.slc.example01/src/main/java/org/argeo/slc/example/SimpleExampleTestDef.java
56d9e42ca711d5281836d5bcdeaf11214ad5ceff
[gpl/argeo-slc.git] / examples / org.argeo.slc.example01 / src / main / 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 import org.argeo.slc.core.test.SimpleResultPart;
11 import org.argeo.slc.example.appli.ExampleAppli;
12 import org.argeo.slc.test.TestDefinition;
13 import org.argeo.slc.test.TestResult;
14 import org.argeo.slc.test.TestResultPart;
15 import org.argeo.slc.test.TestRun;
16 import org.argeo.slc.test.TestStatus;
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 TestResult result = testRun.getTestResult();
32
33 SimpleResultPart executePart = new SimpleResultPart();
34 executePart.setMessage("Execute example appli");
35 try {
36 // execute
37 appli.filter(args);
38
39 executePart.setStatus(TestStatus.PASSED);
40 } catch (Exception e) {
41 executePart.setStatus(TestStatus.ERROR);
42 executePart.setException(e);
43 }
44 result.addResultPart(executePart);
45 if (executePart.getStatus() == TestStatus.ERROR) {
46 return;
47 }
48
49 result.addResultPart(assertFiles(data));
50 }
51
52 private TestResultPart assertFiles(ExampleTestData data) {
53 SimpleResultPart part = new SimpleResultPart();
54 part.setMessage("Compare " + data.getExpectedFile().getName()
55 + " with " + data.getReachedFile().getName());
56 try {
57 String expected = loadFile(data.getExpectedFile());
58 String reached = loadFile(data.getReachedFile());
59 part.setStatus(expected.equals(reached) ? TestStatus.PASSED
60 : TestStatus.FAILED);
61 } catch (Exception e) {
62 part.setStatus(TestStatus.ERROR);
63 part.setException(e);
64 log.error("Error while asserting files", e);
65 }
66 return part;
67 }
68
69 public String loadFile(File file) throws IOException {
70 StringBuffer buf = new StringBuffer("");
71 BufferedReader in = new BufferedReader(new FileReader(file));
72 String line;
73 while ((line = in.readLine()) != null) {
74 buf.append(line).append('\n');
75 }
76 in.close();
77 return buf.toString();
78 }
79 }