diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta1-RC2/modules/core-spi/src/test/java/org/apache')
3 files changed, 350 insertions, 0 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta1-RC2/modules/core-spi/src/test/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPointTestCase.java b/sca-java-2.x/tags/2.0-Beta1-RC2/modules/core-spi/src/test/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPointTestCase.java new file mode 100644 index 0000000000..6486a5ed4f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta1-RC2/modules/core-spi/src/test/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPointTestCase.java @@ -0,0 +1,207 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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.sca.context; + +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.junit.Assert; +import org.junit.Test; + +/** + * This test case will test the class + * org.apache.tuscany.sca.context.DefaultContextFactoryExtensionPoint + * + * $Date$ $Rev$ + */ +public class DefaultContextFactoryExtensionPointTestCase { + + /** + * Tests adding/getting/removing a factory with no interfaces + */ + @Test + public void testFactoryWithNoInterfaces() { + Object factory = new FactoryWithNoInterfaces(); + Class<?>[] ifaces = {}; + addGetRemoveFactory(factory, ifaces); + } + + /** + * Tests adding/getting/removing a factory with one interface + */ + @Test + public void testFactoryWithOneInterface() { + Object factory = new FactoryWithOneInterface(); + Class<?>[] ifaces = { FactoryOneInterface.class }; + addGetRemoveFactory(factory, ifaces); + } + + /** + * Tests adding/getting/removing a factory with two interfaces + */ + @Test + public void testFactoryWithTwoInterfaces() { + Object factory = new FactoryWithTwoInterfaces(); + Class<?>[] ifaces = { FactoryTwoInterfacesA.class, FactoryTwoInterfacesB.class }; + addGetRemoveFactory(factory, ifaces); + } + + /** + * Tests having multiple factories registered + */ + @Test + public void testMultipleFactories() { + // Create new factories + FactoryWithOneInterface factory1 = new FactoryWithOneInterface(); + FactoryWithTwoInterfaces factory2 = new FactoryWithTwoInterfaces(); + + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + + // Register the factories + DefaultContextFactoryExtensionPoint ctxFactory = new DefaultContextFactoryExtensionPoint(registry); + ctxFactory.addFactory(factory1); + ctxFactory.addFactory(factory2); + + // Re-get each of the factories + FactoryOneInterface regotFactory1 = ctxFactory.getFactory(FactoryOneInterface.class); + Assert.assertNotNull(regotFactory1); + Assert.assertSame(factory1, regotFactory1); + FactoryTwoInterfacesA regotFactory2A = ctxFactory.getFactory(FactoryTwoInterfacesA.class); + Assert.assertNotNull(regotFactory2A); + Assert.assertSame(factory2, regotFactory2A); + FactoryTwoInterfacesB regotFactory2B = ctxFactory.getFactory(FactoryTwoInterfacesB.class); + Assert.assertNotNull(regotFactory1); + Assert.assertSame(factory2, regotFactory2B); + } + + /** + * Tests passing in null to addFactory() + */ + @Test + public void testAddingNullFactory() { + + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + DefaultContextFactoryExtensionPoint ctxFactory = new DefaultContextFactoryExtensionPoint(registry); + try { + ctxFactory.addFactory(null); + Assert.fail("Should have thrown IllegalArgumentException"); + } catch (IllegalArgumentException ex) { + // As expected + } + } + + /** + * Test passing in null to removeFactory() + */ + @Test + public void testRemovingNullFactory() { + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + DefaultContextFactoryExtensionPoint ctxFactory = new DefaultContextFactoryExtensionPoint(registry); + try { + ctxFactory.removeFactory(null); + Assert.fail("Should have thrown IllegalArgumentException"); + } catch (IllegalArgumentException ex) { + // As expected + } + } + + /** + * Test passing in null to getFactory() + */ + @Test + public void testGetNullFactory() { + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + DefaultContextFactoryExtensionPoint ctxFactory = new DefaultContextFactoryExtensionPoint(registry); + try { + ctxFactory.getFactory(null); + Assert.fail("Should have thrown IllegalArgumentException"); + } catch (IllegalArgumentException ex) { + // As expected + } + } + + /** + * Utility method for testing adding and removing a factory + * + * @param factory The factory class to test + * @param factoryInterfaces The list of interfaces implemented by the factory + */ + private void addGetRemoveFactory(Object factory, Class<?>[] factoryInterfaces) { + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + DefaultContextFactoryExtensionPoint ctxFactory = new DefaultContextFactoryExtensionPoint(registry); + + // Make sure factory not already present + for (Class<?> iface : factoryInterfaces) { + Assert.assertNull(ctxFactory.getFactory(iface)); + } + + // Add the factory + ctxFactory.addFactory(factory); + + // Make sure we can get the factory recently registered factory + for (Class<?> iface : factoryInterfaces) { + Object regot = ctxFactory.getFactory(iface); + Assert.assertNotNull(regot); + Assert.assertSame(factory, regot); + } + + // Remove the factory + ctxFactory.removeFactory(factory); + + // Make sure factory is no longer registered + for (Class<?> iface : factoryInterfaces) { + Assert.assertNull(ctxFactory.getFactory(iface)); + } + } + + /** + * Simple factory with no interfaces + */ + private class FactoryWithNoInterfaces { + } + + /** + * Simple interface for the factory with one interface + */ + private interface FactoryOneInterface { + } + + /** + * Simple factory with one interface + */ + private class FactoryWithOneInterface implements FactoryOneInterface { + } + + /** + * Simple interface for the factory with two interfaces + */ + private interface FactoryTwoInterfacesA { + } + + /** + * Simple interface for the factory with two interfaces + */ + private interface FactoryTwoInterfacesB { + } + + /** + * Simple factory with two interfaces + */ + private class FactoryWithTwoInterfaces implements FactoryTwoInterfacesA, FactoryTwoInterfacesB { + } +} diff --git a/sca-java-2.x/tags/2.0-Beta1-RC2/modules/core-spi/src/test/java/org/apache/tuscany/sca/runtime/ConfigURITestCase.java b/sca-java-2.x/tags/2.0-Beta1-RC2/modules/core-spi/src/test/java/org/apache/tuscany/sca/runtime/ConfigURITestCase.java new file mode 100644 index 0000000000..b7e96a8b28 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta1-RC2/modules/core-spi/src/test/java/org/apache/tuscany/sca/runtime/ConfigURITestCase.java @@ -0,0 +1,107 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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.sca.runtime; + +import java.net.UnknownHostException; + +import junit.framework.Assert; + +import org.apache.tuscany.sca.runtime.DomainRegistryURI; +import org.junit.Test; + +public class ConfigURITestCase { + + @Test + public void testInvalidPrefix() throws UnknownHostException { + try { + new DomainRegistryURI("foo"); + Assert.fail(); + } catch (IllegalArgumentException e) { + // expected + } + } + + @Test + public void testDomainName() throws UnknownHostException { + DomainRegistryURI configURI = new DomainRegistryURI("tuscany:myDomain"); + Assert.assertEquals("myDomain", configURI.getDomainName()); + Assert.assertFalse(configURI.isMulticastDisabled()); + } + + @Test + public void testListenAddr() throws UnknownHostException { + DomainRegistryURI configURI = new DomainRegistryURI("tuscany:myDomain?listen=4321"); + Assert.assertEquals("myDomain", configURI.getDomainName()); + Assert.assertFalse(configURI.isMulticastDisabled()); + Assert.assertEquals(4321, configURI.getListenPort()); + Assert.assertNull(configURI.getBindAddress()); + } + @Test + public void testListenAddr2() throws UnknownHostException { + DomainRegistryURI configURI = new DomainRegistryURI("tuscany:myDomain?listen=1.1.1.1:4321"); + Assert.assertEquals("myDomain", configURI.getDomainName()); + Assert.assertFalse(configURI.isMulticastDisabled()); + Assert.assertEquals(4321, configURI.getListenPort()); + Assert.assertEquals("1.1.1.1", configURI.getBindAddress()); + } + + @Test + public void testMulticase1() throws UnknownHostException { + DomainRegistryURI configURI = new DomainRegistryURI("tuscany:myDomain?multicast=off"); + Assert.assertEquals("myDomain", configURI.getDomainName()); + Assert.assertTrue(configURI.isMulticastDisabled()); + } + + @Test + public void testMulticase2() throws UnknownHostException { + DomainRegistryURI configURI = new DomainRegistryURI("tuscany:myDomain?multicast=1.2.3.4:67"); + Assert.assertEquals("myDomain", configURI.getDomainName()); + Assert.assertFalse(configURI.isMulticastDisabled()); + Assert.assertEquals("1.2.3.4", configURI.getMulticastAddress()); + Assert.assertEquals(67, configURI.getMulticastPort()); + } + + @Test + public void testMulticase3() throws UnknownHostException { + DomainRegistryURI configURI = new DomainRegistryURI("tuscany:myDomain?multicast=1.2.3.4"); + Assert.assertEquals("myDomain", configURI.getDomainName()); + Assert.assertFalse(configURI.isMulticastDisabled()); + Assert.assertEquals("1.2.3.4", configURI.getMulticastAddress()); + Assert.assertEquals(51482, configURI.getMulticastPort()); + } + + @Test + public void testPassword() { + DomainRegistryURI configURI = new DomainRegistryURI("tuscany:myDomain?password=bla"); + Assert.assertEquals("myDomain", configURI.getDomainName()); + Assert.assertEquals("bla", configURI.getPassword()); + } + + @Test + public void testRemotes() throws UnknownHostException { + DomainRegistryURI configURI = new DomainRegistryURI("tuscany:myDomain?remotes=1.1.1.1:23,2.2.2.2"); + Assert.assertEquals("myDomain", configURI.getDomainName()); + Assert.assertTrue(configURI.isMulticastDisabled()); + Assert.assertEquals(2, configURI.getRemotes().size()); + Assert.assertEquals("1.1.1.1:23", configURI.getRemotes().get(0)); + Assert.assertEquals("2.2.2.2:14820", configURI.getRemotes().get(1)); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta1-RC2/modules/core-spi/src/test/java/org/apache/tuscany/sca/runtime/VersionTestCase.java b/sca-java-2.x/tags/2.0-Beta1-RC2/modules/core-spi/src/test/java/org/apache/tuscany/sca/runtime/VersionTestCase.java new file mode 100644 index 0000000000..89ca99484c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta1-RC2/modules/core-spi/src/test/java/org/apache/tuscany/sca/runtime/VersionTestCase.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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.sca.runtime; + +import org.junit.Test; +import org.junit.Ignore; + +/** + */ +@Ignore +public class VersionTestCase { + + @Test + public void testRevision() { + // Doesn't test much, just that it has been initilized to a number + System.out.println(Version.getVersion() + " " + Version.getRevsion() + " " + Version.getBuildTime()); + Integer.parseInt(Version.getRevsion()); + } + +} |