| /**************************************************************************** |
| * Copyright (c) 2004 Composent, Inc. and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Composent, Inc. - initial API and implementation |
| *****************************************************************************/ |
| |
| package org.eclipse.ecf.tests.core; |
| |
| import org.eclipse.ecf.core.AbstractContainer; |
| import org.eclipse.ecf.core.ContainerConnectException; |
| import org.eclipse.ecf.core.ContainerCreateException; |
| import org.eclipse.ecf.core.ContainerTypeDescription; |
| import org.eclipse.ecf.core.IContainer; |
| import org.eclipse.ecf.core.IContainerManager; |
| import org.eclipse.ecf.core.IContainerManagerListener; |
| import org.eclipse.ecf.core.identity.ID; |
| import org.eclipse.ecf.core.identity.IDCreateException; |
| import org.eclipse.ecf.core.identity.IDFactory; |
| import org.eclipse.ecf.core.identity.Namespace; |
| import org.eclipse.ecf.core.provider.IContainerInstantiator; |
| import org.eclipse.ecf.core.security.IConnectContext; |
| import org.eclipse.ecf.internal.tests.core.Activator; |
| |
| public class ContainerManagerServiceTest extends |
| ContainerFactoryServiceAbstractTestCase { |
| |
| protected static final String CONTAINER_TYPE_NAME = ContainerManagerServiceTest.class |
| .getName(); |
| |
| private IContainerManager containerManager = null; |
| |
| private IContainerManagerListener containerManagerListener = new IContainerManagerListener() { |
| |
| public void containerAdded(IContainer container) { |
| System.out.println("containerAdded(" + container + ")"); |
| } |
| |
| public void containerRemoved(IContainer container) { |
| System.out.println("containerRemoved(" + container + ")"); |
| } |
| }; |
| |
| protected IContainer[] createContainers(int length) throws Exception { |
| IContainer[] result = new IContainer[length]; |
| for (int i = 0; i < length; i++) { |
| result[i] = Activator.getDefault().getContainerFactory() |
| .createContainer(); |
| } |
| return result; |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.ecf.tests.core.ContainerFactoryAbstractTestCase#setUp() |
| */ |
| protected void setUp() throws Exception { |
| super.setUp(); |
| getFixture().addDescription(createContainerTypeDescription()); |
| containerManager = Activator.getDefault().getContainerManager(); |
| containerManager.addListener(containerManagerListener); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * org.eclipse.ecf.tests.core.ContainerFactoryAbstractTestCase#tearDown() |
| */ |
| protected void tearDown() throws Exception { |
| getFixture().removeDescription(createContainerTypeDescription()); |
| containerManager.removeListener(containerManagerListener); |
| containerManager = null; |
| super.tearDown(); |
| } |
| |
| protected ContainerTypeDescription createContainerTypeDescription() { |
| return new ContainerTypeDescription(CONTAINER_TYPE_NAME, |
| new IContainerInstantiator() { |
| public IContainer createInstance( |
| ContainerTypeDescription description, |
| Object[] parameters) |
| throws ContainerCreateException { |
| return new AbstractContainer() { |
| |
| protected ID id = null; |
| |
| public void connect(ID targetID, |
| IConnectContext connectContext) |
| throws ContainerConnectException { |
| } |
| |
| public void disconnect() { |
| } |
| |
| public Namespace getConnectNamespace() { |
| return null; |
| } |
| |
| public ID getConnectedID() { |
| return null; |
| } |
| |
| public ID getID() { |
| if (id == null) { |
| try { |
| id = IDFactory.getDefault() |
| .createGUID(); |
| } catch (IDCreateException e) { |
| // TODO Auto-generated catch block |
| e.printStackTrace(); |
| } |
| } |
| return id; |
| } |
| |
| }; |
| } |
| |
| public String[] getSupportedAdapterTypes( |
| ContainerTypeDescription description) { |
| return new String[] { "one" }; |
| } |
| |
| public Class[][] getSupportedParameterTypes( |
| ContainerTypeDescription description) { |
| return new Class[][] { { String.class, Class.class } }; |
| } |
| |
| public String[] getSupportedIntents( |
| ContainerTypeDescription description) { |
| return null; |
| } |
| }, DESCRIPTION); |
| } |
| |
| public void testGetContainerManager() throws Exception { |
| assertNotNull(containerManager); |
| } |
| |
| public void testGetContainersOne() throws Exception { |
| IContainer[] c = createContainers(1); |
| assertNotNull(c); |
| IContainer[] containers = containerManager.getAllContainers(); |
| assertNotNull(containers); |
| // assertTrue(containers.length == 1); |
| } |
| |
| public void testGetContainerOne() throws Exception { |
| IContainer[] c = createContainers(1); |
| assertNotNull(c); |
| IContainer container = containerManager.getContainer(c[0].getID()); |
| assertNotNull(container); |
| assertTrue(container.getID().equals(c[0].getID())); |
| } |
| |
| public void testGetContainerN() throws Exception { |
| IContainer[] c = createContainers(10); |
| assertNotNull(c); |
| for (int i = 0; i < 10; i++) { |
| IContainer container = containerManager.getContainer(c[i].getID()); |
| assertNotNull(container); |
| assertTrue(container.getID().equals(c[i].getID())); |
| } |
| } |
| |
| public void testHasContainerN() throws Exception { |
| IContainer[] c = createContainers(10); |
| assertNotNull(c); |
| for (int i = 0; i < 10; i++) { |
| assertTrue(containerManager.hasContainer(c[i].getID())); |
| } |
| } |
| |
| public void testGetContainerDescriptionN() throws Exception { |
| IContainer[] c = createContainers(10); |
| assertNotNull(c); |
| for (int i = 0; i < 10; i++) { |
| ContainerTypeDescription description = containerManager |
| .getContainerTypeDescription(c[i].getID()); |
| assertNotNull(description); |
| } |
| } |
| |
| public void testClearContainers() throws Exception { |
| IContainer[] c = createContainers(10); |
| assertNotNull(c); |
| containerManager.removeAllContainers(); |
| IContainer[] cs = containerManager.getAllContainers(); |
| assertTrue(cs != null); |
| assertTrue(cs.length == 0); |
| } |
| |
| } |