From ad1c9458ea08eb593be252b706a88568f17c494c Mon Sep 17 00:00:00 2001 From: lresende Date: Wed, 19 Nov 2008 00:07:37 +0000 Subject: Moving current trunk modules to contrib, before starting the Equinox branch merge git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@718812 13f79535-47bb-0310-9956-ffa450edef68 --- .../NotificationComponentTestCase.java | 136 +++++++++++++++++++++ .../NotificationImplementationLoaderTestCase.java | 56 +++++++++ ...afficAdvisoryNotificationTestCase.componentType | 30 +++++ 3 files changed, 222 insertions(+) create mode 100644 java/sca/contrib/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentTestCase.java create mode 100644 java/sca/contrib/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationLoaderTestCase.java create mode 100644 java/sca/contrib/modules/implementation-notification/src/test/resources/TrafficAdvisoryNotificationTestCase.componentType (limited to 'java/sca/contrib/modules/implementation-notification/src/test') diff --git a/java/sca/contrib/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentTestCase.java b/java/sca/contrib/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentTestCase.java new file mode 100644 index 0000000000..f9a20edccd --- /dev/null +++ b/java/sca/contrib/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentTestCase.java @@ -0,0 +1,136 @@ +/* + * 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.implementation.notification; + +import java.util.ArrayList; +import java.util.List; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import org.apache.tuscany.sca.assembly.ComponentReference; +import org.apache.tuscany.sca.assembly.SCABinding; +import org.apache.tuscany.sca.binding.sca.impl.SCABindingFactoryImpl; +import org.apache.tuscany.sca.interfacedef.Operation; +import org.apache.tuscany.sca.invocation.Interceptor; +import org.apache.tuscany.sca.invocation.InvocationChain; +import org.apache.tuscany.sca.invocation.Invoker; +import org.apache.tuscany.sca.invocation.Message; +import org.apache.tuscany.sca.runtime.EndpointReference; +import org.apache.tuscany.sca.runtime.RuntimeComponent; +import org.apache.tuscany.sca.runtime.RuntimeComponentReference; +import org.apache.tuscany.sca.runtime.RuntimeWire; +import org.easymock.EasyMock; + +/** + * + * @version $Rev$ $Date$ + * + */ +public class NotificationComponentTestCase extends TestCase { + + public void testLocalNotificationComponent() throws Exception { + try { + Operation operation = EasyMock.createNiceMock(Operation.class); + EasyMock.replay(operation); + + InvocationChain sub1Chain = EasyMock.createNiceMock(InvocationChain.class); + EasyMock.expect(sub1Chain.getTargetOperation()).andReturn(operation); + EasyMock.expect(sub1Chain.getHeadInvoker()).andReturn(new MockInterceptor()); + EasyMock.replay(sub1Chain); + List sub1Chains = new ArrayList(); + sub1Chains.add(sub1Chain); + SCABinding b1 = new SCABindingFactoryImpl().createSCABinding(); + EndpointReference epr1 = EasyMock.createNiceMock(EndpointReference.class); + EasyMock.expect(epr1.getURI()).andReturn("wire1Target"); + EasyMock.expect(epr1.getBinding()).andReturn(b1); + EasyMock.replay(epr1); + RuntimeWire sub1Wire = EasyMock.createNiceMock(RuntimeWire.class); + EasyMock.expect(sub1Wire.getInvocationChains()).andReturn(sub1Chains); + EasyMock.expect(sub1Wire.getTarget()).andReturn(epr1).anyTimes(); + EasyMock.replay(sub1Wire); + ArrayList rtWires1 = new ArrayList(); + rtWires1.add(sub1Wire); + RuntimeComponentReference rtCompRef1 = EasyMock.createNiceMock(RuntimeComponentReference.class); + EasyMock.expect(rtCompRef1.getName()).andReturn("sub1Reference"); + EasyMock.expect(rtCompRef1.getRuntimeWires()).andReturn(rtWires1); + EasyMock.replay(rtCompRef1); + + InvocationChain sub2Chain = EasyMock.createNiceMock(InvocationChain.class); + EasyMock.expect(sub2Chain.getTargetOperation()).andReturn(operation); + EasyMock.expect(sub2Chain.getHeadInvoker()).andReturn(new MockInterceptor()); + EasyMock.replay(sub2Chain); + List sub2Chains = new ArrayList(); + sub2Chains.add(sub2Chain); + SCABinding b2 = new SCABindingFactoryImpl().createSCABinding(); + EndpointReference epr2 = EasyMock.createNiceMock(EndpointReference.class); + EasyMock.expect(epr2.getURI()).andReturn("wire2Target"); + EasyMock.expect(epr2.getBinding()).andReturn(b2); + EasyMock.replay(epr2); + RuntimeWire sub2Wire = EasyMock.createNiceMock(RuntimeWire.class); + EasyMock.expect(sub2Wire.getInvocationChains()).andReturn(sub2Chains); + EasyMock.expect(sub2Wire.getTarget()).andReturn(epr2).anyTimes(); + EasyMock.replay(sub2Wire); + ArrayList rtWires2 = new ArrayList(); + rtWires2.add(sub2Wire); + RuntimeComponentReference rtCompRef2 = EasyMock.createNiceMock(RuntimeComponentReference.class); + EasyMock.expect(rtCompRef2.getName()).andReturn("sub2Reference"); + EasyMock.expect(rtCompRef2.getRuntimeWires()).andReturn(rtWires2); + EasyMock.replay(rtCompRef2); + + ArrayList references = new ArrayList(); + references.add(rtCompRef1); + references.add(rtCompRef2); + RuntimeComponent component = EasyMock.createNiceMock(RuntimeComponent.class); + EasyMock.expect(component.getName()).andReturn("LocalNotificationComponentTest"); + EasyMock.expect(component.getReferences()).andReturn(references); + EasyMock.replay(component); + + Invoker localNotificationInvoker = new NotificationComponentInvoker(operation, component); + + Message msg = EasyMock.createNiceMock(Message.class); + EasyMock.expect(msg.getBody()).andReturn("msg").times(3); // once per sub int + once in notif target invoker + EasyMock.replay(msg); + localNotificationInvoker.invoke(msg); + EasyMock.verify(msg); + } catch(Throwable e) { + e.printStackTrace(); + } + } + + class MockInterceptor implements Interceptor { + + public Message invoke(Message msg) { + Assert.assertEquals("msg", msg.getBody()); + return msg; + } + + public void setNext(Invoker next) { + throw new AssertionError(); + } + + public Interceptor getNext() { + throw new AssertionError(); + } + + public boolean isOptimizable() { + throw new AssertionError(); + } + } +} diff --git a/java/sca/contrib/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationLoaderTestCase.java b/java/sca/contrib/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationLoaderTestCase.java new file mode 100644 index 0000000000..89cbd3ec48 --- /dev/null +++ b/java/sca/contrib/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationLoaderTestCase.java @@ -0,0 +1,56 @@ +/* + * 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.implementation.notification; + +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamReader; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import org.apache.tuscany.sca.assembly.Implementation; +import org.easymock.EasyMock; + +/** + * + * @version $Rev$ $Date$ + * + */ +public class NotificationImplementationLoaderTestCase extends TestCase { + + public void testRead() throws Exception { + try { + NotificationImplementationProcessor implementationLoader = + new NotificationImplementationProcessor(new DefaultNotificationImplementationFactory()); + + XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class); + EasyMock.expect(reader.getName()).andReturn(NotificationImplementationProcessor.IMPLEMENTATION_NOTIFICATION).times(2); + EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("TrafficAdvisoryNotificationTestCase"); + EasyMock.expect(reader.getAttributeValue(null, "type")).andReturn(null); + EasyMock.expect(reader.hasNext()).andReturn(true); + EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT); + EasyMock.replay(reader); + + Implementation impl = implementationLoader.read(reader); + Assert.assertNotNull(impl); + } catch(Throwable e) { + e.printStackTrace(); + } + } +} diff --git a/java/sca/contrib/modules/implementation-notification/src/test/resources/TrafficAdvisoryNotificationTestCase.componentType b/java/sca/contrib/modules/implementation-notification/src/test/resources/TrafficAdvisoryNotificationTestCase.componentType new file mode 100644 index 0000000000..1fd952a0a8 --- /dev/null +++ b/java/sca/contrib/modules/implementation-notification/src/test/resources/TrafficAdvisoryNotificationTestCase.componentType @@ -0,0 +1,30 @@ + + + + + + + + + + + + -- cgit v1.2.3