You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/02/13 22:03:21 UTC

svn commit: r377485 - in /incubator/tuscany/java/sca: container.java/src/test/java/org/apache/tuscany/container/java/builder/ core/src/test/java/org/apache/tuscany/core/builder/impl/

Author: jmarino
Date: Mon Feb 13 13:03:20 2006
New Revision: 377485

URL: http://svn.apache.org/viewcvs?rev=377485&view=rev
Log:
more unit tests for wire builder

Added:
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilderTestCase.java
Modified:
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilderTestCase.java

Added: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilderTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilderTestCase.java?rev=377485&view=auto
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilderTestCase.java (added)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilderTestCase.java Mon Feb 13 13:03:20 2006
@@ -0,0 +1,119 @@
+package org.apache.tuscany.container.java.builder;
+
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.container.java.config.JavaComponentRuntimeConfiguration;
+import org.apache.tuscany.container.java.invocation.mock.MockHandler;
+import org.apache.tuscany.container.java.invocation.mock.MockJavaOperationType;
+import org.apache.tuscany.container.java.invocation.mock.MockScopeContext;
+import org.apache.tuscany.container.java.invocation.mock.MockSyncInterceptor;
+import org.apache.tuscany.container.java.invocation.mock.SimpleTarget;
+import org.apache.tuscany.container.java.invocation.mock.SimpleTargetImpl;
+import org.apache.tuscany.core.builder.impl.DefaultWireBuilder;
+import org.apache.tuscany.core.context.QualifiedName;
+import org.apache.tuscany.core.invocation.InvocationConfiguration;
+import org.apache.tuscany.core.invocation.ProxyConfiguration;
+import org.apache.tuscany.core.invocation.impl.InvokerInterceptor;
+import org.apache.tuscany.core.invocation.jdk.JDKProxyFactory;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.core.message.Message;
+import org.apache.tuscany.core.message.MessageFactory;
+import org.apache.tuscany.core.message.impl.PojoMessageFactory;
+import org.apache.tuscany.core.message.impl.PojoMessageImpl;
+import org.apache.tuscany.model.types.OperationType;
+
+public class JavaTargetWireBuilderTestCase extends TestCase {
+
+    private Method hello;
+
+    private Method goodbye;
+
+    public JavaTargetWireBuilderTestCase() {
+    }
+
+    public JavaTargetWireBuilderTestCase(String arg0) {
+        super(arg0);
+    }
+
+    public void setUp() throws Exception {
+        hello = SimpleTarget.class.getMethod("hello", new Class[] { String.class });
+        goodbye = SimpleTarget.class.getMethod("goodbye", new Class[] { String.class });
+    }
+    
+    
+    /**
+     * Tests basic wiring of a source to a target, including handlers and interceptors
+     */
+    public void testInvocation() throws Exception {
+        MessageFactory msgFactory = new PojoMessageFactory();
+        OperationType operation = new MockJavaOperationType(hello);
+
+        InvocationConfiguration source = new InvocationConfiguration(operation);
+        MockHandler sourceRequestHandler = new MockHandler();
+        MockHandler sourceResponseHandler = new MockHandler();
+        MockSyncInterceptor sourceInterceptor = new MockSyncInterceptor();
+        source.addRequestHandler(sourceRequestHandler);
+        source.addResponseHandler(sourceResponseHandler);
+        source.addSourceInterceptor(sourceInterceptor);
+
+        ProxyFactory sourceFactory = new JDKProxyFactory();
+        Map<OperationType, InvocationConfiguration> sourceInvocationConfigs = new HashMap();
+        sourceInvocationConfigs.put(operation, source);
+        ProxyConfiguration sourceConfig = new ProxyConfiguration(new QualifiedName("target/SimpleTarget"),
+                sourceInvocationConfigs, Thread.currentThread().getContextClassLoader(), null, msgFactory);
+        sourceFactory.setProxyConfiguration(sourceConfig);
+        sourceFactory.setBusinessInterface(SimpleTarget.class);
+        
+        InvocationConfiguration target = new InvocationConfiguration(operation);
+        MockHandler targetRequestHandler = new MockHandler();
+        MockHandler targetResponseHandler = new MockHandler();
+        MockSyncInterceptor targetInterceptor = new MockSyncInterceptor();
+        target.addRequestHandler(targetRequestHandler);
+        target.addResponseHandler(targetResponseHandler);
+        target.addTargetInterceptor(targetInterceptor);
+        target.addTargetInterceptor(new InvokerInterceptor());
+
+        ProxyFactory targetFactory = new JDKProxyFactory();
+        Map<OperationType, InvocationConfiguration> targetInvocationConfigs = new HashMap();
+        targetInvocationConfigs.put(operation, target);
+        ProxyConfiguration targetConfig = new ProxyConfiguration(new QualifiedName("target/SimpleTarget"),
+                targetInvocationConfigs, Thread.currentThread().getContextClassLoader(), null, msgFactory);
+        targetFactory.setProxyConfiguration(targetConfig);
+        targetFactory.setBusinessInterface(SimpleTarget.class);
+
+        // bootstrap a scope container with the target in it
+        Map<String,Object> instances = new HashMap();
+        SimpleTarget simpleTarget = new SimpleTargetImpl();
+        instances.put("target",simpleTarget);
+        MockScopeContext scopeCtx = new MockScopeContext(instances);
+
+        // connect the source to the target
+        DefaultWireBuilder builder = new DefaultWireBuilder();
+        builder.addWireBuilder(new JavaTargetWireBuilder());
+        
+        builder.wire(sourceFactory, targetFactory, JavaComponentRuntimeConfiguration.class, true, scopeCtx);
+        source.build();
+        target.build();
+        Assert.assertNotNull(source.getTargetInvoker());
+        
+        Message msg = new PojoMessageImpl();
+        msg.setPayload("foo");
+        msg.setTargetInvoker(source.getTargetInvoker());
+        Message response = (Message) source.getSourceInterceptor().invoke(msg);
+        Assert.assertEquals("foo", response.getPayload());
+        Assert.assertEquals(1, sourceRequestHandler.getCount());
+        Assert.assertEquals(1, sourceResponseHandler.getCount());
+        Assert.assertEquals(1, sourceInterceptor.getCount());
+        Assert.assertEquals(1, targetRequestHandler.getCount());
+        Assert.assertEquals(1, targetResponseHandler.getCount());
+        Assert.assertEquals(1, targetInterceptor.getCount());
+    }
+
+
+}
+

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilderTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilderTestCase.java?rev=377485&r1=377484&r2=377485&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilderTestCase.java Mon Feb 13 13:03:20 2006
@@ -87,7 +87,7 @@
         // connect the source to the target
         DefaultWireBuilder builder = new DefaultWireBuilder();
         // no need for scopes since we use a static invoker
