summaryrefslogtreecommitdiffstats
path: root/sandbox/old/contrib/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/DSComponentTypeLoaderTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/old/contrib/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/DSComponentTypeLoaderTestCase.java')
-rw-r--r--sandbox/old/contrib/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/DSComponentTypeLoaderTestCase.java88
1 files changed, 88 insertions, 0 deletions
diff --git a/sandbox/old/contrib/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/DSComponentTypeLoaderTestCase.java b/sandbox/old/contrib/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/DSComponentTypeLoaderTestCase.java
new file mode 100644
index 0000000000..87c12db9bf
--- /dev/null
+++ b/sandbox/old/contrib/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/DSComponentTypeLoaderTestCase.java
@@ -0,0 +1,88 @@
+package org.apache.tuscany.persistence.datasource;
+
+import javax.sql.DataSource;
+
+import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
+import org.apache.tuscany.spi.model.ComponentType;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class DSComponentTypeLoaderTestCase extends TestCase {
+
+ public void testIntrospection() throws Exception {
+ DSComponentTypeLoader loader = new DSComponentTypeLoader(null);
+ DataSourceImplementation implementation = new DataSourceImplementation();
+ implementation.setProviderName(Foo.class.getName());
+ implementation.setClassLoader(getClass().getClassLoader());
+ loader.load(implementation, null);
+ ComponentType<?, ?, ?> type = implementation.getComponentType();
+ assertEquals(2, type.getProperties().size());
+ assertNull(type.getProperties().get("object"));
+ Object bar = type.getProperties().get("bar");
+ assertEquals(String.class, ((JavaMappedProperty) bar).getJavaType());
+ Object baz = type.getProperties().get("baz");
+ assertEquals(Integer.TYPE, ((JavaMappedProperty) baz).getJavaType());
+ assertEquals(1, type.getServices().size());
+ assertEquals(DataSource.class, type.getServices().get("DataSource").getServiceContract().getInterfaceClass());
+ }
+
+
+ public void testOverloadedMethod() throws Exception {
+ DSComponentTypeLoader loader = new DSComponentTypeLoader(null);
+ DataSourceImplementation implementation = new DataSourceImplementation();
+ implementation.setProviderName(BadFoo.class.getName());
+ implementation.setClassLoader(getClass().getClassLoader());
+ try {
+ loader.load(implementation, null);
+ fail();
+ } catch (AmbiguousPropertyException e) {
+ // expected
+ }
+ }
+
+ public class Foo {
+
+ private String bar;
+
+ private int baz;
+
+ private Foo object;
+
+ public String getBar() {
+ return bar;
+ }
+
+ public void setBar(String bar) {
+ this.bar = bar;
+ }
+
+ public int getBaz() {
+ return baz;
+ }
+
+ public void setBaz(int baz) {
+ this.baz = baz;
+ }
+
+ public Foo getObject() {
+ return object;
+ }
+
+ public void setObject(Foo object) {
+ this.object = object;
+ }
+ }
+
+ public class BadFoo {
+
+ public void setBar(String bar) {
+ }
+
+ public void setBar(Object bar) {
+ }
+ }
+
+}