]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/BasicTestDefinition.java
Modular distributions
[gpl/argeo-slc.git] / runtime / org.argeo.slc.core / src / main / java / org / argeo / slc / core / test / BasicTestDefinition.java
1 package org.argeo.slc.core.test;
2
3 import org.argeo.slc.SlcException;
4 import org.argeo.slc.core.structure.tree.TreeSRelatedHelper;
5 import org.argeo.slc.core.test.context.ContextUtils;
6 import org.argeo.slc.test.IncompatibleTestDataException;
7 import org.argeo.slc.test.TestData;
8 import org.argeo.slc.test.TestDefinition;
9 import org.argeo.slc.test.TestResult;
10 import org.argeo.slc.test.TestRun;
11 import org.argeo.slc.test.TestStatus;
12 import org.argeo.slc.test.context.ContextAware;
13
14 /** Understands basic test data and context aware test data. */
15 public class BasicTestDefinition extends TreeSRelatedHelper implements
16 TestDefinition {
17
18 public void execute(TestRun testRun) {
19 if (testRun.<TestData> getTestData() instanceof BasicTestData) {
20 BasicTestData testData = testRun.getTestData();
21 TestResult result = testRun.getTestResult();
22
23 if (result == null)
24 throw new SlcException("No test result defined.");
25
26 try {
27 if (testData.getExpected().equals(testData.getReached())) {
28 result.addResultPart(new SimpleResultPart(
29 TestStatus.PASSED, "Reached and expected equals"));
30 } else {
31 result.addResultPart(new SimpleResultPart(
32 TestStatus.FAILED, "Expected "
33 + testData.getExpected() + " but reached "
34 + testData.getReached()));
35 }
36 } catch (Exception e) {
37 result.addResultPart(new SimpleResultPart(TestStatus.ERROR,
38 "Could not compare", e));
39 }
40 } else if (testRun.<TestData> getTestData() instanceof ContextAware) {
41 TestData testData = testRun.getTestData();
42 ContextUtils.compareReachedExpected((ContextAware) testData,
43 testRun.getTestResult(), this);
44 } else {
45 throw new IncompatibleTestDataException(testRun);
46 }
47 }
48 }