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