blob: 65e3a5e6e26140f2efffc83c7a824f624af18710 [file] [log] [blame]
/****************************************************************************
* 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.datashare;
import java.util.Hashtable;
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.datashare.IChannel;
import org.eclipse.ecf.datashare.IChannelContainerAdapter;
import org.eclipse.ecf.datashare.IChannelListener;
import org.eclipse.ecf.datashare.events.IChannelEvent;
import org.eclipse.ecf.datashare.events.IChannelMessageEvent;
import org.eclipse.ecf.tests.ContainerAbstractTestCase;
public class ChannelTest extends ContainerAbstractTestCase {
/**
*
*/
private static final String CHANNEL_NAME = "channel";
private static final String CHANNEL_NAME_1 = "channel1";
protected Hashtable messageEvents = new Hashtable();
/*
* (non-Javadoc)
*
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
setClientCount(5);
createServerAndClients();
addChannelToClients();
connectClients();
}
/**
*
*/
protected void addChannelToClients() throws Exception {
for (int i = 0; i < clientCount; i++) {
final IChannelContainerAdapter channelContainer = getChannelContainer(i);
channelContainer.createChannel(getNewID(CHANNEL_NAME), getIChannelListener(getContainerID(i)), null);
}
}
protected void clearClientEvents() {
messageEvents.clear();
}
/*
* (non-Javadoc)
*
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
cleanUpServerAndClients();
super.tearDown();
clearClientEvents();
}
protected ID getContainerID(int clientIndex) {
return getClients()[clientIndex].getID();
}
protected IChannelContainerAdapter getChannelContainer(int clientIndex) {
return (IChannelContainerAdapter) getClients()[clientIndex].getAdapter(IChannelContainerAdapter.class);
}
public void testGetChannelContainerAdapter() throws Exception {
final IChannelContainerAdapter channelContainer = getChannelContainer(0);
assertNotNull(channelContainer);
}
public void testCreateChannel() throws Exception {
final IChannelContainerAdapter channelContainer = getChannelContainer(0);
final IChannel channel = channelContainer.createChannel(getNewID(CHANNEL_NAME_1), getIChannelListener(getContainerID(0)), null);
assertNotNull(channel);
assertNotNull(channel.getID());
assertNotNull(channel.getListener());
}
public void testGetChannelFromContainer() throws Exception {
final IChannelContainerAdapter channelContainer = getChannelContainer(0);
channelContainer.createChannel(getNewID(CHANNEL_NAME_1), getIChannelListener(getContainerID(0)), null);
assertNotNull(channelContainer.getChannel(getNewID(CHANNEL_NAME_1)));
}
public void testGetChannelNamespace() throws Exception {
final IChannelContainerAdapter channelContainer = getChannelContainer(0);
assertNotNull(channelContainer.getChannelNamespace());
}
public void testSender() throws Exception {
final IChannelContainerAdapter senderContainer = getChannelContainer(0);
final IChannel sender = senderContainer.getChannel(getNewID(CHANNEL_NAME));
assertNotNull(sender);
sender.sendMessage(new String("hello").getBytes());
sleep(3000);
for (int i = 1; i < getClientCount(); i++) {
assertNotNull(messageEvents.get(getContainerID(i)));
}
}
/**
* @return
*/
protected IChannelListener getIChannelListener(final ID id) throws Exception {
return new IChannelListener() {
public void handleChannelEvent(IChannelEvent event) {
if (event instanceof IChannelMessageEvent) {
//IChannelMessageEvent cme = (IChannelMessageEvent) event;
messageEvents.put(id, event);
}
}
};
}
/**
* @return
*/
private ID getNewID(String id) throws IDCreateException {
return IDFactory.getDefault().createStringID(id);
}
}