]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.hibernate/src/main/java/org/argeo/slc/core/test/TestDataUtils.java
Branch hibernate project from core
[gpl/argeo-slc.git] / org.argeo.slc.hibernate / src / main / java / org / argeo / slc / core / test / TestDataUtils.java
diff --git a/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/core/test/TestDataUtils.java b/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/core/test/TestDataUtils.java
new file mode 100644 (file)
index 0000000..66cae87
--- /dev/null
@@ -0,0 +1,45 @@
+package org.argeo.slc.core.test;\r
+\r
+import org.argeo.slc.core.UnsupportedException;\r
+\r
+/** Utilities for dealing with test datas. */\r
+public class TestDataUtils {\r
+       /** Extracts the test data from the given provider. */\r
+       public static <T extends TestData> T getFromProvider(Object obj,\r
+                       Class<T> clss, String key) {\r
+               if (obj instanceof TestDataProvider) {\r
+                       TestDataProvider testDataProvider = (TestDataProvider) obj;\r
+                       return testDataProvider.getTestData(clss, key);\r
+               } else {\r
+                       throw new UnsupportedException("test data provider", obj);\r
+               }\r
+       }\r
+\r
+       /**\r
+        * Extracts the test data from the given provider using <code>null</code>\r
+        * as key.\r
+        */\r
+       public static <T extends TestData> T getFromProvider(Object obj,\r
+                       Class<T> clss) {\r
+               return getFromProvider(obj, clss, null);\r
+       }\r
+\r
+       /**\r
+        * Returns it self after making the proper checks. Used for test data being\r
+        * their own data providers.\r
+        */\r
+       public static <T extends TestData> T getItSelf(Class<T> clss,\r
+                       TestData testDataObject) {\r
+               if (clss.isAssignableFrom(testDataObject.getClass())) {\r
+                       return (T) testDataObject;\r
+               } else {\r
+                       throw new UnsupportedException("test data", testDataObject);\r
+               }\r
+\r
+       }\r
+\r
+       /** Makes sure this is an utility class. */\r
+       private TestDataUtils() {\r
+\r
+       }\r
+}\r