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/05/21 05:44:41 UTC

svn commit: r408125 - in /incubator/tuscany/sandbox/jboynes/sca/core2/src: main/java/org/apache/tuscany/core/builder/ test/java/org/apache/tuscany/core/integration/system/ test/java/org/apache/tuscany/core/integration/system/builder/ test/java/org/apac...

Author: jmarino
Date: Sat May 20 20:44:41 2006
New Revision: 408125

URL: http://svn.apache.org/viewvc?rev=408125&view=rev
Log:
integration testcases for system builders

Added:
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemBuildersTestCase.java
      - copied, changed from r408122, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemComponentBuilderTestCase.java
Removed:
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemComponentBuilderTestCase.java
Modified:
    incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/AutowireBuilderTestcase.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockComponentFactory.java
    incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Sat May 20 20:44:41 2006
@@ -155,6 +155,9 @@
             return true;
         } else if (pReferrer == Scope.SESSION && pReferee == Scope.COMPOSITE) {
             return true;
+        } else if (pReferrer == Scope.COMPOSITE && pReferee == Scope.MODULE) {
+            // case where a service context points to a module scoped component
+            return true;
         } else return pReferrer == Scope.MODULE && pReferee == Scope.COMPOSITE;
     }
 

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java Sat May 20 20:44:41 2006
@@ -10,12 +10,12 @@
 import org.apache.tuscany.core.context.WorkContextImpl;
 import org.apache.tuscany.core.context.scope.ModuleScopeContext;
 import org.apache.tuscany.core.mock.MockContextFactory;
-import org.apache.tuscany.core.mock.context.MockTargetWire;
 import org.apache.tuscany.core.mock.component.Source;
 import org.apache.tuscany.core.mock.component.SourceImpl;
 import org.apache.tuscany.core.mock.component.Target;
 import org.apache.tuscany.core.mock.component.TargetImpl;
 import org.apache.tuscany.core.mock.context.MockReferenceContext;
+import org.apache.tuscany.core.mock.context.MockTargetWire;
 import org.apache.tuscany.core.system.context.SystemAtomicContext;
 import org.apache.tuscany.core.system.context.SystemCompositeContext;
 import org.apache.tuscany.core.system.context.SystemCompositeContextImpl;
