]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestDataUtils.java
Modular distributions
[gpl/argeo-slc.git] / runtime / org.argeo.slc.core / src / main / java / org / argeo / slc / core / test / TestDataUtils.java
1 package org.argeo.slc.core.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 public static <T extends TestData> T getItSelf(Class<T> clss,
34 TestData testDataObject) {
35 if (clss.isAssignableFrom(testDataObject.getClass())) {
36 return (T) testDataObject;
37 } else {
38 throw new UnsupportedException("test data", testDataObject);
39 }
40
41 }
42
43 /** Makes sure this is an utility class. */
44 private TestDataUtils() {
45
46 }
47 }