]> git.argeo.org Git - gpl/argeo-slc.git/blob - cms/org.argeo.slc.runtime/src/org/argeo/slc/runtime/test/TestDataUtils.java
Clarify SLC project structure.
[gpl/argeo-slc.git] / cms / org.argeo.slc.runtime / src / org / argeo / slc / runtime / test / TestDataUtils.java
1 package org.argeo.slc.runtime.test;
2
3 import org.argeo.slc.UnsupportedException;
4 import org.argeo.slc.test.TestData;
5 import org.argeo.slc.test.TestDataProvider;
6
7 /** Utilities for dealing with test datas. */
8 public class TestDataUtils {
9 /** Extracts the test data from the given provider. */
10 public static <T extends TestData> T getFromProvider(Object obj,
11 Class<T> clss, String key) {
12 if (obj instanceof TestDataProvider) {
13 TestDataProvider testDataProvider = (TestDataProvider) obj;
14 return testDataProvider.getTestData(clss, key);
15 } else {
16 throw new UnsupportedException("test data provider", obj);
17 }
18 }
19
20 /**
21 * Extracts the test data from the given provider using <code>null</code>
22 * as key.
23 */
24 public static <T extends TestData> T getFromProvider(Object obj,
25 Class<T> clss) {
26 return getFromProvider(obj, clss, null);
27 }
28
29 /**
30 * Returns it self after making the proper checks. Used for test data being
31 * their own data providers.
32 */
33 @SuppressWarnings("unchecked")
34 public static <T extends TestData> T getItSelf(Class<T> clss,
35 TestData testDataObject) {
36 if (clss.isAssignableFrom(testDataObject.getClass())) {
37 return (T) testDataObject;
38 } else {
39 throw new UnsupportedException("test data", testDataObject);
40 }
41
42 }
43
44 /** Makes sure this is an utility class. */
45 private TestDataUtils() {
46
47 }
48 }