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