Package org.eclipse.ecf.tests.presence

Source Code of org.eclipse.ecf.tests.presence.AbstractChatRoomInvitationTest

/****************************************************************************
* 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.presence;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.presence.chatroom.IChatRoomContainer;
import org.eclipse.ecf.presence.chatroom.IChatRoomInfo;
import org.eclipse.ecf.presence.chatroom.IChatRoomInvitationListener;
import org.eclipse.ecf.presence.chatroom.IChatRoomInvitationSender;
import org.eclipse.ecf.presence.chatroom.IChatRoomManager;

/**
*
*/
public abstract class AbstractChatRoomInvitationTest extends AbstractPresenceTestCase {

  IChatRoomManager chat0, chat1 = null;
  public static final int WAITTIME = 20000;
  public static final String CHAT_ROOM_NAME = System.getProperty("chat.room.name");

  List invitationsReceived = new ArrayList();

  Object synchObject = new Object();

  IChatRoomInvitationListener invitationListener = new IChatRoomInvitationListener() {
    public void handleInvitationReceived(ID roomID, ID from, String subject, String body) {
      System.out.println("handleInvitationReceived(" + roomID + "," + from + "," + subject + "," + body + ")");
      invitationsReceived.add(roomID);
      synchronized (synchObject) {
        synchObject.notify();
      }
    }
  };

  /*
   * (non-Javadoc)
   *
   * @see org.eclipse.ecf.tests.presence.AbstractPresenceTestCase#setUp()
   */
  protected void setUp() throws Exception {
    super.setUp();
    setClientCount(2);
    clients = createClients();
    chat0 = getPresenceAdapter(0).getChatRoomManager();
    chat1 = getPresenceAdapter(1).getChatRoomManager();
    chat1.addInvitationListener(invitationListener);
    for (int i = 0; i < 2; i++) {
      connectClient(i);
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see junit.framework.TestCase#tearDown()
   */
  protected void tearDown() throws Exception {
    invitationsReceived.clear();
    disconnectClients();
  }

  public void testSendInvitation() throws Exception {
    final IChatRoomInvitationSender invitationSender = chat0.getInvitationSender();
    assertNotNull(invitationSender);
    final IChatRoomInfo roomInfo = chat0.getChatRoomInfo(CHAT_ROOM_NAME);
    if (roomInfo == null) return;
    final IChatRoomContainer chatRoomContainer = roomInfo.createChatRoomContainer();
    chatRoomContainer.connect(roomInfo.getRoomID(), null);
    invitationSender.sendInvitation(roomInfo.getRoomID(), getClient(1).getConnectedID(), null, "this is an invitation");
    try {
      synchronized (synchObject) {
        synchObject.wait(WAITTIME);
      }
    } catch (final Exception e) {
      throw e;
    }
    assertHasEvent(invitationsReceived, ID.class);
  }

}
TOP

Related Classes of org.eclipse.ecf.tests.presence.AbstractChatRoomInvitationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.