@@ -26,6 +26,8 @@
 import org.apache.tuscany.spi.wire.TargetWire;
 
 /**
+ * Tests wireing from an atomic context to a reference context
+ *
  * @version $$Rev$$ $$Date$$
  */
 public class AtomicContextToReferenceContextTestCase extends TestCase {

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java Sat May 20 20:44:41 2006
@@ -19,6 +19,8 @@
 import org.apache.tuscany.spi.QualifiedName;
 
 /**
+ * Tests a wire from a service context to an atomic context
+ *
  * @version $$Rev$$ $$Date$$
  */
 public class ServiceContextToAtomicContextTestCase extends TestCase {

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java Sat May 20 20:44:41 2006
@@ -19,6 +19,8 @@
 import org.apache.tuscany.spi.wire.TargetWire;
 
 /**
+ * Tests wiring from a service context directly to an atomic context
+ *
  * @version $$Rev$$ $$Date$$
  */
 public class ServiceContextToReferenceContextTestCase extends TestCase {

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/AutowireBuilderTestcase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/AutowireBuilderTestcase.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/AutowireBuilderTestcase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/AutowireBuilderTestcase.java Sat May 20 20:44:41 2006
@@ -24,10 +24,16 @@
 import org.apache.tuscany.spi.context.WorkContext;
 
 /**
+ * Validates that system builders create autowired contexts from a set of model objects
+ *
  * @version $$Rev$$ $$Date$$
  */
 public class AutowireBuilderTestcase extends TestCase {
 
+    /**
+     * Validates wiring from a component to a reference which is autowired to a component in the grandparent
+     * composite
+     */
     public void testComponentToReference() throws Exception {
         WorkContext work = new WorkContextImpl();
         ScopeContext scope = new ModuleScopeContext(work);
@@ -46,7 +52,7 @@
         targetComponentContext.setScopeContext(scope);
         grandParent.registerContext(targetComponentContext);
 
-        BoundReference<SystemBinding> targetReference = MockComponentFactory.createTargetReference();
+        BoundReference<SystemBinding> targetReference = MockComponentFactory.createBoundReference();
         Component<SystemImplementation> sourceComponent = MockComponentFactory.createSourceWithTargetReference();
 
 
@@ -72,6 +78,10 @@
         scope.stop();
     }
 
+
+    /**
+     * Validates autowiring from a component to another component in the same composite
+     */
     public void testComponentToComponent() throws Exception {
         WorkContext work = new WorkContextImpl();
         ScopeContext scope = new ModuleScopeContext(work);

Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemBuildersTestCase.java (from r408122, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemComponentBuilderTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemBuildersTestCase.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemBuildersTestCase.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemComponentBuilderTestCase.java&r1=408122&r2=408125&rev=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemComponentBuilderTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemBuildersTestCase.java Sat May 20 20:44:41 2006
@@ -10,21 +10,32 @@
 import org.apache.tuscany.core.mock.MockComponentFactory;
 import org.apache.tuscany.core.mock.component.Source;
 import org.apache.tuscany.core.mock.component.Target;
+import org.apache.tuscany.core.system.builder.SystemBindingBuilder;
 import org.apache.tuscany.core.system.builder.SystemComponentBuilder;
 import org.apache.tuscany.core.system.context.SystemCompositeContext;
 import org.apache.tuscany.core.system.context.SystemCompositeContextImpl;
+import org.apache.tuscany.core.system.model.SystemBinding;
 import org.apache.tuscany.core.system.model.SystemImplementation;
+import org.apache.tuscany.model.BoundReference;
 import org.apache.tuscany.model.Component;
+import org.apache.tuscany.model.BoundService;
 import org.apache.tuscany.spi.context.AtomicContext;
 import org.apache.tuscany.spi.context.ScopeContext;
 import org.apache.tuscany.spi.context.WorkContext;
+import org.apache.tuscany.spi.context.ReferenceContext;
+import org.apache.tuscany.spi.context.ServiceContext;
 
 /**
+ * Validates that system builders and the default connector create properly wired contexts
+ *
  * @version $$Rev$$ $$Date$$
  */
-public class SystemComponentBuilderTestCase extends TestCase {
+public class SystemBuildersTestCase extends TestCase {
 
-    public void testComponentWire() throws Exception {
+    /**
+     * Validates building a wire from an atomic context to an atomic context
+     */
+    public void testAtomicWireBuild() throws Exception {
         WorkContext work = new WorkContextImpl();
         ScopeContext scope = new ModuleScopeContext(work);
         scope.start();
@@ -58,4 +69,137 @@
         parent.stop();
         scope.stop();
     }
+
+    /**
+     * Validates building a wire from an atomic context to a reference context
+     */
+    public void testAtomicToReferenceWireBuild() throws Exception {
+        WorkContext work = new WorkContextImpl();
+        ScopeContext scope = new ModuleScopeContext(work);
+        scope.start();
+
+        Connector connector = new ConnectorImpl();
+        SystemComponentBuilder builder = new SystemComponentBuilder();
+        SystemBindingBuilder bindingBuilder = new SystemBindingBuilder();
+
+        SystemCompositeContext grandParent = new SystemCompositeContextImpl();
+        grandParent.setName("grandparent");
+        SystemCompositeContext parent = new SystemCompositeContextImpl("parent", grandParent, grandParent);
+
+        // create a context in the grandparent that the reference will be autowired to
+        Component<SystemImplementation> targetComponent = MockComponentFactory.createTarget();
+        AtomicContext targetComponentContext = (AtomicContext) builder.build(parent, targetComponent);
+        targetComponentContext.setScopeContext(scope);
+        grandParent.registerContext(targetComponentContext);
+
+        BoundReference<SystemBinding> targetReference = MockComponentFactory.createBoundReference();
+        Component<SystemImplementation> sourceComponent = MockComponentFactory.createSourceWithTargetReference();
+
+        AtomicContext sourceContext = (AtomicContext) builder.build(parent, sourceComponent);
+        sourceContext.setScopeContext(scope);
+        ReferenceContext targetContext = (ReferenceContext) bindingBuilder.build(parent, targetReference);
+
+        parent.registerContext(sourceContext);
+        parent.registerContext(targetContext);
+
+        connector.connect(sourceContext, parent);
+        grandParent.start();
+        scope.onEvent(new ModuleStart(this, parent));
+        Source source = (Source) parent.getContext("source").getService();
+        assertNotNull(source);
+        Target target = (Target) parent.getContext("target").getService();
+        assertNotNull(target);
+        assertSame(target, source.getTarget());
+        scope.onEvent(new ModuleStop(this, parent));
+        grandParent.stop();
+        scope.stop();
+    }
+
+
+    /**
+     * Validates building a wire from a service context to an atomic context
+     */
+    public void testServiceToAtomicWireBuild() throws Exception{
+        WorkContext work = new WorkContextImpl();
+        ScopeContext scope = new ModuleScopeContext(work);
+        scope.start();
+
+        Connector connector = new ConnectorImpl();
+        SystemComponentBuilder builder = new SystemComponentBuilder();
+        SystemBindingBuilder bindingBuilder = new SystemBindingBuilder();
+
+        SystemCompositeContext parent = new SystemCompositeContextImpl();
+
+        BoundService<SystemBinding> service =  MockComponentFactory.createBoundService();
+        Component<SystemImplementation> component = MockComponentFactory.createTarget();
+
+        AtomicContext sourceContext = (AtomicContext) builder.build(parent, component);
+        sourceContext.setScopeContext(scope);
+        ServiceContext serviceContext = (ServiceContext) bindingBuilder.build(parent, service);
+
+        parent.registerContext(sourceContext);
+        parent.registerContext(serviceContext);
+
+        connector.connect(sourceContext, parent);
+        connector.connect(serviceContext, parent);
+        parent.start();
+        scope.onEvent(new ModuleStart(this, parent));
+        Target target = (Target) parent.getContext("service").getService();
+        assertNotNull(target);
+        Target target2 = (Target) parent.getContext("target").getService();
+        assertNotNull(target);
+        assertSame(target, target2);
+        scope.onEvent(new ModuleStop(this, parent));
+        parent.stop();
+        scope.stop();
+
+    }
+
+    /**
+     * Validates building a wire from a service context to a reference context
+     */
+    public void testServiceToReferenceWireBuild() throws Exception{
+        WorkContext work = new WorkContextImpl();
+        ScopeContext scope = new ModuleScopeContext(work);
+        scope.start();
+
+        Connector connector = new ConnectorImpl();
+        SystemComponentBuilder builder = new SystemComponentBuilder();
+        SystemBindingBuilder bindingBuilder = new SystemBindingBuilder();
+
+        SystemCompositeContext grandParent = new SystemCompositeContextImpl();
+        grandParent.setName("grandparent");
+        SystemCompositeContext parent = new SystemCompositeContextImpl("parent", grandParent, grandParent);
+
+        // create a context in the grandparent that the reference will be autowired to
+        Component<SystemImplementation> targetComponent = MockComponentFactory.createTarget();
+        AtomicContext targetComponentContext = (AtomicContext) builder.build(parent, targetComponent);
+        targetComponentContext.setScopeContext(scope);
+        grandParent.registerContext(targetComponentContext);
+
+        BoundReference<SystemBinding> reference = MockComponentFactory.createBoundReference();
+
+        BoundService<SystemBinding> service =  MockComponentFactory.createBoundService();
+
+        ReferenceContext referenceContext = (ReferenceContext) bindingBuilder.build(parent, reference);
+        ServiceContext serviceContext = (ServiceContext) bindingBuilder.build(parent, service);
+
+        parent.registerContext(referenceContext);
+        parent.registerContext(serviceContext);
+
+        connector.connect(serviceContext, parent);
+        parent.start();
+        scope.onEvent(new ModuleStart(this, parent));
+        Target target = (Target) parent.getContext("service").getService();
+        assertNotNull(target);
+        Target target2 = (Target) parent.getContext("target").getService();
+        assertNotNull(target);
+        assertSame(target, target2);
+        scope.onEvent(new ModuleStop(this, parent));
+        parent.stop();
+        scope.stop();
+
+    }
+
+
 }

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockComponentFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockComponentFactory.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockComponentFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockComponentFactory.java Sat May 20 20:44:41 2006
@@ -10,13 +10,14 @@
 import org.apache.tuscany.core.system.model.SystemBinding;
 import org.apache.tuscany.core.system.model.SystemImplementation;
 import org.apache.tuscany.model.BoundReference;
+import org.apache.tuscany.model.BoundService;
 import org.apache.tuscany.model.Component;
 import org.apache.tuscany.model.JavaServiceContract;
 import org.apache.tuscany.model.Reference;
 import org.apache.tuscany.model.ReferenceTarget;
+import org.apache.tuscany.model.Scope;
 import org.apache.tuscany.model.Service;
 import org.apache.tuscany.model.ServiceContract;
-import org.apache.tuscany.model.Scope;
 
 /**
  * @version $$Rev$$ $$Date$$
@@ -110,7 +111,7 @@
     }
 
 
-    public static BoundReference<SystemBinding> createTargetReference() {
+    public static BoundReference<SystemBinding> createBoundReference() {
         SystemBinding binding = new SystemBinding();
         BoundReference<SystemBinding> reference = new BoundReference<SystemBinding>();
         reference.setBinding(binding);
@@ -120,4 +121,26 @@
         reference.setServiceContract(contract);
         return reference;
     }
+
+    /**
+     * Creates a bound service with the name "service" that is configured to be wired to a target named
+     * "target/Target"
+     */
+    public static BoundService<SystemBinding> createBoundService() {
+        SystemBinding binding = new SystemBinding();
+        BoundService<SystemBinding> service = new BoundService<SystemBinding>();
+        service.setBinding(binding);
+        service.setName("service");
+        ServiceContract contract = new JavaServiceContract();
+        contract.setInterfaze(Target.class);
+        service.setServiceContract(contract);
+        try {
+            service.setTarget(new URI("target/Target"));
+        } catch (URISyntaxException e) {
+            throw new AssertionError(e);
+        }
+        return service;
+    }
+
+
 }

Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java Sat May 20 20:44:41 2006
@@ -18,10 +18,15 @@
 import org.apache.tuscany.spi.wire.TargetWire;
 
 /**
+ * Performs basic autowiring tests to composite artifacts
  * @version $$Rev$$ $$Date$$
  */
 public class AutowireTestCase extends TestCase {
 
+    /**
+     * Tests autowiring to an atomic context
+     * @throws Exception
+     */
     public void testAtomicAutowire() throws Exception {
         WorkContext workContext = new WorkContextImpl();
         ModuleScopeContext scopeContext = new ModuleScopeContext(workContext);
@@ -43,6 +48,9 @@
         assertNull(parent.resolveExternalInstance(Source.class));
     }
 
+    /**
+     * Tests autowiring to a service context which is wired to an atomic context.
+     */
     public void testServiceAutowire() throws Exception {
         WorkContext workContext = new WorkContextImpl();
         ModuleScopeContext scopeContext = new ModuleScopeContext(workContext);
@@ -70,6 +78,9 @@
         assertNull(source2);
     }
 
+    /**
+     * Tests autowiring to a reference
+     */
     public void testReferenceAutowire() throws Exception {
         WorkContext workContext = new WorkContextImpl();
         ModuleScopeContext scopeContext = new ModuleScopeContext(workContext);
@@ -77,6 +88,7 @@
         SystemCompositeContext<?> parent = new SystemCompositeContextImpl("parent", null, null);
         parent.start();
         MockReferenceContext<Source> referenceContext = new MockReferenceContext<Source>("sourceReference", Source.class);
+        // create a mock wire for the reference which just holds a pre-instantiated target
         TargetWire<Source> wire = new MockTargetWire<Source>(Source.class, new SourceImpl());
         referenceContext.setTargetWire(wire);
         parent.registerContext(referenceContext);



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org