diff options
Diffstat (limited to 'branches/sca-java-1.x')
4 files changed, 133 insertions, 27 deletions
diff --git a/branches/sca-java-1.x/vtest/assembly/component/src/main/resources/referenceduplicatename.composite b/branches/sca-java-1.x/vtest/assembly/component/src/main/resources/referenceduplicatename.composite new file mode 100644 index 0000000000..05227124e1 --- /dev/null +++ b/branches/sca-java-1.x/vtest/assembly/component/src/main/resources/referenceduplicatename.composite @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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. +--> +<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://assembly-tests" + name="Assemby-component"> + + <component name="ClientComponent1"> + <implementation.java class="org.apache.tuscany.sca.vtest.assembly.component.reference.MyClientAImpl"/> + + <service name="MyClientA"> + <interface.java interface="org.apache.tuscany.sca.vtest.assembly.component.reference.MyClientA"/> + </service> + + <reference name="b" target="ServiceComponent/MyService"> + </reference> + + <reference name="bService" target="ServiceComponent/MyService"> + </reference> + + </component> + + + <component name="ClientComponent2"> + <implementation.java class="org.apache.tuscany.sca.vtest.assembly.component.reference.MyClientAImpl"/> + + <service name="MyClientA"> + <interface.java interface="org.apache.tuscany.sca.vtest.assembly.component.reference.MyClientA"/> + </service> + + <reference name="b" target="ServiceComponent/MyService"> + </reference> + + <reference name="b" target="ServiceComponent/MyService"> + </reference> + + </component> + + + <component name="ServiceComponent"> + <implementation.java class="org.apache.tuscany.sca.vtest.assembly.component.reference.MyServiceImpl"/> + <service name="MyService"> + <interface.java interface="org.apache.tuscany.sca.vtest.assembly.component.reference.MyService"/> + </service> + </component> + +</composite> diff --git a/branches/sca-java-1.x/vtest/assembly/component/src/main/resources/referencename.composite b/branches/sca-java-1.x/vtest/assembly/component/src/main/resources/referencename.composite index 05227124e1..9544c947d1 100644 --- a/branches/sca-java-1.x/vtest/assembly/component/src/main/resources/referencename.composite +++ b/branches/sca-java-1.x/vtest/assembly/component/src/main/resources/referencename.composite @@ -36,23 +36,7 @@ <reference name="bService" target="ServiceComponent/MyService"> </reference> - </component> - - - <component name="ClientComponent2"> - <implementation.java class="org.apache.tuscany.sca.vtest.assembly.component.reference.MyClientAImpl"/> - - <service name="MyClientA"> - <interface.java interface="org.apache.tuscany.sca.vtest.assembly.component.reference.MyClientA"/> - </service> - - <reference name="b" target="ServiceComponent/MyService"> - </reference> - - <reference name="b" target="ServiceComponent/MyService"> - </reference> - - </component> + </component> <component name="ServiceComponent"> diff --git a/branches/sca-java-1.x/vtest/assembly/component/src/main/resources/referencenamemissmatch.composite b/branches/sca-java-1.x/vtest/assembly/component/src/main/resources/referencenamemissmatch.composite new file mode 100644 index 0000000000..de3eefab95 --- /dev/null +++ b/branches/sca-java-1.x/vtest/assembly/component/src/main/resources/referencenamemissmatch.composite @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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. +--> +<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://assembly-tests" + name="Assemby-component"> + + <component name="ClientComponent1"> + <implementation.java class="org.apache.tuscany.sca.vtest.assembly.component.reference.MyClientAImpl"/> + + <service name="MyClientA"> + <interface.java interface="org.apache.tuscany.sca.vtest.assembly.component.reference.MyClientA"/> + </service> + + <reference name="b" target="ServiceComponent/MyService"> + </reference> + + <reference name="bServiceX" target="ServiceComponent/MyService"> + </reference> + + </component> + + + <component name="ServiceComponent"> + <implementation.java class="org.apache.tuscany.sca.vtest.assembly.component.reference.MyServiceImpl"/> + <service name="MyService"> + <interface.java interface="org.apache.tuscany.sca.vtest.assembly.component.reference.MyService"/> + </service> + </component> + +</composite> diff --git a/branches/sca-java-1.x/vtest/assembly/component/src/test/java/org/apache/tuscany/sca/vtest/assembly/component/ComponentReferenceTestCase.java b/branches/sca-java-1.x/vtest/assembly/component/src/test/java/org/apache/tuscany/sca/vtest/assembly/component/ComponentReferenceTestCase.java index 37619c65ce..b3d77561ce 100644 --- a/branches/sca-java-1.x/vtest/assembly/component/src/test/java/org/apache/tuscany/sca/vtest/assembly/component/ComponentReferenceTestCase.java +++ b/branches/sca-java-1.x/vtest/assembly/component/src/test/java/org/apache/tuscany/sca/vtest/assembly/component/ComponentReferenceTestCase.java @@ -28,6 +28,7 @@ import org.apache.tuscany.sca.vtest.assembly.component.reference.MyClientE; import org.apache.tuscany.sca.vtest.utilities.ServiceFinder; import org.junit.Ignore; import org.junit.Test; +import org.osoa.sca.ServiceRuntimeException; /** * Test the reference name, wire, wireByImpl, autowire and so on. @@ -87,15 +88,17 @@ public class ComponentReferenceTestCase { * The @name attribute of a reference element of a <component/> MUST be unique amongst the * reference elements of that <component/> */ - @Test(expected = NullPointerException.class) + @Test public void testDuplicateComponentReferenceName() { //for this case, the reference of "b" in MyClientImpl is null. - initDomain("referencename.composite"); - MyClientA service = ServiceFinder.getService(MyClientA.class, "ClientComponent2/MyClientA"); - Assert.assertEquals("MyService:::MyService" , service.callOtherServices()) ; + try { + initDomain("referenceduplicatename.composite"); + } catch (ServiceRuntimeException ex){ + Assert.assertEquals("Duplicate component reference name: Component = ClientComponent2 Reference = b", ex.getMessage()); + return; + } + Assert.fail(); cleanupDomain(); - - } /** @@ -111,12 +114,17 @@ public class ComponentReferenceTestCase { * the name of the reference. Has to match a name of a reference defined by the implementation. * */ - @Test(expected = NullPointerException.class) + @Test public void testComponentReferenceNameValid() { - initDomain("referencename.composite"); - MyClientA service = ServiceFinder.getService(MyClientA.class, "ClientComponent1/MyClientA"); - Assert.assertEquals("MyService" , service.callInvalidReference()) ; + try { + initDomain("referencenamemissmatch.composite"); + } catch (ServiceRuntimeException ex){ + Assert.assertEquals("Reference not found for component reference: Component = ClientComponent1 Reference = bServiceX", ex.getMessage()); + return; + } + + Assert.fail(); cleanupDomain(); } |