Package org.groovymud.object.registry

Source Code of org.groovymud.object.registry.RegistryTest

package org.groovymud.object.registry;

import java.util.HashSet;

import junit.framework.TestCase;

import org.easymock.MockControl;
import org.easymock.classextension.MockClassControl;
import org.groovymud.engine.event.IScopedEvent;
import org.groovymud.engine.event.action.DestroyEvent;
import org.groovymud.engine.event.action.SaveEvent;
import org.groovymud.engine.event.messages.MessageEvent;
import org.groovymud.engine.event.observer.IObservable;
import org.groovymud.engine.event.observer.Observable;
import org.groovymud.engine.event.system.MovementEvent;
import org.groovymud.object.MudObject;
import org.groovymud.object.ObjectLocation;
import org.groovymud.object.alive.Player;
import org.groovymud.object.room.Room;
import org.groovymud.shell.telnetd.LoginShell;

public class RegistryTest extends TestCase {

  /*
   * Test method for
   * 'org.groovymud.object.registry.Registry.addRoom(BaseRoom)'
   */
  public void testAddRoom() {
    MockControl mockCtrl = MockControl.createNiceControl(Room.class);
    final Room mockRoom = (Room) mockCtrl.getMock();
    MockControl obsCtrl = MockClassControl.createControl(Observable.class);
    final Observable obs = (Observable) obsCtrl.getMock();

    MockControl invCtrl = MockClassControl.createControl(InventoryHandler.class);
    final InventoryHandler inv = (InventoryHandler) invCtrl.getMock();

    Registry reg = new Registry(null) {

      @Override
      public void addMudObject(MudObject object) {
        // TODO Auto-generated method stub
        assertSame(mockRoom, object);
      }

      @Override
      public InventoryHandler getInventoryHandler() {
        // TODO Auto-generated method stub
        return inv;
      }

    };
    mockRoom.getContainerLocation();
    ObjectLocation loc = new ObjectLocation();
    loc.setDefinition("tomb/tomb1.groovy");
    loc.setBeanId("id");
    mockCtrl.setDefaultReturnValue(loc);
    mockRoom.setCurrentContainer(reg);
    mockCtrl.setDefaultVoidCallable();
    mockCtrl.replay();
    inv.addMudObject("id", mockRoom);
    invCtrl.setDefaultVoidCallable();
    invCtrl.replay();

    obs.addObserver(reg);
    obsCtrl.setDefaultVoidCallable();
    obsCtrl.replay();

    reg.addMudObject(loc.getBeanId(), mockRoom);

    mockCtrl.verify();
    invCtrl.verify();
    obsCtrl.verify();
  }

  /*
   * Test method for
   * 'org.groovymud.object.registry.Registry.addActivePlayer(Player,
   * MudShell)'
   */
  boolean addActivePlayerCalled;
  boolean addItemCalled;

  public void testAddActivePlayer() {
    MockControl mockctrl = MockClassControl.createControl(InventoryHandler.class);
    final Player p = (Player) playerCtrl.getMock();
    final LoginShell mudShell = new LoginShell();
    Registry reg = new Registry(null) {

      @Override
      public void addActivePlayerHandle(LoginShell shell, Player player) {
        // TODO Auto-generated method stub
        assertEquals(p, player);
        assertEquals(mudShell, shell);
        addActivePlayerCalled = true;
      }

    };

    reg.addActivePlayer(mudShell, p);
    assertTrue(addActivePlayerCalled);
  }

  /*
   * Test method for
   * 'org.groovymud.object.registry.Registry.removeaActivePlayer(MudShell)'
   */
  public void testNotifyContents() {
    final HashSet items = new HashSet();
    Player item = (Player) playerCtrl.getMock();

    items.add(item);

    Registry reg = new Registry(null) {

      @Override
      public HashSet<MudObject> getMudObjects() {
        // TODO Auto-generated method stub
        return items;
      }
    };
    handler = (IObservable) item;
    event = new MessageEvent();
    item.update(item, event);
    playerCtrl.setVoidCallable(1);
    playerCtrl.replay();
    reg.notifyContents((IObservable) item, event);
    playerCtrl.verify();
  }

  IObservable handler = null;
  IScopedEvent event = null;
  int updateCnt = 0;
  MockControl playerCtrl = MockControl.createControl(Player.class);;

  boolean methodCalled;

  public void testDoUpdate() {
    final MessageEvent mE = new MessageEvent();
    final MovementEvent moveEvent = new MovementEvent(null, null, null, null);
    final DestroyEvent dE = new DestroyEvent();
    final SaveEvent sE = new SaveEvent();

    Registry reg = new Registry(null) {

      @Override
      public void update(IObservable object, IScopedEvent arg) {
        methodCalled = false;
        super.update(object, arg);
      }

      @Override
      protected void notifyAll(IScopedEvent arg) {
        // TODO Auto-generated method stub
        methodCalled = true;
        assertEquals(mE, arg);
      }

      @Override
      protected synchronized void doMovementEvent(IScopedEvent arg) {
        // TODO Auto-generated method stub
        methodCalled = true;
        assertEquals(moveEvent, arg);
      }

      @Override
      protected void doDestroyEvent(IScopedEvent arg) {
        // TODO Auto-generated method stub
        methodCalled = true;
        assertEquals(dE, arg);
      }

      @Override
      protected void doSaveEvent(IScopedEvent arg) {
        // TODO Auto-generated method stub
        methodCalled = true;
        assertEquals(sE, arg);
      }
    };
    IObservable p = (IObservable) playerCtrl.getMock();

    reg.update(p, mE);
    assertTrue(methodCalled);
    reg.update(p, moveEvent);
    assertTrue(methodCalled);
    reg.update(p, dE);
    assertTrue(methodCalled);
    reg.update(p, sE);
    assertTrue(methodCalled);
  }

}
TOP

Related Classes of org.groovymud.object.registry.RegistryTest

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.