summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component
diff options
context:
space:
mode:
Diffstat (limited to 'branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component')
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/WorkContextImplTestCase.java65
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/event/EventTestCase.java72
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/AbstractScopeContainerTestCase.java126
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicCompositeScopeTestCase.java127
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicConversationalScopeTestCase.java129
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicHttpSessionScopeTestCase.java145
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicRequestScopeTestCase.java128
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicStatelessScopeTestCase.java120
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInitDestroyErrorTestCase.java78
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInstanceLifecycleTestCase.java186
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeObjectFactoryTestCase.java38
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeRestartTestCase.java99
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerDestroyOnExpirationTestCase.java121
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerMaxAgeTestCase.java76
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerMaxIdleTimeTestCase.java79
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerPersistenceTestCase.java181
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeInstanceLifecycleTestCase.java70
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeRestartTestCase.java112
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/DependencyLifecycleTestCase.java170
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java69
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java136
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeRestartTestCase.java105
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/InstanceWrapperTestCase.java66
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/MockFactory.java137
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInitDestroyErrorTestCase.java63
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInstanceLifecycleTestCase.java129
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeRestartTestCase.java99
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ScopeRegistryTestCase.java80
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/StatelessScopeContainerTestCase.java48
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/StatelessScopeObjectFactoryTestCase.java37
-rw-r--r--branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/WorkContextTestCase.java212
31 files changed, 0 insertions, 3303 deletions
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/WorkContextImplTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/WorkContextImplTestCase.java
deleted file mode 100644
index aee910ddaf..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/WorkContextImplTestCase.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.core.component;
-
-import org.apache.tuscany.spi.component.WorkContext;
-
-import junit.framework.TestCase;
-
-/**
- * @version $Rev$ $Date$
- */
-public class WorkContextImplTestCase extends TestCase {
-
- public void testPushPopServiceNames() throws Exception {
- WorkContext context = new WorkContextImpl();
- context.pushServiceName("foo");
- context.pushServiceName("bar");
- assertEquals("bar", context.getCurrentServiceName());
- assertEquals("bar", context.popServiceName());
- assertEquals("foo", context.getCurrentServiceName());
- assertEquals("foo", context.popServiceName());
- assertNull(context.getCurrentServiceName());
- }
-
- public void testGetCurrentServiceNamesNull() throws Exception {
- WorkContext context = new WorkContextImpl();
- assertNull(context.getCurrentServiceName());
- }
-
- public void testPopCurrentServiceNamesNull() throws Exception {
- WorkContext context = new WorkContextImpl();
- assertNull(context.popServiceName());
- }
-
- public void testClearServiceNames() throws Exception {
- WorkContext context = new WorkContextImpl();
- context.pushServiceName("foo");
- context.pushServiceName("bar");
- context.clearServiceNames();
- assertNull(context.getCurrentServiceName());
- }
-
- public void testClearServiceNamesNull() throws Exception {
- WorkContext context = new WorkContextImpl();
- context.clearServiceNames();
- assertNull(context.getCurrentServiceName());
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/event/EventTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/event/EventTestCase.java
deleted file mode 100644
index 79b9757c2c..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/event/EventTestCase.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.core.component.event;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-
-import junit.framework.TestCase;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class EventTestCase extends TestCase {
-
- private CompositeComponent component;
-
- public void testCompositeStart() {
- CompositeStart event = new CompositeStart(this, component);
- assertEquals(component, event.getComposite());
- }
-
- public void testCompositeStop() {
- CompositeStop event = new CompositeStop(this, component);
- assertEquals(component, event.getComposite());
- }
-
- public void testHttpSessionStart() {
- Object id = new Object();
- HttpSessionEvent event = new HttpSessionStart(this, id);
- assertEquals(this, event.getSource());
- assertEquals(id, event.getId());
- }
-
- public void testHttpSessionEnd() {
- Object id = new Object();
- HttpSessionEvent event = new HttpSessionEnd(this, id);
- assertEquals(this, event.getSource());
- assertEquals(id, event.getId());
- }
-
- public void testRequestStart() {
- RequestStart event = new RequestStart(this);
- assertEquals(this, event.getSource());
- }
-
- public void testReequestEnd() {
- RequestEnd event = new RequestEnd(this);
- assertEquals(this, event.getSource());
- }
-
-
- protected void setUp() throws Exception {
- super.setUp();
- component = EasyMock.createNiceMock(CompositeComponent.class);
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/AbstractScopeContainerTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/AbstractScopeContainerTestCase.java
deleted file mode 100644
index f8f8dd5f60..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/AbstractScopeContainerTestCase.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.event.Event;
-import org.apache.tuscany.spi.event.EventFilter;
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.event.TrueFilter;
-import org.apache.tuscany.spi.model.Scope;
-
-import junit.framework.TestCase;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class AbstractScopeContainerTestCase extends TestCase {
-
- public void testFireListener() {
- TestContainer container = new TestContainer("foo");
- RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class);
- Event event = new TestEvent();
- listener.onEvent(EasyMock.eq(event));
- EasyMock.replay(listener);
- container.addListener(listener);
- container.publish(event);
- EasyMock.verify(listener);
- }
-
- public void testRemoveListener() {
- TestContainer container = new TestContainer("foo");
- RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class);
- EasyMock.replay(listener);
- Event event = new TestEvent();
- container.addListener(listener);
- container.removeListener(listener);
- container.publish(event);
- EasyMock.verify(listener);
- }
-
- public void testFalseFilterListener() {
- TestContainer container = new TestContainer("foo");
- RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class);
- Event event = new TestEvent();
- EasyMock.replay(listener);
- container.addListener(new FalseFilter(), listener);
- container.publish(event);
- EasyMock.verify(listener);
- }
-
- public void testTrueFilterListener() {
- TestContainer container = new TestContainer("foo");
- RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class);
- Event event = new TestEvent();
- listener.onEvent(EasyMock.eq(event));
- EasyMock.replay(listener);
- container.addListener(new TrueFilter(), listener);
- container.publish(event);
- EasyMock.verify(listener);
- }
-
- public void testToString() {
- TestContainer container = new TestContainer("foo");
- assertNotNull(container.toString());
- }
-
- private class TestContainer extends AbstractScopeContainer {
-
- public TestContainer(String name) {
- super(null, null);
- }
-
- protected InstanceWrapper getInstanceWrapper(AtomicComponent component, boolean create) {
- return null;
- }
-
- public Scope getScope() {
- return null;
- }
-
- public void register(AtomicComponent component) {
-
- }
-
- public void onEvent(Event event) {
-
- }
-
- public WorkContext getWorkContext() {
- return super.getWorkContext();
- }
- }
-
- private class TestEvent implements Event {
- public Object getSource() {
- return null;
- }
- }
-
- private class FalseFilter implements EventFilter {
-
- public boolean match(Event event) {
- return false;
- }
- }
-
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicCompositeScopeTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicCompositeScopeTestCase.java
deleted file mode 100644
index cd68b46541..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicCompositeScopeTestCase.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.TargetNotFoundException;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.event.CompositeStop;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
-import org.apache.tuscany.core.injection.EventInvoker;
-import org.apache.tuscany.core.injection.MethodEventInvoker;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
-import org.apache.tuscany.core.mock.component.CompositeScopeInitDestroyComponent;
-
-/**
- * @version $$Rev$$ $$Date$$
- */
-public class BasicCompositeScopeTestCase extends TestCase {
-
- private EventInvoker<Object> initInvoker;
- private EventInvoker<Object> destroyInvoker;
- private PojoObjectFactory<?> factory;
-
- public void testLifecycleManagement() throws Exception {
- CompositeScopeContainer scopeContext = new CompositeScopeContainer(null);
- scopeContext.start();
- AtomicComponent component = createComponent(scopeContext);
- // start the request
- CompositeScopeInitDestroyComponent o1 =
- (CompositeScopeInitDestroyComponent) scopeContext.getInstance(component);
- assertTrue(o1.isInitialized());
- assertFalse(o1.isDestroyed());
- CompositeScopeInitDestroyComponent o2 =
- (CompositeScopeInitDestroyComponent) scopeContext.getInstance(component);
- assertEquals(o1, o2);
- scopeContext.onEvent(new CompositeStop(this, null));
- assertTrue(o1.isDestroyed());
- scopeContext.stop();
- }
-
-
- public void testGetAssociatedInstance() throws Exception {
- CompositeScopeContainer scopeContext = new CompositeScopeContainer(null);
- scopeContext.start();
- AtomicComponent component = createComponent(scopeContext);
- // start the request
- scopeContext.getInstance(component);
- scopeContext.getAssociatedInstance(component);
- }
-
- public void testGetAssociatedInstanceNonExistent() throws Exception {
- CompositeScopeContainer scopeContext = new CompositeScopeContainer(null);
- scopeContext.start();
- AtomicComponent component = createComponent(scopeContext);
- // start the request
- try {
- scopeContext.getAssociatedInstance(component);
- fail();
- } catch (TargetNotFoundException e) {
- // expected
- }
- }
-
- public void testCompositeIsolation() throws Exception {
- CompositeScopeContainer scopeContext = new CompositeScopeContainer(null);
- scopeContext.start();
-
- AtomicComponent component = createComponent(scopeContext);
-
- CompositeScopeInitDestroyComponent o1 =
- (CompositeScopeInitDestroyComponent) scopeContext.getInstance(component);
- assertTrue(o1.isInitialized());
- assertFalse(o1.isDestroyed());
-
- CompositeScopeInitDestroyComponent o2 =
- (CompositeScopeInitDestroyComponent) scopeContext.getInstance(component);
- assertSame(o1, o2);
- scopeContext.onEvent(new CompositeStop(this, null));
- assertTrue(o1.isDestroyed());
- scopeContext.stop();
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- factory = new PojoObjectFactory<CompositeScopeInitDestroyComponent>(
- CompositeScopeInitDestroyComponent.class.getConstructor((Class[]) null));
- initInvoker = new MethodEventInvoker<Object>(CompositeScopeInitDestroyComponent.class.getMethod(
- "init", (Class[]) null));
- destroyInvoker = new MethodEventInvoker<Object>(CompositeScopeInitDestroyComponent.class.getMethod(
- "destroy", (Class[]) null));
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- private AtomicComponent createComponent(ScopeContainer scopeContainer) {
- PojoConfiguration configuration = new PojoConfiguration();
- configuration.setInstanceFactory(factory);
- configuration.setInitInvoker(initInvoker);
- configuration.setDestroyInvoker(destroyInvoker);
- configuration.setName("foo");
- SystemAtomicComponentImpl component = new SystemAtomicComponentImpl(configuration);
- component.setScopeContainer(scopeContainer);
- component.start();
- return component;
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicConversationalScopeTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicConversationalScopeTestCase.java
deleted file mode 100644
index c97f3cb96f..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicConversationalScopeTestCase.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.services.store.StoreMonitor;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.component.event.ConversationEnd;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
-import org.apache.tuscany.core.injection.EventInvoker;
-import org.apache.tuscany.core.injection.MethodEventInvoker;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
-import org.apache.tuscany.core.mock.component.ConversationalScopeInitDestroyComponent;
-import org.apache.tuscany.core.services.store.memory.MemoryStore;
-import org.easymock.EasyMock;
-
-/**
- * @version $$Rev: 471111 $$ $$Date: 2006-11-03 23:06:48 -0500 (Fri, 03 Nov 2006) $$
- */
-public class BasicConversationalScopeTestCase extends TestCase {
-
- private EventInvoker<Object> initInvoker;
- private EventInvoker<Object> destroyInvoker;
- private PojoObjectFactory<?> factory;
-
- public void testLifecycleManagement() throws Exception {
- StoreMonitor monitor = EasyMock.createMock(StoreMonitor.class);
- monitor.start(EasyMock.isA(String.class));
- monitor.stop(EasyMock.isA(String.class));
- MemoryStore store = new MemoryStore(monitor);
- WorkContext workContext = new WorkContextImpl();
- ConversationalScopeContainer scopeContext = new ConversationalScopeContainer(store, workContext, null);
- scopeContext.start();
- AtomicComponent atomicContext = createContext(scopeContext);
- // start the request
- String conversation = "conv";
- workContext.setIdentifier(Scope.CONVERSATION, conversation);
- ConversationalScopeInitDestroyComponent o1 =
- (ConversationalScopeInitDestroyComponent) scopeContext.getInstance(atomicContext);
- //assertTrue(o1.isInitialized());
- assertFalse(o1.isDestroyed());
- ConversationalScopeInitDestroyComponent o2 =
- (ConversationalScopeInitDestroyComponent) scopeContext.getInstance(atomicContext);
- assertSame(o1, o2);
- scopeContext.onEvent(new ConversationEnd(this, conversation));
- //assertTrue(o1.isDestroyed());
- scopeContext.stop();
- }
-
- public void testCompositeIsolation() throws Exception {
- StoreMonitor monitor = EasyMock.createMock(StoreMonitor.class);
- monitor.start(EasyMock.isA(String.class));
- monitor.stop(EasyMock.isA(String.class));
- MemoryStore store = new MemoryStore(monitor);
- WorkContext workContext = new WorkContextImpl();
- ConversationalScopeContainer scopeContext = new ConversationalScopeContainer(store, workContext, null);
- scopeContext.start();
-
- AtomicComponent atomicContext = createContext(scopeContext);
-
- String conversation1 = "conv";
- workContext.setIdentifier(Scope.CONVERSATION, conversation1);
- ConversationalScopeInitDestroyComponent o1 =
- (ConversationalScopeInitDestroyComponent) scopeContext.getInstance(atomicContext);
- //assertTrue(o1.isInitialized());
- assertFalse(o1.isDestroyed());
-
- String conversation2 = "conv2";
- workContext.setIdentifier(Scope.CONVERSATION, conversation2);
- ConversationalScopeInitDestroyComponent o2 =
- (ConversationalScopeInitDestroyComponent) scopeContext.getInstance(atomicContext);
- assertNotSame(o1, o2);
-
- scopeContext.onEvent(new ConversationEnd(this, conversation1));
- //assertTrue(o1.isDestroyed());
- assertFalse(o2.isDestroyed());
- scopeContext.onEvent(new ConversationEnd(this, conversation2));
- //assertTrue(o2.isDestroyed());
- scopeContext.stop();
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- factory = new PojoObjectFactory<ConversationalScopeInitDestroyComponent>(
- ConversationalScopeInitDestroyComponent.class.getConstructor((Class[]) null));
- initInvoker = new MethodEventInvoker<Object>(
- ConversationalScopeInitDestroyComponent.class.getMethod("init", (Class[]) null));
- destroyInvoker = new MethodEventInvoker<Object>(
- ConversationalScopeInitDestroyComponent.class.getMethod("destroy", (Class[]) null));
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- private AtomicComponent createContext(ScopeContainer scopeContainer) {
- PojoConfiguration configuration = new PojoConfiguration();
- configuration.setInstanceFactory(factory);
- configuration.setInitInvoker(initInvoker);
- configuration.setDestroyInvoker(destroyInvoker);
- configuration.setName("foo");
- SystemAtomicComponentImpl component = new SystemAtomicComponentImpl(configuration);
- component.setScopeContainer(scopeContainer);
- component.start();
- return component;
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicHttpSessionScopeTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicHttpSessionScopeTestCase.java
deleted file mode 100644
index 44e9bbc1d6..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicHttpSessionScopeTestCase.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.TargetNotFoundException;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Scope;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.component.event.HttpSessionEnd;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
-import org.apache.tuscany.core.injection.EventInvoker;
-import org.apache.tuscany.core.injection.MethodEventInvoker;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
-import org.apache.tuscany.core.mock.component.SessionScopeInitDestroyComponent;
-
-/**
- * @version $$Rev$$ $$Date$$
- */
-public class BasicHttpSessionScopeTestCase extends TestCase {
- private EventInvoker<Object> initInvoker;
- private EventInvoker<Object> destroyInvoker;
- private PojoObjectFactory<?> factory;
-
- public void testLifecycleManagement() throws Exception {
- WorkContext workContext = new WorkContextImpl();
- HttpSessionScopeContainer scopeContext = new HttpSessionScopeContainer(workContext, null);
- scopeContext.start();
- AtomicComponent component = createComponent(scopeContext);
- // start the request
- Object session = new Object();
- workContext.setIdentifier(Scope.SESSION, session);
- SessionScopeInitDestroyComponent o1 =
- (SessionScopeInitDestroyComponent) scopeContext.getInstance(component);
- assertTrue(o1.isInitialized());
- assertFalse(o1.isDestroyed());
- SessionScopeInitDestroyComponent o2 =
- (SessionScopeInitDestroyComponent) scopeContext.getInstance(component);
- assertSame(o1, o2);
- scopeContext.onEvent(new HttpSessionEnd(this, session));
- assertTrue(o1.isDestroyed());
- scopeContext.stop();
- }
-
- public void testGetAssociatedInstance() throws Exception {
- WorkContext workContext = new WorkContextImpl();
- HttpSessionScopeContainer scopeContext = new HttpSessionScopeContainer(workContext, null);
- scopeContext.start();
- AtomicComponent component = createComponent(scopeContext);
- // start the request
- Object session = new Object();
- workContext.setIdentifier(Scope.SESSION, session);
- scopeContext.getInstance(component);
- scopeContext.getAssociatedInstance(component);
- }
-
- public void testGetAssociatedInstanceNonExistent() throws Exception {
- WorkContext workContext = new WorkContextImpl();
- HttpSessionScopeContainer scopeContext = new HttpSessionScopeContainer(workContext, null);
- scopeContext.start();
- AtomicComponent component = createComponent(scopeContext);
- // start the request
- Object session = new Object();
- workContext.setIdentifier(Scope.SESSION, session);
- try {
- scopeContext.getAssociatedInstance(component);
- fail();
- } catch (TargetNotFoundException e) {
- // expected
- }
- }
-
- public void testSessionIsolation() throws Exception {
- WorkContext workContext = new WorkContextImpl();
- HttpSessionScopeContainer scopeContext = new HttpSessionScopeContainer(workContext, null);
- scopeContext.start();
-
- AtomicComponent component = createComponent(scopeContext);
-
- Object session1 = new Object();
- workContext.setIdentifier(Scope.SESSION, session1);
- SessionScopeInitDestroyComponent o1 =
- (SessionScopeInitDestroyComponent) scopeContext.getInstance(component);
- assertTrue(o1.isInitialized());
-
- Object session2 = new Object();
- workContext.setIdentifier(Scope.SESSION, session2);
- SessionScopeInitDestroyComponent o2 =
- (SessionScopeInitDestroyComponent) scopeContext.getInstance(component);
- assertNotSame(o1, o2);
-
- scopeContext.onEvent(new HttpSessionEnd(this, session1));
- assertTrue(o1.isDestroyed());
- assertFalse(o2.isDestroyed());
- scopeContext.onEvent(new HttpSessionEnd(this, session2));
- assertTrue(o2.isDestroyed());
- scopeContext.stop();
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- factory = new PojoObjectFactory<SessionScopeInitDestroyComponent>(
- SessionScopeInitDestroyComponent.class.getConstructor((Class[]) null));
- initInvoker = new MethodEventInvoker<Object>(
- SessionScopeInitDestroyComponent.class.getMethod("init", (Class[]) null));
- destroyInvoker = new MethodEventInvoker<Object>(
- SessionScopeInitDestroyComponent.class.getMethod("destroy", (Class[]) null));
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- private AtomicComponent createComponent(ScopeContainer scopeContainer) {
- PojoConfiguration configuration = new PojoConfiguration();
- configuration.setInstanceFactory(factory);
- configuration.setInitInvoker(initInvoker);
- configuration.setDestroyInvoker(destroyInvoker);
- configuration.setName("foo");
- SystemAtomicComponentImpl component = new SystemAtomicComponentImpl(configuration);
- component.setScopeContainer(scopeContainer);
- component.start();
- return component;
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicRequestScopeTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicRequestScopeTestCase.java
deleted file mode 100644
index 435e7d29b7..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicRequestScopeTestCase.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.TargetNotFoundException;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.event.RequestEnd;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
-import org.apache.tuscany.core.injection.EventInvoker;
-import org.apache.tuscany.core.injection.MethodEventInvoker;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
-import org.apache.tuscany.core.mock.component.RequestScopeInitDestroyComponent;
-
-/**
- * @version $$Rev$$ $$Date$$
- */
-public class BasicRequestScopeTestCase extends TestCase {
- private EventInvoker<Object> initInvoker;
- private EventInvoker<Object> destroyInvoker;
- private PojoObjectFactory<?> factory;
-
- public void testLifecycleManagement() throws Exception {
- RequestScopeContainer scopeContainer = new RequestScopeContainer(null, null);
- scopeContainer.start();
- AtomicComponent component = createComponent(scopeContainer);
- // start the request
- RequestScopeInitDestroyComponent o1 =
- (RequestScopeInitDestroyComponent) scopeContainer.getInstance(component);
- assertTrue(o1.isInitialized());
- assertFalse(o1.isDestroyed());
- RequestScopeInitDestroyComponent o2 =
- (RequestScopeInitDestroyComponent) scopeContainer.getInstance(component);
- assertSame(o1, o2);
- scopeContainer.onEvent(new RequestEnd(this));
- assertTrue(o1.isDestroyed());
- scopeContainer.stop();
- }
-
- public void testGetAssociatedInstance() throws Exception {
- RequestScopeContainer scopeContainer = new RequestScopeContainer(null, null);
- scopeContainer.start();
- AtomicComponent component = createComponent(scopeContainer);
- // start the request
- scopeContainer.getInstance(component);
- scopeContainer.getAssociatedInstance(component);
- scopeContainer.stop();
- }
-
- public void testGetAssociatedInstanceNonExistent() throws Exception {
- RequestScopeContainer scopeContainer = new RequestScopeContainer(null, null);
- scopeContainer.start();
- AtomicComponent component = createComponent(scopeContainer);
- // start the request
- try {
- scopeContainer.getAssociatedInstance(component);
- fail();
- } catch (TargetNotFoundException e) {
- // expected
- }
- scopeContainer.stop();
- }
-
- public void testRequestIsolation() throws Exception {
- RequestScopeContainer scopeContainer = new RequestScopeContainer(null, null);
- scopeContainer.start();
-
- AtomicComponent component = createComponent(scopeContainer);
-
- RequestScopeInitDestroyComponent o1 =
- (RequestScopeInitDestroyComponent) scopeContainer.getInstance(component);
- assertTrue(o1.isInitialized());
- scopeContainer.onEvent(new RequestEnd(this));
- assertTrue(o1.isDestroyed());
-
- RequestScopeInitDestroyComponent o2 =
- (RequestScopeInitDestroyComponent) scopeContainer.getInstance(component);
- assertNotSame(o1, o2);
- scopeContainer.onEvent(new RequestEnd(this));
- assertTrue(o2.isDestroyed());
- scopeContainer.stop();
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- factory = new PojoObjectFactory<RequestScopeInitDestroyComponent>(
- RequestScopeInitDestroyComponent.class.getConstructor((Class[]) null));
- initInvoker = new MethodEventInvoker<Object>(
- RequestScopeInitDestroyComponent.class.getMethod("init", (Class[]) null));
- destroyInvoker = new MethodEventInvoker<Object>(
- RequestScopeInitDestroyComponent.class.getMethod("destroy", (Class[]) null));
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- private AtomicComponent createComponent(ScopeContainer scopeContainer) {
- PojoConfiguration configuration = new PojoConfiguration();
- configuration.setInstanceFactory(factory);
- configuration.setInitInvoker(initInvoker);
- configuration.setDestroyInvoker(destroyInvoker);
- configuration.setName("foo");
- SystemAtomicComponentImpl component = new SystemAtomicComponentImpl(configuration);
- component.setScopeContainer(scopeContainer);
- component.start();
- return component;
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicStatelessScopeTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicStatelessScopeTestCase.java
deleted file mode 100644
index 9ca9230e5b..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicStatelessScopeTestCase.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.TargetNotFoundException;
-import org.apache.tuscany.spi.component.WorkContext;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
-import org.apache.tuscany.core.mock.component.StatelessComponent;
-import org.apache.tuscany.core.mock.component.StatelessComponentImpl;
-
-/**
- * Unit tests for the composite scope container
- *
- * @version $Rev$ $Date$
- */
-public class BasicStatelessScopeTestCase extends TestCase {
- private PojoObjectFactory<StatelessComponentImpl> factory;
-
- /**
- * Verfies instance identity is properly maintained
- */
- public void testInstanceManagement() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- StatelessScopeContainer scope = new StatelessScopeContainer(ctx, null);
- scope.start();
- AtomicComponent component1 = createComponent(scope);
- scope.register(component1);
- AtomicComponent component2 = createComponent(scope);
- scope.register(component2);
- StatelessComponentImpl comp1 = (StatelessComponentImpl) scope.getInstance(component1);
- Assert.assertNotNull(comp1);
- StatelessComponentImpl comp2 = (StatelessComponentImpl) scope.getInstance(component2);
- Assert.assertNotNull(comp2);
- Assert.assertNotSame(comp1, comp2);
- scope.stop();
- }
-
- public void testGetAssociatedInstance() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- StatelessScopeContainer scope = new StatelessScopeContainer(ctx, null);
- scope.start();
- AtomicComponent component1 = createComponent(scope);
- scope.register(component1);
- try {
- // always throws an exception, which is the semantic for stateless implementations
- scope.getAssociatedInstance(component1);
- fail();
- } catch (TargetNotFoundException e) {
- // expected
- }
- scope.stop();
- }
-
- public void testRegisterContextAfterRequest() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- StatelessScopeContainer scope = new StatelessScopeContainer(ctx, null);
-
- scope.start();
- AtomicComponent component1 = createComponent(scope);
- scope.register(component1);
- StatelessComponent comp1 = (StatelessComponentImpl) scope.getInstance(component1);
- Assert.assertNotNull(comp1);
- AtomicComponent component2 = createComponent(scope);
- scope.register(component2);
- StatelessComponentImpl comp2 = (StatelessComponentImpl) scope.getInstance(component2);
- Assert.assertNotNull(comp2);
- scope.stop();
- }
-
-
- /**
- * Tests setting no components in the scope
- */
- public void testSetNullComponents() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- StatelessScopeContainer scope = new StatelessScopeContainer(ctx, null);
- scope.start();
- scope.stop();
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- factory =
- new PojoObjectFactory<StatelessComponentImpl>(StatelessComponentImpl.class.getConstructor((Class[]) null));
-
- }
-
- private AtomicComponent createComponent(ScopeContainer scopeContainer) {
- PojoConfiguration configuration = new PojoConfiguration();
- configuration.setInstanceFactory(factory);
- configuration.setName("foo");
- AtomicComponent component = new SystemAtomicComponentImpl(configuration);
- component.setScopeContainer(scopeContainer);
- return component;
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInitDestroyErrorTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInitDestroyErrorTestCase.java
deleted file mode 100644
index 8ac4ce46a4..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInitDestroyErrorTestCase.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.ObjectCreationException;
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ScopeContainerMonitor;
-import org.apache.tuscany.spi.component.TargetDestructionException;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.event.CompositeStart;
-import org.apache.tuscany.core.component.event.CompositeStop;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class CompositeScopeInitDestroyErrorTestCase extends TestCase {
-
- public void testInitializeErrorMonitor() throws Exception {
- ScopeContainerMonitor monitor;
- monitor = EasyMock.createMock(ScopeContainerMonitor.class);
- monitor.eagerInitializationError(EasyMock.isA(ObjectCreationException.class));
- EasyMock.replay(monitor);
- CompositeScopeContainer scope = new CompositeScopeContainer(monitor);
- scope.start();
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
- EasyMock.expect(component.createInstance()).andThrow(new ObjectCreationException(""));
- EasyMock.expect(component.getInitLevel()).andReturn(1);
- EasyMock.replay(component);
- scope.register(component);
- scope.onEvent(new CompositeStart(this, null));
- EasyMock.verify(monitor);
- }
-
- public void testDestroyErrorMonitor() throws Exception {
- ScopeContainerMonitor monitor;
- monitor = EasyMock.createMock(ScopeContainerMonitor.class);
- monitor.destructionError(EasyMock.isA(TargetDestructionException.class));
- EasyMock.replay(monitor);
- CompositeScopeContainer scope = new CompositeScopeContainer(monitor);
- scope.start();
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
- EasyMock.expect(component.createInstance()).andReturn(new Object());
- EasyMock.expect(component.getInitLevel()).andReturn(1);
- component.init(EasyMock.isA(Object.class));
- component.destroy(EasyMock.isA(Object.class));
- EasyMock.expectLastCall().andThrow(new TargetDestructionException("", ""));
- EasyMock.replay(component);
- scope.register(component);
- scope.onEvent(new CompositeStart(this, null));
- scope.onEvent(new CompositeStop(this, null));
- EasyMock.verify(monitor);
- }
-
-
- protected void setUp() throws Exception {
- super.setUp();
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInstanceLifecycleTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInstanceLifecycleTestCase.java
deleted file mode 100644
index 0d70bcf252..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInstanceLifecycleTestCase.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * 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.core.component.scope;
-
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.TargetException;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.event.CompositeStart;
-import org.apache.tuscany.core.component.event.CompositeStop;
-import org.apache.tuscany.core.mock.component.OrderedInitPojo;
-import org.apache.tuscany.core.mock.component.OrderedInitPojoImpl;
-import org.easymock.EasyMock;
-import org.easymock.IAnswer;
-
-/**
- * Lifecycle unit tests for the composite scope container
- *
- * @version $Rev$ $Date$
- */
-public class CompositeScopeInstanceLifecycleTestCase extends TestCase {
-
- /**
- * Verify init and stop by scope container on an atomic component
- *
- * @throws Exception
- */
- public void testInitDestroy() throws Exception {
- CompositeScopeContainer scope = new CompositeScopeContainer(null);
- scope.start();
- Foo comp = new Foo();
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.createInstance()).andReturn(comp);
- EasyMock.expect(component.getInitLevel()).andReturn(1).atLeastOnce();
- component.init(EasyMock.eq(comp));
- component.destroy(EasyMock.eq(comp));
- EasyMock.replay(component);
- scope.register(component);
- scope.onEvent(new CompositeStart(this, null));
- assertNotNull(scope.getInstance(component));
- // expire composite
- scope.onEvent(new CompositeStop(this, null));
- scope.stop();
- EasyMock.verify(component);
- }
-
- /**
- * Verify init and stop by scope container on an atomic component when set to eager initialize
- *
- * @throws Exception
- */
- public void testEagerInitDestroy() throws Exception {
- CompositeScopeContainer scope = new CompositeScopeContainer(null);
- scope.start();
- Foo comp = new Foo();
- AtomicComponent initDestroyComponent = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(initDestroyComponent.createInstance()).andReturn(comp);
- EasyMock.expect(initDestroyComponent.getInitLevel()).andReturn(1).atLeastOnce();
- initDestroyComponent.init(EasyMock.eq(comp));
- initDestroyComponent.destroy(EasyMock.eq(comp));
- EasyMock.replay(initDestroyComponent);
- scope.register(initDestroyComponent);
- scope.onEvent(new CompositeStart(this, null));
- // expire composite
- scope.onEvent(new CompositeStop(this, null));
- scope.stop();
- EasyMock.verify(initDestroyComponent);
- }
-
-
- public void testDestroyOrder() throws Exception {
- CompositeScopeContainer scope = new CompositeScopeContainer(null);
- scope.start();
-
- AtomicComponent oneComponent = createComponent(0);
- scope.register(oneComponent);
- AtomicComponent twoComponent = createComponent(0);
- scope.register(twoComponent);
- AtomicComponent threeComponent = createComponent(0);
- scope.register(threeComponent);
-
- scope.onEvent(new CompositeStart(this, null));
- OrderedInitPojo one = (OrderedInitPojo) scope.getInstance(oneComponent);
- assertNotNull(one);
- assertEquals(1, one.getNumberInstantiated());
- assertEquals(1, one.getInitOrder());
-
- OrderedInitPojo two = (OrderedInitPojo) scope.getInstance(twoComponent);
- assertNotNull(two);
- assertEquals(2, two.getNumberInstantiated());
- assertEquals(2, two.getInitOrder());
-
- OrderedInitPojo three = (OrderedInitPojo) scope.getInstance(threeComponent);
- assertNotNull(three);
- assertEquals(3, three.getNumberInstantiated());
- assertEquals(3, three.getInitOrder());
-
- // expire composite
- scope.onEvent(new CompositeStop(this, null));
- assertEquals(0, one.getNumberInstantiated());
- scope.stop();
- EasyMock.verify(oneComponent);
- EasyMock.verify(twoComponent);
- EasyMock.verify(threeComponent);
- }
-
- public void testEagerInitDestroyOrder() throws Exception {
- CompositeScopeContainer scope = new CompositeScopeContainer(null);
- scope.start();
-
- AtomicComponent oneComponent = createComponent(1);
- scope.register(oneComponent);
- AtomicComponent twoComponent = createComponent(1);
- scope.register(twoComponent);
- AtomicComponent threeComponent = createComponent(1);
- scope.register(threeComponent);
-
- scope.onEvent(new CompositeStart(this, null));
- OrderedInitPojo one = (OrderedInitPojo) scope.getInstance(oneComponent);
- assertNotNull(one);
-
- OrderedInitPojo two = (OrderedInitPojo) scope.getInstance(twoComponent);
- assertNotNull(two);
-
- OrderedInitPojo three = (OrderedInitPojo) scope.getInstance(threeComponent);
- assertNotNull(three);
-
- // expire composite
- scope.onEvent(new CompositeStop(this, null));
- assertEquals(0, one.getNumberInstantiated());
- scope.stop();
- EasyMock.verify(oneComponent);
- EasyMock.verify(twoComponent);
- EasyMock.verify(threeComponent);
- }
-
- @SuppressWarnings("unchecked")
- private AtomicComponent createComponent(int init) throws TargetException {
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.createInstance()).andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- return new OrderedInitPojoImpl();
- }
- });
- EasyMock.expect(component.getInitLevel()).andReturn(init).atLeastOnce();
- component.init(EasyMock.isA(OrderedInitPojoImpl.class));
- EasyMock.expectLastCall().andAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- OrderedInitPojoImpl pojo = (OrderedInitPojoImpl) EasyMock.getCurrentArguments()[0];
- pojo.init();
- return null;
- }
- });
- component.destroy(EasyMock.isA(OrderedInitPojoImpl.class));
- EasyMock.expectLastCall().andAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- OrderedInitPojoImpl pojo = (OrderedInitPojoImpl) EasyMock.getCurrentArguments()[0];
- pojo.destroy();
- return null;
- }
- });
- EasyMock.replay(component);
- return component;
- }
-
- private class Foo {
-
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeObjectFactoryTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeObjectFactoryTestCase.java
deleted file mode 100644
index 611fbfc13f..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeObjectFactoryTestCase.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.ScopeRegistry;
-import org.apache.tuscany.spi.model.Scope;
-
-import junit.framework.TestCase;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class CompositeScopeObjectFactoryTestCase extends TestCase {
-
- public void testCreation() {
- ScopeRegistry registry = EasyMock.createMock(ScopeRegistry.class);
- registry.registerFactory(EasyMock.isA(Scope.class), EasyMock.isA(CompositeScopeObjectFactory.class));
-
- assertNotNull(new CompositeScopeObjectFactory(registry, null).getInstance());
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeRestartTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeRestartTestCase.java
deleted file mode 100644
index 1fdaeed48c..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeRestartTestCase.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import java.lang.reflect.Constructor;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.event.CompositeStart;
-import org.apache.tuscany.core.component.event.CompositeStop;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
-import org.apache.tuscany.core.injection.MethodEventInvoker;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
-
-/**
- * Verifies the scope container properly disposes resources and canbe restarted
- *
- * @version $$Rev$$ $$Date$$
- */
-public class CompositeScopeRestartTestCase extends TestCase {
-
- public void testRestart() throws Exception {
- CompositeScopeContainer scope = new CompositeScopeContainer(null);
- scope.start();
- MethodEventInvoker<Object> initInvoker =
- new MethodEventInvoker<Object>(InitDestroyOnce.class.getMethod("init"));
- MethodEventInvoker<Object> destroyInvoker =
- new MethodEventInvoker<Object>(InitDestroyOnce.class.getMethod("destroy"));
- PojoConfiguration configuration = new PojoConfiguration();
- configuration.setInitInvoker(initInvoker);
- configuration.setDestroyInvoker(destroyInvoker);
- Constructor<InitDestroyOnce> ctr = InitDestroyOnce.class.getConstructor((Class<?>[]) null);
- configuration.setInstanceFactory(new PojoObjectFactory<InitDestroyOnce>(ctr));
- configuration.setName("InitDestroy");
- AtomicComponent component = new SystemAtomicComponentImpl(configuration);
- component.setScopeContainer(scope);
- component.start();
-
- scope.onEvent(new CompositeStart(this, null));
- Object instance = component.getTargetInstance();
- assertSame(instance, component.getTargetInstance());
-
- scope.onEvent(new CompositeStop(this, null));
- scope.stop();
- component.stop();
-
- scope.start();
- scope.onEvent(new CompositeStart(this, null));
- component.start();
- assertNotSame(instance, component.getTargetInstance());
- scope.onEvent(new CompositeStop(this, null));
- scope.stop();
- component.stop();
- }
-
- public static class InitDestroyOnce {
-
- private boolean initialized;
- private boolean destroyed;
-
- public InitDestroyOnce() {
- }
-
- public void init() {
- if (!initialized) {
- initialized = true;
- } else {
- fail("Scope did not clean up properly - Init called more than once");
- }
- }
-
- public void destroy() {
- if (!destroyed) {
- destroyed = true;
- } else {
- fail("Scope did not clean up properly - Destroyed called more than once");
- }
- }
-
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerDestroyOnExpirationTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerDestroyOnExpirationTestCase.java
deleted file mode 100644
index a1a3616d0a..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerDestroyOnExpirationTestCase.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.SCAObject;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.event.Event;
-import org.apache.tuscany.spi.event.EventFilter;
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.services.store.RecoveryListener;
-import org.apache.tuscany.spi.services.store.Store;
-import org.apache.tuscany.spi.services.store.StoreExpirationEvent;
-import org.apache.tuscany.spi.services.store.StoreReadException;
-import org.apache.tuscany.spi.services.store.StoreWriteException;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class ConversationalScopeContainerDestroyOnExpirationTestCase extends TestCase {
- private ScopeContainer container;
- private TestStore store;
- private AtomicComponent component;
-
- /**
- * Verifies the scope container registers a callback listener for component instance destroy events when a
- * conversational instance expires
- */
- public void testDestroyNotification() throws Exception {
- store.getListener().onEvent(new StoreExpirationEvent(this, component, new Object()));
- EasyMock.verify(component);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- component = EasyMock.createMock(AtomicComponent.class);
- component.destroy(EasyMock.isA(Object.class));
- EasyMock.replay(component);
- store = new TestStore();
- WorkContext context = new WorkContextImpl();
- container = new ConversationalScopeContainer(store, context, null);
- container.start();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- container.stop();
- }
-
- private class TestStore implements Store {
- private RuntimeEventListener listener;
-
- public RuntimeEventListener getListener() {
- return listener;
- }
-
- public void insertRecord(SCAObject owner, String id, Object object, long expiration)
- throws StoreWriteException {
-
- }
-
- public void updateRecord(SCAObject owner, String id, Object object, long expiration)
- throws StoreWriteException {
-
- }
-
- public Object readRecord(SCAObject owner, String id) throws StoreReadException {
- return null;
- }
-
- public void removeRecord(SCAObject owner, String id) throws StoreWriteException {
-
- }
-
- public void removeRecords() throws StoreWriteException {
-
- }
-
- public void recover(RecoveryListener listener) throws StoreReadException {
-
- }
-
- public void publish(Event object) {
-
- }
-
- public void addListener(RuntimeEventListener listener) {
- this.listener = listener;
- }
-
- public void addListener(EventFilter filter, RuntimeEventListener listener) {
-
- }
-
- public void removeListener(RuntimeEventListener listener) {
-
- }
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerMaxAgeTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerMaxAgeTestCase.java
deleted file mode 100644
index 79ea057652..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerMaxAgeTestCase.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.SCAObject;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.services.store.Store;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class ConversationalScopeContainerMaxAgeTestCase extends TestCase {
-
- private ScopeContainer container;
- private WorkContext context;
- private Store store;
- private AtomicComponent component;
-
- public void testMaxAgeUpdate() throws Exception {
- context.setIdentifier(Scope.CONVERSATION, "12345");
- container.getInstance(component);
- EasyMock.verify(store);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- ConversationalScopeContainerMaxAgeTestCase.Foo foo = new ConversationalScopeContainerMaxAgeTestCase.Foo();
- context = new WorkContextImpl();
- component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
- EasyMock.expect(component.getMaxIdleTime()).andReturn(-1L).atLeastOnce();
- EasyMock.expect(component.getMaxAge()).andReturn(600000L).atLeastOnce();
- EasyMock.replay(component);
- store = EasyMock.createMock(Store.class);
- EasyMock.expect(store.readRecord(EasyMock.isA(SCAObject.class), EasyMock.isA(String.class))).andReturn(foo);
- store.addListener(EasyMock.isA(RuntimeEventListener.class));
- EasyMock.replay(store);
- container = new ConversationalScopeContainer(store, context, null);
- container.start();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- context.clearIdentifier(Scope.CONVERSATION);
- container.stop();
- }
-
- private class Foo {
-
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerMaxIdleTimeTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerMaxIdleTimeTestCase.java
deleted file mode 100644
index 2ba152d223..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerMaxIdleTimeTestCase.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.SCAObject;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.services.store.Store;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class ConversationalScopeContainerMaxIdleTimeTestCase extends TestCase {
-
- private ScopeContainer container;
- private WorkContext context;
- private Store store;
- private AtomicComponent component;
-
- public void testMaxIdleTimeUpdate() throws Exception {
- context.setIdentifier(Scope.CONVERSATION, "12345");
- container.getInstance(component);
- EasyMock.verify(store);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- Foo foo = new Foo();
- context = new WorkContextImpl();
- component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
- EasyMock.expect(component.getMaxIdleTime()).andReturn(600000L).atLeastOnce();
- EasyMock.replay(component);
- store = EasyMock.createMock(Store.class);
- EasyMock.expect(store.readRecord(EasyMock.isA(SCAObject.class), EasyMock.isA(String.class))).andReturn(foo);
- store.addListener(EasyMock.isA(RuntimeEventListener.class));
- store.updateRecord(EasyMock.isA(SCAObject.class),
- EasyMock.isA(String.class),
- EasyMock.eq(foo),
- EasyMock.anyLong());
- EasyMock.replay(store);
- container = new ConversationalScopeContainer(store, context, null);
- container.start();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- context.clearIdentifier(Scope.CONVERSATION);
- container.stop();
- }
-
- private class Foo {
-
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerPersistenceTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerPersistenceTestCase.java
deleted file mode 100644
index ae7e91a59a..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerPersistenceTestCase.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import java.util.UUID;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.TargetNotFoundException;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.services.store.Store;
-import org.apache.tuscany.spi.services.store.StoreMonitor;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.services.store.memory.MemoryStore;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class ConversationalScopeContainerPersistenceTestCase extends TestCase {
- private ScopeContainer container;
- private WorkContext context;
-
- /**
- * Verifies the scope container properly creates an instance
- */
- public void testNotYetPersistedInMemory() throws Exception {
- String id = UUID.randomUUID().toString();
- context.setIdentifier(Scope.CONVERSATION, id);
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- component.addListener(EasyMock.eq(container));
- EasyMock.expect(component.createInstance()).andReturn(new Foo());
- EasyMock.expect(component.getMaxAge()).andReturn(600000L).atLeastOnce();
- component.init(EasyMock.isA(Object.class));
- EasyMock.replay(component);
- container.register(component);
- assertTrue(container.getInstance(component) instanceof Foo);
- EasyMock.verify(component);
- }
-
- public void testPersistNewInMemory() throws Exception {
- String id = UUID.randomUUID().toString();
- String id2 = UUID.randomUUID().toString();
- context.setIdentifier(Scope.CONVERSATION, id);
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- component.addListener(EasyMock.eq(container));
- EasyMock.expect(component.getMaxIdleTime()).andReturn(-1L).atLeastOnce();
- EasyMock.replay(component);
- container.register(component);
- Foo foo = new Foo();
- Foo foo2 = new Foo();
- container.persistNew(component, id, foo, System.currentTimeMillis() + 100000);
- assertEquals(foo, container.getInstance(component));
- container.persistNew(component, id2, foo2, System.currentTimeMillis() + 100000);
- context.setIdentifier(Scope.CONVERSATION, id2);
- assertEquals(foo2, container.getInstance(component));
- EasyMock.verify(component);
- }
-
- public void testPersistInMemory() throws Exception {
- String id = UUID.randomUUID().toString();
- context.setIdentifier(Scope.CONVERSATION, id);
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- component.addListener(EasyMock.eq(container));
- EasyMock.expect(component.getMaxIdleTime()).andReturn(-1L).atLeastOnce();
- EasyMock.replay(component);
- container.register(component);
- Foo foo = new Foo();
- container.persistNew(component, id, foo, System.currentTimeMillis() + 100000);
- assertEquals(foo, container.getInstance(component));
- container.persist(component, id, foo, System.currentTimeMillis() + 100000);
- assertEquals(foo, container.getInstance(component));
- EasyMock.verify(component);
- }
-
- public void testRemoveInMemory() throws Exception {
- String id = UUID.randomUUID().toString();
- context.setIdentifier(Scope.CONVERSATION, id);
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- component.addListener(EasyMock.eq(container));
- EasyMock.expect(component.getMaxIdleTime()).andReturn(-1L).atLeastOnce();
- EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
- EasyMock.replay(component);
- container.register(component);
- Foo foo = new Foo();
- container.persistNew(component, id, foo, System.currentTimeMillis() + 100000);
- assertEquals(foo, container.getInstance(component));
- container.remove(component);
- try {
- container.getAssociatedInstance(component);
- fail();
- } catch (TargetNotFoundException e) {
- //expected
- }
- EasyMock.verify(component);
- }
-
- public void testRecreateAfterRemoveInMemory() throws Exception {
- String id = UUID.randomUUID().toString();
- context.setIdentifier(Scope.CONVERSATION, id);
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- component.addListener(EasyMock.eq(container));
- EasyMock.expect(component.getMaxAge()).andReturn(600000L).atLeastOnce();
- component.init(EasyMock.isA(Object.class));
- EasyMock.expect(component.getMaxIdleTime()).andReturn(-1L).atLeastOnce();
- EasyMock.expect(component.createInstance()).andReturn(new Foo());
- EasyMock.replay(component);
- container.register(component);
- Foo foo = new Foo();
- container.persistNew(component, id, foo, System.currentTimeMillis() + 100000);
- assertEquals(foo, container.getInstance(component));
- container.remove(component);
- Foo foo2 = (Foo) container.getInstance(component);
- assertNotNull(foo2);
- assertNotSame(foo, foo2);
- EasyMock.verify(component);
- }
-
- public void testGetPersistedInstance() throws Exception {
- String id = UUID.randomUUID().toString();
- String id2 = UUID.randomUUID().toString();
- context.setIdentifier(Scope.CONVERSATION, id);
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
- EasyMock.expect(component.getMaxIdleTime()).andReturn(-1L).atLeastOnce();
- component.addListener(EasyMock.eq(container));
- EasyMock.replay(component);
- container.register(component);
- Foo foo = new Foo();
- container.persistNew(component, id, foo, System.currentTimeMillis() + 100000);
- assertEquals(foo, container.getAssociatedInstance(component));
- assertEquals(foo, container.getAssociatedInstance(component));
- context.setIdentifier(Scope.CONVERSATION, id2);
- try {
- container.getAssociatedInstance(component);
- fail();
- } catch (TargetNotFoundException e) {
- //expected
- }
- EasyMock.verify(component);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- context = new WorkContextImpl();
- StoreMonitor mock = EasyMock.createNiceMock(StoreMonitor.class);
- EasyMock.replay(mock);
- Store store = new MemoryStore(mock);
- container = new ConversationalScopeContainer(store, context, null);
- container.start();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- context.clearIdentifier(Scope.CONVERSATION);
- container.stop();
- }
-
- private class Foo {
-
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeInstanceLifecycleTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeInstanceLifecycleTestCase.java
deleted file mode 100644
index 782b175b47..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeInstanceLifecycleTestCase.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.services.store.StoreMonitor;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.services.store.memory.MemoryStore;
-import org.easymock.EasyMock;
-
-/**
- * Lifecycle unit tests for the conversational scope container
- *
- * @version $Rev: 451895 $ $Date: 2006-10-02 02:58:18 -0400 (Mon, 02 Oct 2006) $
- */
-public class ConversationalScopeInstanceLifecycleTestCase extends TestCase {
-
- public void testInitRemove() throws Exception {
- StoreMonitor monitor = EasyMock.createMock(StoreMonitor.class);
- monitor.start(EasyMock.isA(String.class));
- monitor.stop(EasyMock.isA(String.class));
- MemoryStore store = new MemoryStore(monitor);
- WorkContext ctx = new WorkContextImpl();
- ConversationalScopeContainer scope = new ConversationalScopeContainer(store, ctx, null);
- scope.start();
-
- Foo comp = new Foo();
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.createInstance()).andReturn(comp);
- component.init(EasyMock.eq(comp));
- EasyMock.expect(component.getMaxAge()).andReturn(1L).anyTimes();
- component.addListener(EasyMock.isA(RuntimeEventListener.class));
- EasyMock.replay(component);
- scope.register(component);
- String convID = "ConvID";
- ctx.setIdentifier(Scope.CONVERSATION, convID);
- assertNotNull(scope.getInstance(component));
- // expire
- scope.remove(component);
- scope.stop();
- EasyMock.verify(component);
- scope.stop();
- }
-
- private class Foo {
-
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeRestartTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeRestartTestCase.java
deleted file mode 100644
index bc5ddc7c2c..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeRestartTestCase.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import java.lang.reflect.Constructor;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.services.store.StoreMonitor;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.component.event.ConversationEnd;
-import org.apache.tuscany.core.component.event.ConversationStart;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
-import org.apache.tuscany.core.injection.MethodEventInvoker;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
-import org.apache.tuscany.core.services.store.memory.MemoryStore;
-import org.easymock.EasyMock;
-
-/**
- * Verifies the scope container properly disposes resources and can be restarted
- *
- * @version $$Rev: 471111 $$ $$Date: 2006-11-03 23:06:48 -0500 (Fri, 03 Nov 2006) $$
- */
-public class ConversationalScopeRestartTestCase extends TestCase {
-
- public void testRestart() throws Exception {
- StoreMonitor monitor = EasyMock.createMock(StoreMonitor.class);
- monitor.start(EasyMock.isA(String.class));
- monitor.stop(EasyMock.isA(String.class));
- MemoryStore store = new MemoryStore(monitor);
- WorkContext ctx = new WorkContextImpl();
- ConversationalScopeContainer scope = new ConversationalScopeContainer(store, ctx, null);
- scope.start();
- MethodEventInvoker<Object> initInvoker = new MethodEventInvoker<Object>(
- ConversationalScopeRestartTestCase.InitDestroyOnce.class.getMethod("init"));
- MethodEventInvoker<Object> destroyInvoker =
- new MethodEventInvoker<Object>(InitDestroyOnce.class.getMethod("destroy"));
- PojoConfiguration configuration = new PojoConfiguration();
- configuration.setInitInvoker(initInvoker);
- configuration.setDestroyInvoker(destroyInvoker);
- Constructor<InitDestroyOnce> ctr = InitDestroyOnce.class.getConstructor((Class<?>[]) null);
- configuration.setInstanceFactory(new PojoObjectFactory<InitDestroyOnce>(ctr));
- configuration.setName("InitDestroy");
- AtomicComponent component = new SystemAtomicComponentImpl(configuration);
- component.setScopeContainer(scope);
- component.start();
-
- String conversation = "conv";
- ctx.setIdentifier(Scope.CONVERSATION, conversation);
- scope.onEvent(new ConversationStart(this, conversation));
- Object instance = component.getTargetInstance();
- assertSame(instance, component.getTargetInstance());
-
- scope.onEvent(new ConversationEnd(this, conversation));
- scope.stop();
- component.stop();
-
- scope.start();
- scope.onEvent(new ConversationStart(this, conversation));
- component.start();
- //assertNotSame(instance, context.getServiceInstance());
- scope.onEvent(new ConversationEnd(this, conversation));
- scope.stop();
- component.stop();
- }
-
- public static class InitDestroyOnce {
-
- private boolean initialized;
- private boolean destroyed;
-
- public InitDestroyOnce() {
- }
-
- public void init() {
- if (!initialized) {
- initialized = true;
- } else {
- fail("Scope did not clean up properly - Init called more than once");
- }
- }
-
- public void destroy() {
- if (!destroyed) {
- destroyed = true;
- } else {
- fail("Scope did not clean up properly - Destroyed called more than once");
- }
- }
-
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/DependencyLifecycleTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/DependencyLifecycleTestCase.java
deleted file mode 100644
index 4a2497a725..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/DependencyLifecycleTestCase.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import java.util.Map;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Scope;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.component.event.CompositeStart;
-import org.apache.tuscany.core.component.event.CompositeStop;
-import org.apache.tuscany.core.component.event.HttpSessionEnd;
-import org.apache.tuscany.core.component.event.RequestEnd;
-import org.apache.tuscany.core.component.event.RequestStart;
-import org.apache.tuscany.core.mock.component.OrderedDependentPojo;
-import org.apache.tuscany.core.mock.component.OrderedDependentPojoImpl;
-import org.apache.tuscany.core.mock.component.OrderedInitPojo;
-import org.apache.tuscany.core.mock.component.OrderedInitPojoImpl;
-
-/**
- * Tests dependencies are initalized and destroyed in the proper order (i.e. LIFO)
- *
- * @version $Rev$ $Date$
- */
-public class DependencyLifecycleTestCase extends TestCase {
-
- public void testInitDestroyOrderCompositeScope() throws Exception {
- CompositeScopeContainer scopeCtx = new CompositeScopeContainer(null);
- scopeCtx.start();
- Map<String, AtomicComponent> contexts = MockFactory.createWiredComponents("source",
- OrderedDependentPojoImpl.class,
- scopeCtx,
- "target",
- OrderedInitPojoImpl.class,
- scopeCtx);
- for (AtomicComponent component : contexts.values()) {
- scopeCtx.register(component);
- }
- AtomicComponent sourceComponent = contexts.get("source");
- AtomicComponent targetComponent = contexts.get("target");
- scopeCtx.register(sourceComponent);
- scopeCtx.register(targetComponent);
- scopeCtx.onEvent(new CompositeStart(this, null));
- OrderedDependentPojo source = (OrderedDependentPojo) scopeCtx.getInstance(sourceComponent);
- OrderedInitPojo target = (OrderedInitPojo) scopeCtx.getInstance(targetComponent);
- assertNotNull(source.getPojo());
- assertNotNull(target);
- assertEquals(2, source.getNumberInstantiated());
- scopeCtx.onEvent(new CompositeStop(this, null));
- assertEquals(0, source.getNumberInstantiated());
- scopeCtx.stop();
- }
-
- public void testInitDestroyOrderAfterStartCompositeScope() throws Exception {
- CompositeScopeContainer scopeCtx = new CompositeScopeContainer(null);
- scopeCtx.start();
- Map<String, AtomicComponent> contexts = MockFactory.createWiredComponents("source",
- OrderedDependentPojoImpl.class,
- scopeCtx,
- "target",
- OrderedInitPojoImpl.class,
- scopeCtx);
- AtomicComponent sourceComponent = contexts.get("source");
- AtomicComponent targetComponent = contexts.get("target");
- scopeCtx.onEvent(new CompositeStart(this, null));
- scopeCtx.register(sourceComponent);
- scopeCtx.register(targetComponent);
- OrderedDependentPojo source = (OrderedDependentPojo) scopeCtx.getInstance(sourceComponent);
- OrderedInitPojo target = (OrderedInitPojo) scopeCtx.getInstance(targetComponent);
- assertNotNull(source.getPojo());
- assertNotNull(target);
- assertEquals(2, source.getNumberInstantiated());
- scopeCtx.onEvent(new CompositeStop(this, null));
- assertEquals(0, source.getNumberInstantiated());
- scopeCtx.stop();
- }
-
-
- public void testInitDestroyOrderSessionScope() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- HttpSessionScopeContainer scopeCtx = new HttpSessionScopeContainer(ctx, null);
- scopeCtx.start();
- Object session = new Object();
- Map<String, AtomicComponent> contexts = MockFactory.createWiredComponents("source",
- OrderedDependentPojoImpl.class,
- scopeCtx,
- "target",
- OrderedInitPojoImpl.class,
- scopeCtx);
- AtomicComponent sourceComponent = contexts.get("source");
- AtomicComponent targetComponent = contexts.get("target");
- scopeCtx.register(sourceComponent);
- scopeCtx.register(targetComponent);
- ctx.setIdentifier(Scope.SESSION, session);
- OrderedDependentPojo source = (OrderedDependentPojo) scopeCtx.getInstance(sourceComponent);
- assertNotNull(source.getPojo());
- assertEquals(2, source.getNumberInstantiated());
- scopeCtx.onEvent(new HttpSessionEnd(this, session));
- assertEquals(0, source.getNumberInstantiated());
- scopeCtx.stop();
- }
-
-
- public void testInitDestroyOrderAfterStartSessionScope() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- HttpSessionScopeContainer scopeCtx = new HttpSessionScopeContainer(ctx, null);
- scopeCtx.start();
- Object session = new Object();
- Map<String, AtomicComponent> contexts = MockFactory.createWiredComponents("source",
- OrderedDependentPojoImpl.class,
- scopeCtx,
- "target",
- OrderedInitPojoImpl.class,
- scopeCtx);
- AtomicComponent sourceComponent = contexts.get("source");
- AtomicComponent targetComponent = contexts.get("target");
- ctx.setIdentifier(Scope.SESSION, session);
- scopeCtx.register(sourceComponent);
- scopeCtx.register(targetComponent);
- OrderedDependentPojo source = (OrderedDependentPojo) scopeCtx.getInstance(sourceComponent);
- assertNotNull(source.getPojo());
- assertEquals(2, source.getNumberInstantiated());
- scopeCtx.onEvent(new HttpSessionEnd(this, session));
- assertEquals(0, source.getNumberInstantiated());
- scopeCtx.stop();
- }
-
- public void testInitDestroyOrderRequestScope() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- RequestScopeContainer scopeCtx = new RequestScopeContainer(ctx, null);
- scopeCtx.start();
- scopeCtx.onEvent(new RequestStart(this));
- Map<String, AtomicComponent> contexts = MockFactory.createWiredComponents("source",
- OrderedDependentPojoImpl.class,
- scopeCtx,
- "target",
- OrderedInitPojoImpl.class,
- scopeCtx);
- AtomicComponent sourceComponent = contexts.get("source");
- AtomicComponent targetComponent = contexts.get("target");
- scopeCtx.register(sourceComponent);
- scopeCtx.register(targetComponent);
- OrderedDependentPojo source = (OrderedDependentPojo) scopeCtx.getInstance(sourceComponent);
- assertNotNull(source.getPojo());
- assertEquals(2, source.getNumberInstantiated());
- scopeCtx.onEvent(new RequestEnd(this));
- assertEquals(0, source.getNumberInstantiated());
- scopeCtx.stop();
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java
deleted file mode 100644
index 7aa2f9a120..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ScopeContainerMonitor;
-import org.apache.tuscany.spi.component.TargetDestructionException;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.model.Scope;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.component.event.HttpSessionEnd;
-import org.apache.tuscany.core.component.event.HttpSessionStart;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class HttpSessionScopeInitDestroyErrorTestCase extends TestCase {
-
- public void testDestroyErrorMonitor() throws Exception {
- ScopeContainerMonitor monitor;
- monitor = EasyMock.createMock(ScopeContainerMonitor.class);
- monitor.destructionError(EasyMock.isA(TargetDestructionException.class));
- EasyMock.replay(monitor);
- WorkContext workContext = new WorkContextImpl();
- HttpSessionScopeContainer scope = new HttpSessionScopeContainer(workContext, monitor);
- scope.start();
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- component.addListener(EasyMock.isA(RuntimeEventListener.class));
- EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
- EasyMock.expect(component.createInstance()).andReturn(new Object());
- EasyMock.expect(component.isEagerInit()).andReturn(true);
- component.init(EasyMock.isA(Object.class));
- component.destroy(EasyMock.isA(Object.class));
- EasyMock.expectLastCall().andThrow(new TargetDestructionException("", ""));
- EasyMock.replay(component);
- scope.register(component);
- Object id = new Object();
- scope.onEvent(new HttpSessionStart(this, id));
- workContext.setIdentifier(Scope.SESSION, id);
- scope.getInstance(component);
- scope.onEvent(new HttpSessionEnd(this, id));
- EasyMock.verify(monitor);
- }
-
-
- protected void setUp() throws Exception {
- super.setUp();
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java
deleted file mode 100644
index 29d6d54450..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.TargetException;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.model.Scope;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.component.event.HttpSessionEnd;
-import org.apache.tuscany.core.component.event.HttpSessionStart;
-import org.apache.tuscany.core.mock.component.OrderedInitPojo;
-import org.apache.tuscany.core.mock.component.OrderedInitPojoImpl;
-import org.easymock.EasyMock;
-import org.easymock.IAnswer;
-
-/**
- * Lifecycle unit tests for the composite scope container
- *
- * @version $Rev$ $Date$
- */
-public class HttpSessionScopeInstanceLifecycleTestCase extends TestCase {
-
- public void testInitDestroy() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- HttpSessionScopeContainer scope = new HttpSessionScopeContainer(ctx, null);
- scope.start();
- Foo comp = new Foo();
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.createInstance()).andReturn(comp);
- component.addListener(EasyMock.isA(RuntimeEventListener.class));
- component.init(EasyMock.eq(comp));
- component.destroy(EasyMock.eq(comp));
- EasyMock.replay(component);
- scope.register(component);
- Object session = new Object();
- ctx.setIdentifier(Scope.SESSION, session);
- scope.onEvent(new HttpSessionStart(this, session));
- assertNotNull(scope.getInstance(component));
- // expire
- scope.onEvent(new HttpSessionEnd(this, session));
- scope.stop();
- EasyMock.verify(component);
- scope.stop();
- }
-
- public void testDestroyOrder() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- HttpSessionScopeContainer scope = new HttpSessionScopeContainer(ctx, null);
- scope.start();
-
- AtomicComponent oneComponent = createComponent();
- scope.register(oneComponent);
- AtomicComponent twoComponent = createComponent();
- scope.register(twoComponent);
- AtomicComponent threeComponent = createComponent();
- scope.register(threeComponent);
-
- Object session = new Object();
- ctx.setIdentifier(Scope.SESSION, session);
- scope.onEvent(new HttpSessionStart(this, session));
- OrderedInitPojo one = (OrderedInitPojo) scope.getInstance(oneComponent);
- assertNotNull(one);
- assertEquals(1, one.getNumberInstantiated());
- assertEquals(1, one.getInitOrder());
-
- OrderedInitPojo two = (OrderedInitPojo) scope.getInstance(twoComponent);
- assertNotNull(two);
- assertEquals(2, two.getNumberInstantiated());
- assertEquals(2, two.getInitOrder());
-
- OrderedInitPojo three = (OrderedInitPojo) scope.getInstance(threeComponent);
- assertNotNull(three);
- assertEquals(3, three.getNumberInstantiated());
- assertEquals(3, three.getInitOrder());
-
- scope.onEvent(new HttpSessionEnd(this, session));
- assertEquals(0, one.getNumberInstantiated());
- scope.stop();
- EasyMock.verify(oneComponent);
- EasyMock.verify(twoComponent);
- EasyMock.verify(threeComponent);
- }
-
- @SuppressWarnings("unchecked")
- private AtomicComponent createComponent() throws TargetException {
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.createInstance()).andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- return new OrderedInitPojoImpl();
- }
- });
- component.addListener(EasyMock.isA(RuntimeEventListener.class));
- component.init(EasyMock.isA(OrderedInitPojoImpl.class));
- EasyMock.expectLastCall().andAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- OrderedInitPojoImpl pojo = (OrderedInitPojoImpl) EasyMock.getCurrentArguments()[0];
- pojo.init();
- return null;
- }
- });
- component.destroy(EasyMock.isA(OrderedInitPojoImpl.class));
- EasyMock.expectLastCall().andAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- OrderedInitPojoImpl pojo = (OrderedInitPojoImpl) EasyMock.getCurrentArguments()[0];
- pojo.destroy();
- return null;
- }
- });
- EasyMock.replay(component);
- return component;
- }
-
- private class Foo {
-
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeRestartTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeRestartTestCase.java
deleted file mode 100644
index eff0eb6d3a..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeRestartTestCase.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import java.lang.reflect.Constructor;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Scope;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.component.event.HttpSessionEnd;
-import org.apache.tuscany.core.component.event.HttpSessionStart;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
-import org.apache.tuscany.core.injection.MethodEventInvoker;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
-
-/**
- * Verifies the scope container properly disposes resources and canbe restarted
- *
- * @version $$Rev$$ $$Date$$
- */
-public class HttpSessionScopeRestartTestCase extends TestCase {
-
- public void testRestart() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- HttpSessionScopeContainer scope = new HttpSessionScopeContainer(ctx, null);
- scope.start();
- MethodEventInvoker<Object> initInvoker = new MethodEventInvoker<Object>(
- HttpSessionScopeRestartTestCase.InitDestroyOnce.class.getMethod("init"));
- MethodEventInvoker<Object> destroyInvoker =
- new MethodEventInvoker<Object>(InitDestroyOnce.class.getMethod("destroy"));
- PojoConfiguration configuration = new PojoConfiguration();
- configuration.setInitInvoker(initInvoker);
- configuration.setDestroyInvoker(destroyInvoker);
- Constructor<InitDestroyOnce> ctr = InitDestroyOnce.class.getConstructor((Class<?>[]) null);
- configuration.setInstanceFactory(new PojoObjectFactory<InitDestroyOnce>(ctr));
- configuration.setName("InitDestroy");
- AtomicComponent component = new SystemAtomicComponentImpl(configuration);
- component.setScopeContainer(scope);
- component.start();
-
- Object session = new Object();
- ctx.setIdentifier(Scope.SESSION, session);
- scope.onEvent(new HttpSessionStart(this, session));
- Object instance = component.getTargetInstance();
- assertSame(instance, component.getTargetInstance());
-
- scope.onEvent(new HttpSessionEnd(this, session));
- scope.stop();
- component.stop();
-
- scope.start();
- scope.onEvent(new HttpSessionStart(this, session));
- component.start();
- assertNotSame(instance, component.getTargetInstance());
- scope.onEvent(new HttpSessionEnd(this, session));
- scope.stop();
- component.stop();
- }
-
- public static class InitDestroyOnce {
-
- private boolean initialized;
- private boolean destroyed;
-
- public InitDestroyOnce() {
- }
-
- public void init() {
- if (!initialized) {
- initialized = true;
- } else {
- fail("Scope did not clean up properly - Init called more than once");
- }
- }
-
- public void destroy() {
- if (!destroyed) {
- destroyed = true;
- } else {
- fail("Scope did not clean up properly - Destroyed called more than once");
- }
- }
-
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/InstanceWrapperTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/InstanceWrapperTestCase.java
deleted file mode 100644
index 5600987d8b..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/InstanceWrapperTestCase.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-
-import junit.framework.TestCase;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class InstanceWrapperTestCase extends TestCase {
-
- public void testExceptionInit() throws Exception {
- AtomicComponent component = getComponent();
- InstanceWrapper wrapper = new InstanceWrapperImpl(component, new Object());
- try {
- wrapper.start();
- fail();
- } catch (SomeException e) {
- // expected
- }
- assertFalse(wrapper.isStarted());
- EasyMock.verify(component);
- }
-
- public void testNonStart() throws Exception {
- AtomicComponent comp = EasyMock.createNiceMock(AtomicComponent.class); // class-level one has an expects
- InstanceWrapper wrapper = new InstanceWrapperImpl(comp, new Object());
- try {
- wrapper.getInstance();
- fail();
- } catch (IllegalStateException e) {
- // expected
- }
- }
-
- private AtomicComponent getComponent() throws Exception {
- // do not use setUp() since we do not need this in all testcases
- AtomicComponent comp = EasyMock.createMock(AtomicComponent.class);
- comp.init(EasyMock.isA(Object.class));
- EasyMock.expectLastCall().andThrow(new SomeException());
- EasyMock.replay(comp);
- return comp;
- }
-
- private class SomeException extends RuntimeException {
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/MockFactory.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/MockFactory.java
deleted file mode 100644
index db947e0d66..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/MockFactory.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-
-import org.apache.tuscany.spi.QualifiedName;
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.idl.java.JavaServiceContract;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-
-import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
-import org.apache.tuscany.core.injection.MethodEventInvoker;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
-import org.apache.tuscany.core.wire.InboundWireImpl;
-import org.apache.tuscany.core.wire.OutboundWireImpl;
-
-/**
- * @version $$Rev$$ $$Date$$
- */
-public final class MockFactory {
-
- private MockFactory() {
- }
-
- @SuppressWarnings("unchecked")
- public static Map<String, AtomicComponent> createWiredComponents(String source,
- Class<?> sourceClass,
- ScopeContainer sourceScopeContainer,
- String target,
- Class<?> targetClass,
- ScopeContainer targetScopeContainer)
- throws NoSuchMethodException {
-
- Map<String, AtomicComponent> components = new HashMap<String, AtomicComponent>();
- AtomicComponent targetComponent = createAtomicComponent(target, targetScopeContainer, targetClass);
- PojoConfiguration sourceConfig = new PojoConfiguration();
- sourceConfig.setInstanceFactory(new PojoObjectFactory(sourceClass.getConstructor()));
-
- //create target wire
- Method[] sourceMethods = sourceClass.getMethods();
- Class[] interfaces = targetClass.getInterfaces();
- EagerInit eager = targetClass.getAnnotation(EagerInit.class);
- if (eager != null) {
- sourceConfig.setInitLevel(50);
- }
-
- Method setter = null;
- for (Class interfaze : interfaces) {
-
- for (Method method : sourceMethods) {
- if (method.getParameterTypes().length == 1) {
- if (interfaze.isAssignableFrom(method.getParameterTypes()[0])) {
- setter = method;
- }
- }
- if (method.getAnnotation(Init.class) != null) {
- sourceConfig.setInitInvoker(new MethodEventInvoker<Object>(method));
-
- } else if (method.getAnnotation(Destroy.class) != null) {
- sourceConfig.setDestroyInvoker(new MethodEventInvoker<Object>(method));
- }
- }
-
- }
- if (setter == null) {
- throw new IllegalArgumentException("No setter found on source for target");
- }
-
- sourceConfig.addReferenceSite(setter.getName(), setter);
- sourceConfig.setName(source);
- AtomicComponent sourceComponent = new SystemAtomicComponentImpl(sourceConfig);
- sourceComponent.setScopeContainer(sourceScopeContainer);
- QualifiedName targetName = new QualifiedName(target);
- OutboundWire wire = new OutboundWireImpl();
- wire.setReferenceName(setter.getName());
- wire.setServiceContract(new JavaServiceContract(targetClass));
- InboundWire inboundWire = new InboundWireImpl();
- inboundWire.setContainer(targetComponent);
- inboundWire.setServiceContract(new JavaServiceContract(targetClass));
- inboundWire.setServiceName(targetName.getPortName());
- wire.setTargetWire(inboundWire);
- sourceComponent.addOutboundWire(wire);
- components.put(source, sourceComponent);
- components.put(target, targetComponent);
- return components;
- }
-
- @SuppressWarnings("unchecked")
- public static AtomicComponent createAtomicComponent(String name, ScopeContainer container, Class<?> clazz)
- throws NoSuchMethodException {
- PojoConfiguration configuration = new PojoConfiguration();
- configuration.setInstanceFactory(new PojoObjectFactory(clazz.getConstructor()));
- EagerInit eager = clazz.getAnnotation(EagerInit.class);
- if (eager != null) {
- configuration.setInitLevel(50);
- }
- Method[] methods = clazz.getMethods();
- for (Method method : methods) {
- if (method.getAnnotation(Init.class) != null) {
- configuration.setInitInvoker(new MethodEventInvoker<Object>(method));
- } else if (method.getAnnotation(Destroy.class) != null) {
- configuration.setDestroyInvoker(new MethodEventInvoker<Object>(method));
- }
- }
- configuration.setName(name);
- AtomicComponent component = new SystemAtomicComponentImpl(configuration);
- component.setScopeContainer(container);
- return component;
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInitDestroyErrorTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInitDestroyErrorTestCase.java
deleted file mode 100644
index 3f562c9b61..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInitDestroyErrorTestCase.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ScopeContainerMonitor;
-import org.apache.tuscany.spi.component.TargetDestructionException;
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.component.event.RequestEnd;
-import org.apache.tuscany.core.component.event.RequestStart;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class RequestScopeInitDestroyErrorTestCase extends TestCase {
-
- public void testDestroyErrorMonitor() throws Exception {
- ScopeContainerMonitor monitor;
- monitor = EasyMock.createMock(ScopeContainerMonitor.class);
- monitor.destructionError(EasyMock.isA(TargetDestructionException.class));
- EasyMock.replay(monitor);
- RequestScopeContainer scope = new RequestScopeContainer(new WorkContextImpl(), monitor);
- scope.start();
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- component.addListener(EasyMock.isA(RuntimeEventListener.class));
- EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
- EasyMock.expect(component.createInstance()).andReturn(new Object());
- component.init(EasyMock.isA(Object.class));
- component.destroy(EasyMock.isA(Object.class));
- EasyMock.expectLastCall().andThrow(new TargetDestructionException("", ""));
- EasyMock.replay(component);
- scope.register(component);
- scope.onEvent(new RequestStart(this));
- scope.getInstance(component);
- scope.onEvent(new RequestEnd(this));
- EasyMock.verify(monitor);
- }
-
-
- protected void setUp() throws Exception {
- super.setUp();
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInstanceLifecycleTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInstanceLifecycleTestCase.java
deleted file mode 100644
index 6601640c3b..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInstanceLifecycleTestCase.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.TargetException;
-import org.apache.tuscany.spi.component.WorkContext;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.component.event.RequestEnd;
-import org.apache.tuscany.core.component.event.RequestStart;
-import org.apache.tuscany.core.mock.component.OrderedInitPojo;
-import org.apache.tuscany.core.mock.component.OrderedInitPojoImpl;
-import org.easymock.EasyMock;
-import org.easymock.IAnswer;
-
-/**
- * Lifecycle unit tests for the request scope container
- *
- * @version $Rev$ $Date$
- */
-public class RequestScopeInstanceLifecycleTestCase extends TestCase {
-
- public void testInitDestroy() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- RequestScopeContainer scope = new RequestScopeContainer(ctx, null);
- scope.start();
- Foo comp = new Foo();
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.createInstance()).andReturn(comp);
- component.init(EasyMock.eq(comp));
- component.destroy(EasyMock.eq(comp));
- EasyMock.replay(component);
- scope.register(component);
- scope.onEvent(new RequestStart(this));
- assertNotNull(scope.getInstance(component));
- // expire
- scope.onEvent(new RequestEnd(this));
- scope.stop();
- EasyMock.verify(component);
- scope.stop();
- }
-
- public void testDestroyOrder() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- RequestScopeContainer scope = new RequestScopeContainer(ctx, null);
- scope.start();
-
- AtomicComponent oneComponent = createComponent();
- scope.register(oneComponent);
- AtomicComponent twoComponent = createComponent();
- scope.register(twoComponent);
- AtomicComponent threeComponent = createComponent();
- scope.register(threeComponent);
-
- scope.onEvent(new RequestStart(this));
- OrderedInitPojo one = (OrderedInitPojo) scope.getInstance(oneComponent);
- assertNotNull(one);
- assertEquals(1, one.getNumberInstantiated());
- assertEquals(1, one.getInitOrder());
-
- OrderedInitPojo two = (OrderedInitPojo) scope.getInstance(twoComponent);
- assertNotNull(two);
- assertEquals(2, two.getNumberInstantiated());
- assertEquals(2, two.getInitOrder());
-
- OrderedInitPojo three = (OrderedInitPojo) scope.getInstance(threeComponent);
- assertNotNull(three);
- assertEquals(3, three.getNumberInstantiated());
- assertEquals(3, three.getInitOrder());
-
- scope.onEvent(new RequestEnd(this));
- assertEquals(0, one.getNumberInstantiated());
- scope.stop();
- EasyMock.verify(oneComponent);
- EasyMock.verify(twoComponent);
- EasyMock.verify(threeComponent);
- }
-
- @SuppressWarnings("unchecked")
- private AtomicComponent createComponent() throws TargetException {
- AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
- EasyMock.expect(component.createInstance()).andStubAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- return new OrderedInitPojoImpl();
- }
- });
- component.init(EasyMock.isA(OrderedInitPojoImpl.class));
- EasyMock.expectLastCall().andAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- OrderedInitPojoImpl pojo = (OrderedInitPojoImpl) EasyMock.getCurrentArguments()[0];
- pojo.init();
- return null;
- }
- });
- component.destroy(EasyMock.isA(OrderedInitPojoImpl.class));
- EasyMock.expectLastCall().andAnswer(new IAnswer() {
- public Object answer() throws Throwable {
- OrderedInitPojoImpl pojo = (OrderedInitPojoImpl) EasyMock.getCurrentArguments()[0];
- pojo.destroy();
- return null;
- }
- });
- EasyMock.replay(component);
- return component;
- }
-
- private class Foo {
-
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeRestartTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeRestartTestCase.java
deleted file mode 100644
index 335d8c621d..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeRestartTestCase.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import java.lang.reflect.Constructor;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.WorkContext;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.component.event.RequestEnd;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
-import org.apache.tuscany.core.injection.MethodEventInvoker;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
-
-/**
- * Verifies the scope container properly disposes resources and canbe restarted
- *
- * @version $$Rev$$ $$Date$$
- */
-public class RequestScopeRestartTestCase extends TestCase {
-
- public void testRestart() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- RequestScopeContainer scope = new RequestScopeContainer(ctx, null);
- scope.start();
- MethodEventInvoker<Object> initInvoker =
- new MethodEventInvoker<Object>(InitDestroyOnce.class.getMethod("init"));
- MethodEventInvoker<Object> destroyInvoker =
- new MethodEventInvoker<Object>(InitDestroyOnce.class.getMethod("destroy"));
- PojoConfiguration configuration = new PojoConfiguration();
- configuration.setInitInvoker(initInvoker);
- configuration.setDestroyInvoker(destroyInvoker);
- Constructor<InitDestroyOnce> ctr = InitDestroyOnce.class.getConstructor((Class<?>[]) null);
- configuration.setInstanceFactory(new PojoObjectFactory<InitDestroyOnce>(ctr));
- configuration.setName("InitDestroy");
- AtomicComponent component = new SystemAtomicComponentImpl(configuration);
- component.setScopeContainer(scope);
- component.start();
-
- Object instance = component.getTargetInstance();
- assertSame(instance, component.getTargetInstance());
-
- scope.onEvent(new RequestEnd(this));
- scope.stop();
- component.stop();
-
- scope.start();
- component.start();
- assertNotSame(instance, component.getTargetInstance());
- scope.onEvent(new RequestEnd(this));
- scope.stop();
- component.stop();
- }
-
- public static class InitDestroyOnce {
-
- private boolean initialized;
- private boolean destroyed;
-
- public InitDestroyOnce() {
- }
-
- public void init() {
- if (!initialized) {
- initialized = true;
- } else {
- fail("Scope did not clean up properly - Init called more than once");
- }
- }
-
- public void destroy() {
- if (!destroyed) {
- destroyed = true;
- } else {
- fail("Scope did not clean up properly - Destroyed called more than once");
- }
- }
-
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ScopeRegistryTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ScopeRegistryTestCase.java
deleted file mode 100644
index e1380eb4c0..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ScopeRegistryTestCase.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.ScopeRegistry;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Scope;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-
-/**
- * Verifies retrieval of standard scope contexts from the default scope registry
- *
- * @version $$Rev$$ $$Date$$
- */
-public class ScopeRegistryTestCase extends TestCase {
- public void testScopeContextCreation() throws Exception {
- WorkContext context = new WorkContextImpl();
- ScopeRegistry scopeRegistry = new ScopeRegistryImpl();
- scopeRegistry.registerFactory(Scope.REQUEST, new RequestScopeObjectFactory(context, null));
- HttpSessionScopeObjectFactory sessionFactory = new HttpSessionScopeObjectFactory(scopeRegistry, context, null);
- scopeRegistry.registerFactory(Scope.SESSION, sessionFactory);
- scopeRegistry.registerFactory(Scope.CONVERSATION,
- new ConversationalScopeObjectFactory(scopeRegistry, context, null, null));
- ScopeContainer request = scopeRegistry.getScopeContainer(Scope.REQUEST);
- assertTrue(request instanceof RequestScopeContainer);
- assertSame(request, scopeRegistry.getScopeContainer(Scope.REQUEST));
- ScopeContainer session = scopeRegistry.getScopeContainer(Scope.SESSION);
- assertTrue(session instanceof HttpSessionScopeContainer);
- assertSame(session, scopeRegistry.getScopeContainer(Scope.SESSION));
- assertNotSame(request, session);
- ScopeContainer conversation = scopeRegistry.getScopeContainer(Scope.CONVERSATION);
- assertTrue(conversation instanceof ConversationalScopeContainer);
- assertSame(conversation, scopeRegistry.getScopeContainer(Scope.CONVERSATION));
- assertNotSame(session, conversation);
- }
-
- public void testDeregisterFactory() throws Exception {
- WorkContext context = new WorkContextImpl();
- ScopeRegistry scopeRegistry = new ScopeRegistryImpl();
- RequestScopeObjectFactory factory = new RequestScopeObjectFactory(context, null);
- scopeRegistry.registerFactory(Scope.REQUEST, factory);
- scopeRegistry.deregisterFactory(Scope.REQUEST);
- assertNull(scopeRegistry.getScopeContainer(Scope.REQUEST));
- ConversationalScopeObjectFactory convFactory =
- new ConversationalScopeObjectFactory(scopeRegistry, context, null, null);
- scopeRegistry.registerFactory(Scope.CONVERSATION, convFactory);
- scopeRegistry.deregisterFactory(Scope.CONVERSATION);
- assertNull(scopeRegistry.getScopeContainer(Scope.CONVERSATION));
- }
-
- public void testScopeNotRegistered() throws Exception {
- WorkContext workContext = new WorkContextImpl();
- ScopeRegistry scopeRegistry = new ScopeRegistryImpl();
- assertNull(scopeRegistry.getScopeContainer(Scope.REQUEST));
- assertNull(scopeRegistry.getScopeContainer(Scope.SESSION));
- assertNull(scopeRegistry.getScopeContainer(Scope.CONVERSATION));
- assertNull(scopeRegistry.getScopeContainer(Scope.STATELESS));
- }
-
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/StatelessScopeContainerTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/StatelessScopeContainerTestCase.java
deleted file mode 100644
index 89cd9b51d7..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/StatelessScopeContainerTestCase.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import junit.framework.TestCase;
-
-/**
- * @version $Rev$ $Date$
- */
-public class StatelessScopeContainerTestCase extends TestCase {
-
- public void testBadStopWithoutStart() throws Exception {
- StatelessScopeContainer container = new StatelessScopeContainer(null, null);
- try {
- container.stop();
- fail();
- } catch (IllegalStateException e) {
- //expected
- }
- }
-
- public void testBadDoubleStart() throws Exception {
- StatelessScopeContainer container = new StatelessScopeContainer(null, null);
- try {
- container.start();
- container.start();
- fail();
- } catch (IllegalStateException e) {
- //expected
- }
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/StatelessScopeObjectFactoryTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/StatelessScopeObjectFactoryTestCase.java
deleted file mode 100644
index 0902b9d78c..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/StatelessScopeObjectFactoryTestCase.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.ScopeRegistry;
-import org.apache.tuscany.spi.model.Scope;
-
-import junit.framework.TestCase;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class StatelessScopeObjectFactoryTestCase extends TestCase {
-
- public void testCreation() {
- ScopeRegistry registry = EasyMock.createMock(ScopeRegistry.class);
- registry.registerFactory(EasyMock.isA(Scope.class), EasyMock.isA(StatelessScopeObjectFactory.class));
- assertNotNull(new StatelessScopeObjectFactory(registry, null, null).getInstance());
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/WorkContextTestCase.java b/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/WorkContextTestCase.java
deleted file mode 100644
index 8a9fdf4ac4..0000000000
--- a/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/WorkContextTestCase.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * 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.core.component.scope;
-
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.WorkContext;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.component.WorkContextImpl;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class WorkContextTestCase extends TestCase {
-
- public void testRemoteComponent() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- CompositeComponent component = EasyMock.createNiceMock(CompositeComponent.class);
- CompositeComponent component2 = EasyMock.createNiceMock(CompositeComponent.class);
- ctx.setRemoteComponent(component);
- assertEquals(component, ctx.getRemoteComponent());
- ctx.setRemoteComponent(component2);
- assertEquals(component2, ctx.getRemoteComponent());
- }
-
- public void testNonSetRemoteComponent() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- assertNull(ctx.getRemoteComponent());
- }
-
- public void testSetCurrentAtomicComponent() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- AtomicComponent component = EasyMock.createNiceMock(AtomicComponent.class);
- AtomicComponent component2 = EasyMock.createNiceMock(AtomicComponent.class);
- ctx.setCurrentAtomicComponent(component);
- assertEquals(component, ctx.getCurrentAtomicComponent());
- ctx.setCurrentAtomicComponent(component2);
- assertEquals(component2, ctx.getCurrentAtomicComponent());
- }
-
- public void testNonSetCurrentAtomicComponent() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- assertNull(ctx.getCurrentAtomicComponent());
- }
-
- public void testIndentifier() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- Object id = new Object();
- ctx.setIdentifier(this, id);
- assertEquals(id, ctx.getIdentifier(this));
- }
-
- public void testClearIndentifier() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- Object id = new Object();
- ctx.setIdentifier(this, id);
- ctx.clearIdentifier(this);
- assertNull(ctx.getIdentifier(this));
- }
-
- public void testClearIndentifiers() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- Object id = new Object();
- Object id2 = new Object();
- ctx.setIdentifier(id, id);
- ctx.setIdentifier(id2, id2);
- ctx.clearIdentifiers();
- assertNull(ctx.getIdentifier(id));
- assertNull(ctx.getIdentifier(id2));
- }
-
- public void testClearNonExistentIndentifier() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- ctx.clearIdentifier(this);
- }
-
- public void testNullIndentifier() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- Object id = new Object();
- ctx.setIdentifier(this, id);
- ctx.clearIdentifier(null);
- assertEquals(id, ctx.getIdentifier(this));
- }
-
- public void testNoIndentifier() throws Exception {
- WorkContext ctx = new WorkContextImpl();
- assertNull(ctx.getIdentifier(this));
- }
-
- public void testSetGetCorrelationId() {
- WorkContext context = new WorkContextImpl();
- context.setCurrentCorrelationId("msg-005");
- assertEquals(context.getCurrentCorrelationId(), "msg-005");
- context.setCurrentCorrelationId(null);
- assertNull(context.getCurrentCorrelationId());
- }
-
- public void testSetGetCorrelationIdInNewThread() throws InterruptedException {
- WorkContext context = new WorkContextImpl();
- context.setCurrentCorrelationId("msg-005");
- assertEquals(context.getCurrentCorrelationId(), "msg-005");
- context.setIdentifier("TX", "002");
- ChildThread t = new ChildThread(context);
- t.start();
- t.join();
- assertTrue(t.passed);
- context.setCurrentCorrelationId(null);
- assertNull(context.getCurrentCorrelationId());
- }
-
- public void testCurrentAtomicComponentDoesNotPropagateToChildThread() throws InterruptedException {
- // NOTE should behaviour be to propagate?
- WorkContext context = new WorkContextImpl();
- context.setCurrentAtomicComponent(EasyMock.createNiceMock(AtomicComponent.class));
- TestCurrentAtomicComponentChildThread t = new TestCurrentAtomicComponentChildThread(context);
- t.start();
- t.join();
- assertTrue(t.passed);
- context.setCurrentAtomicComponent(null);
- assertNull(context.getCurrentAtomicComponent());
- }
-
- public void testCurrentRemoteComponentDoesNotPropagateToChildThread() throws InterruptedException {
- // NOTE should behaviour be to propagate?
- WorkContext context = new WorkContextImpl();
- context.setRemoteComponent(EasyMock.createNiceMock(CompositeComponent.class));
- TestCurrentRemoteComponentChildThread t = new TestCurrentRemoteComponentChildThread(context);
- t.start();
- t.join();
- assertTrue(t.passed);
- context.setRemoteComponent(null);
- assertNull(context.getRemoteComponent());
- }
-
- private static final class ChildThread extends Thread {
- private WorkContext context;
- private boolean passed = true;
-
- private ChildThread(WorkContext context) {
- this.context = context;
- }
-
- @Override
- public void run() {
- try {
- assertNull(context.getCurrentCorrelationId());
- assertEquals("002", context.getIdentifier("TX"));
- } catch (AssertionError e) {
- passed = false;
- }
- }
-
- }
-
- private static final class TestCurrentAtomicComponentChildThread extends Thread {
- private WorkContext context;
- private boolean passed = true;
-
- private TestCurrentAtomicComponentChildThread(WorkContext context) {
- this.context = context;
- }
-
- @Override
- public void run() {
- try {
- assertNull(context.getCurrentAtomicComponent());
- } catch (AssertionError e) {
- passed = false;
- }
- }
-
- }
-
- private static final class TestCurrentRemoteComponentChildThread extends Thread {
- private WorkContext context;
- private boolean passed = true;
-
- private TestCurrentRemoteComponentChildThread(WorkContext context) {
- this.context = context;
- }
-
- @Override
- public void run() {
- try {
- assertNull(context.getRemoteComponent());
- } catch (AssertionError e) {
- passed = false;
- }
- }
-
- }
-
-
-}