-        builder.wire(sourceFactory, targetFactory, SimpleTarget.class, true, null);
+        builder.wire(sourceFactory, targetFactory, null, true, null);
         source.build();
         target.build();
         // set a static invoker
@@ -144,7 +144,7 @@
         // connect the source to the target
         DefaultWireBuilder builder = new DefaultWireBuilder();
         // no need for scopes since we use a static invoker
-        builder.wire(sourceFactory, targetFactory, SimpleTarget.class, true, null);
+        builder.wire(sourceFactory, targetFactory, null, true, null);
         source.build();
         target.build();
         // set a static invoker
@@ -194,7 +194,7 @@
         // connect the source to the target
         DefaultWireBuilder builder = new DefaultWireBuilder();
         // no need for scopes since we use a static invoker
-        builder.wire(sourceFactory, targetFactory, SimpleTarget.class, true, null);
+        builder.wire(sourceFactory, targetFactory, null, true, null);
         source.build();
         target.build();
         // set a static invoker
@@ -209,9 +209,5 @@
         Assert.assertEquals(1, sourceInterceptor.getCount());
         Assert.assertEquals(1, targetInterceptor.getCount());
     }
-
-    
-    // public void testInvokeWithRequestHandlers() throws Exception {}
-    // public void testInvokeWithInterceptorsOnly() throws Exception { }
 
 }