diff options
Diffstat (limited to 'sandbox/rfeng/minicore/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInitDestroyErrorTestCase.java')
-rw-r--r-- | sandbox/rfeng/minicore/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInitDestroyErrorTestCase.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/sandbox/rfeng/minicore/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInitDestroyErrorTestCase.java b/sandbox/rfeng/minicore/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInitDestroyErrorTestCase.java new file mode 100644 index 0000000000..01c426e917 --- /dev/null +++ b/sandbox/rfeng/minicore/src/test/java/org/apache/tuscany/core/component/scope/CompositeScopeInitDestroyErrorTestCase.java @@ -0,0 +1,93 @@ +/* + * 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.net.URI; + +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 org.apache.tuscany.spi.component.InstanceWrapper; +import org.apache.tuscany.spi.component.TargetResolutionException; +import org.apache.tuscany.spi.component.GroupInitializationException; + +import junit.framework.TestCase; +import org.apache.tuscany.core.component.event.ComponentStart; +import org.apache.tuscany.core.component.event.ComponentStop; +import org.easymock.EasyMock; + +/** + * @version $Rev$ $Date$ + */ +public class CompositeScopeInitDestroyErrorTestCase extends TestCase { + private URI groupId; + + public void testInitializeError() throws Exception { + CompositeScopeContainer scope = new CompositeScopeContainer(null); + scope.start(); + + ObjectCreationException ex = new ObjectCreationException(""); + AtomicComponent component = EasyMock.createMock(AtomicComponent.class); + EasyMock.expect(component.createInstanceWrapper()).andThrow(ex); + EasyMock.expect(component.isEagerInit()).andStubReturn(true); + EasyMock.expect(component.getInitLevel()).andStubReturn(1); + EasyMock.replay(component); + scope.register(component, groupId); + try { + scope.startContext(groupId, groupId); + } catch (GroupInitializationException e) { + assertSame(ex, e.getCauses().get(0)); + } + EasyMock.verify(component); + } + + public void testDestroyErrorMonitor() throws Exception { + InstanceWrapper wrapper = EasyMock.createMock(InstanceWrapper.class); + wrapper.start(); + wrapper.stop(); + EasyMock.expectLastCall().andThrow(new TargetDestructionException("", "")); + EasyMock.replay(wrapper); + + 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.createInstanceWrapper()).andReturn(wrapper); + EasyMock.expect(component.isEagerInit()).andStubReturn(true); + EasyMock.expect(component.getInitLevel()).andStubReturn(1); + EasyMock.replay(component); + scope.register(component, groupId); + scope.startContext(groupId, groupId); + scope.stopContext(groupId); + EasyMock.verify(monitor); + EasyMock.verify(component); + EasyMock.verify(wrapper); + } + + + protected void setUp() throws Exception { + super.setUp(); + groupId = URI.create("composite"); + } +} |