]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/UnitTestTreeUtil.java
Introduce a date assert with second precision
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / unit / test / tree / UnitTestTreeUtil.java
1 package org.argeo.slc.unit.test.tree;
2
3 import static junit.framework.Assert.assertEquals;
4 import static junit.framework.Assert.assertNotNull;
5 import static junit.framework.Assert.assertNull;
6 import static junit.framework.Assert.fail;
7 import static org.argeo.slc.unit.UnitUtils.assertDateSec;
8
9 import org.argeo.slc.core.structure.SimpleSElement;
10 import org.argeo.slc.core.structure.tree.TreeSPath;
11 import org.argeo.slc.core.test.SimpleResultPart;
12 import org.argeo.slc.core.test.TestResultPart;
13 import org.argeo.slc.core.test.tree.PartSubList;
14 import org.argeo.slc.core.test.tree.TreeTestResult;
15
16 /** Utilities for unit tests. */
17 public class UnitTestTreeUtil {
18 public static void assertTreeTestResult(TreeTestResult expected,
19 TreeTestResult reached) {
20 assertEquals(expected.getTestResultId(), reached.getTestResultId());
21 assertDateSec(expected.getCloseDate(), reached.getCloseDate());
22
23 assertEquals(expected.getResultParts().size(), reached.getResultParts()
24 .size());
25 for (TreeSPath path : expected.getResultParts().keySet()) {
26 PartSubList lstExpected = expected.getResultParts().get(path);
27 PartSubList lstReached = expected.getResultParts().get(path);
28 if (lstReached == null) {
29 fail("No result for path " + path);
30 return;
31 }
32 assertPartSubList(lstExpected, lstReached);
33 }
34
35 assertEquals(expected.getElements().size(), reached.getElements()
36 .size());
37 for (TreeSPath path : expected.getElements().keySet()) {
38 // String nameExpected = expected.getElements().get(path);
39 // String nameReached = expected.getElements().get(path);
40 SimpleSElement elemExpected = (SimpleSElement) expected
41 .getElements().get(path);
42 SimpleSElement elemReached = (SimpleSElement) expected
43 .getElements().get(path);
44 assertNotNull(elemReached);
45 assertElements(elemExpected, elemReached);
46 }
47
48 }
49
50 public static void assertElements(SimpleSElement expected,
51 SimpleSElement reached) {
52 assertEquals(expected.getLabel(), reached.getLabel());
53 assertEquals(expected.getTags().size(), reached.getTags().size());
54 for (String tagName : expected.getTags().keySet()) {
55 String expectedTagValue = expected.getTags().get(tagName);
56 String reachedTagValue = reached.getTags().get(tagName);
57 assertNotNull(reachedTagValue);
58 assertEquals(expectedTagValue, reachedTagValue);
59 }
60 }
61
62 public static void assertPartSubList(PartSubList lstExpected,
63 PartSubList lstReached) {
64 if (lstExpected.getSlcExecutionUuid() == null) {
65 assertNull(lstReached.getSlcExecutionUuid());
66 } else {
67 assertEquals(lstExpected.getSlcExecutionUuid(), lstReached
68 .getSlcExecutionUuid());
69 }
70
71 if (lstExpected.getSlcExecutionStepUuid() == null) {
72 assertNull(lstReached.getSlcExecutionStepUuid());
73 } else {
74 assertEquals(lstExpected.getSlcExecutionStepUuid(), lstReached
75 .getSlcExecutionStepUuid());
76 }
77
78 assertEquals(lstExpected.getParts().size(), lstReached.getParts()
79 .size());
80 for (int i = 0; i < lstExpected.getParts().size(); i++) {
81 assertPart(lstExpected.getParts().get(i), lstReached.getParts()
82 .get(i));
83 }
84 }
85
86 /**
87 * Assert one part of a tree test result.
88 *
89 * @deprecated use {@link #assertPart(TestResultPart, TestResultPart)}
90 * instead
91 */
92 public static void assertPart(TreeTestResult testResult, String pathStr,
93 int index, Integer status, String message) {
94 TreeSPath path = TreeSPath.parseToCreatePath(pathStr);
95 PartSubList list = testResult.getResultParts().get(path);
96 if (list == null) {
97 fail("No result for path " + path);
98 return;
99 }
100 if (index >= list.getParts().size()) {
101 fail("Not enough parts.");
102 }
103 SimpleResultPart part = (SimpleResultPart) list.getParts().get(index);
104 assertPart(part, status, message, null);
105 }
106
107 public static void assertPart(TestResultPart expected,
108 TestResultPart reached) {
109 assertPart(reached, expected.getStatus(), expected.getMessage(),
110 expected.getException());
111 }
112
113 /** Assert one part of a tree test result. */
114 private static void assertPart(TestResultPart part, Integer status,
115 String message, Exception exception) {
116 assertEquals(status, part.getStatus());
117 assertEquals(message, part.getMessage());
118 if (exception == null) {
119 assertNull(part.getException());
120 } else {
121 assertEquals(exception, part.getException());
122 }
123 }
124
125 /** Makes sure this is a singleton */
126 private UnitTestTreeUtil() {
127
128 }
129 }