summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/tags/java-M1-final/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/loader/JavaImplementationLoaderTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-1.x/tags/java-M1-final/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/loader/JavaImplementationLoaderTestCase.java')
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/loader/JavaImplementationLoaderTestCase.java134
1 files changed, 134 insertions, 0 deletions
diff --git a/sca-java-1.x/tags/java-M1-final/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/loader/JavaImplementationLoaderTestCase.java b/sca-java-1.x/tags/java-M1-final/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/loader/JavaImplementationLoaderTestCase.java
new file mode 100644
index 0000000000..85e79d8780
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/loader/JavaImplementationLoaderTestCase.java
@@ -0,0 +1,134 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.container.java.loader;
+
+import java.net.URL;
+import java.util.List;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.namespace.QName;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.container.java.assembly.JavaAssemblyFactory;
+import org.apache.tuscany.container.java.assembly.impl.JavaAssemblyFactoryImpl;
+import org.apache.tuscany.container.java.assembly.mock.HelloWorldImpl;
+import org.apache.tuscany.container.java.assembly.mock.HelloWorldWithFieldProperties;
+import org.apache.tuscany.container.java.assembly.mock.NakedHelloWorld;
+import org.apache.tuscany.core.config.ConfigurationLoadException;
+import org.apache.tuscany.core.loader.StAXElementLoader;
+import org.apache.tuscany.core.loader.StAXLoaderRegistry;
+import org.apache.tuscany.core.loader.LoaderContext;
+import org.apache.tuscany.core.loader.assembly.AssemblyConstants;
+import org.apache.tuscany.model.assembly.AssemblyContext;
+import org.apache.tuscany.model.assembly.AssemblyObject;
+import org.apache.tuscany.model.assembly.ComponentType;
+import org.apache.tuscany.model.assembly.Property;
+import org.apache.tuscany.model.assembly.Service;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class JavaImplementationLoaderTestCase extends TestCase {
+ private JavaImplementationLoader loader;
+ private ComponentType mockType;
+
+ public void testNakedHelloWorld() throws ConfigurationLoadException {
+ ComponentType type = loader.loadComponentTypeByIntrospection(NakedHelloWorld.class);
+ Assert.assertNotNull(type);
+ Assert.assertEquals(1,type.getProperties().size());
+ Assert.assertTrue(type.getReferences().isEmpty());
+ List<Service> services = type.getServices();
+ Assert.assertEquals(1, services.size());
+ Assert.assertEquals("NakedHelloWorld", services.get(0).getName());
+ }
+
+ public void testHelloWorldWithSidefile() throws XMLStreamException, ConfigurationLoadException {
+ StAXLoaderRegistry mockRegistry = new MockRegistry(mockType);
+ loader.setRegistry(mockRegistry);
+ URL sidefile = HelloWorldImpl.class.getResource("HelloWorldImpl.componentType");
+ ComponentType type = loader.loadComponentTypeFromSidefile(sidefile, null);
+ assertSame(mockType, type);
+ }
+
+ public void testHelloWorldWithFieldProperties() throws ConfigurationLoadException {
+ ComponentType type = loader.loadComponentTypeByIntrospection(HelloWorldWithFieldProperties.class);
+ type.initialize(null);
+ Assert.assertNotNull(type);
+ List<Property> props = type.getProperties();
+ Assert.assertEquals(5, props.size());
+
+ Property prop = type.getProperty("text");
+ Assert.assertNotNull(prop);
+ Assert.assertEquals("text", prop.getName());
+ Assert.assertEquals(false, prop.isRequired());
+ Assert.assertEquals(String.class, prop.getType());
+
+ prop = type.getProperty("text2");
+ Assert.assertNotNull(prop);
+ Assert.assertEquals("text2", prop.getName());
+ Assert.assertEquals(true, prop.isRequired());
+ Assert.assertEquals(Integer.class, prop.getType());
+
+ prop = type.getProperty("foo");
+ Assert.assertNotNull(prop);
+ Assert.assertEquals("foo", prop.getName());
+ Assert.assertEquals(false, prop.isRequired());
+ Assert.assertEquals(Integer.TYPE, prop.getType());
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ JavaAssemblyFactory factory = new JavaAssemblyFactoryImpl();
+ mockType = factory.createComponentType();
+
+ loader = new JavaImplementationLoader();
+ loader.setFactory(factory);
+ }
+
+ private static class MockRegistry implements StAXLoaderRegistry {
+ private final ComponentType mockType;
+
+ public MockRegistry(ComponentType mockType) {
+ this.mockType = mockType;
+ }
+
+ public AssemblyObject load(XMLStreamReader reader, LoaderContext loaderContext) throws XMLStreamException, ConfigurationLoadException {
+ assertEquals(AssemblyConstants.COMPONENT_TYPE, reader.getName());
+ return mockType;
+ }
+
+ public <T extends AssemblyObject> void registerLoader(QName element, StAXElementLoader<T> loader) {
+ throw new UnsupportedOperationException();
+ }
+
+ public <T extends AssemblyObject> void unregisterLoader(QName element, StAXElementLoader<T> loader) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Deprecated
+ public AssemblyContext getContext() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Deprecated
+ public void setContext(AssemblyContext context) {
+ throw new UnsupportedOperationException();
+ }
+ }
+}