Package org.scotlandyard.tests.engine

Source Code of org.scotlandyard.tests.engine.GameSetPlayerPositionTest

package org.scotlandyard.tests.engine;

import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;
import org.scotlandyard.engine.Game;
import org.scotlandyard.engine.GameException;
import org.scotlandyard.engine.User;
import org.scotlandyard.engine.boardmap.BoardMap;
import org.scotlandyard.engine.boardmap.Coordinate;
import org.scotlandyard.engine.constants.GameStatus;
import org.scotlandyard.engine.player.Player;
import org.scotlandyard.engine.player.PlayerPosition;
import org.scotlandyard.impl.engine.GameEngine;
import org.scotlandyard.impl.engine.GameImpl;
import org.scotlandyard.impl.engine.PlayerPositionImpl;
import org.scotlandyard.impl.engine.UserImpl;
import org.scotlandyard.impl.engine.boardmap.BoardMapImpl;
import org.scotlandyard.impl.engine.player.Detective;
import org.scotlandyard.impl.engine.player.MrX;

/**
* TODO add description
*
* @author Hussain Al-Mutawa
* @version 1.0
* @since Sept 2011
*
*/
public class GameSetPlayerPositionTest {

  private transient Game game;
  private transient Player detective,mrx;
  private transient Coordinate position1;

  @Before//TODO add description here
  public void setUp() throws Exception {
    GameEngine.instance().clearRecords();
    final User user1=UserImpl.getNewInstance("hussain", "hussain.mutawa");
    final User user2=UserImpl.getNewInstance("ali", "ali.mutawa");
    final BoardMap boardMap = BoardMapImpl.getNewInstance("pnth");
    boardMap.prepareMap("web/maps/pnth.xml");
    game = GameImpl.getNewInstance("game1", user1, boardMap);
    mrx=MrX.getNewInstance(game, user1);
    detective=Detective.getNewInstance(game,user2);
    game.setGameStatus(GameStatus.STARTED);
    position1=boardMap.getCoordinate("0");
  }

  @Test//TODO add description here
  public final void testNewPlayerPosition()throws GameException{
    int counter=0;
    final Object[][] objects = {
                {null,null},
                {null,position1},
                {mrx,null}
               };
    for(int i=0;i<objects.length;i++){
      try{
        final Player player     = (Player)    objects[i][0];
        final Coordinate coor = (Coordinateobjects[i][1];

        game.setPlayerPosition(new PlayerPositionImpl(game, player, coor)); // this must throw an exception
        counter--;// should not reach here
      }catch(GameException ex){
        counter++;
      }
    }

    Assert.assertEquals(counter, 3);

    game.setGameStatus(GameStatus.JUST_CREATED);

    final PlayerPosition playerPosition1 = new PlayerPositionImpl(game, detective, position1);

    game.setPlayerPosition( playerPosition1 );

    try{
      //this should throw an exception since it places a player
      //at the same position as another one is already there
      game.setPlayerPosition( new PlayerPositionImpl(game, mrx, position1));
      counter--;
    }catch(GameException ex){
      counter++;
    }

    Assert.assertEquals(counter, 4);


  }
}
TOP

Related Classes of org.scotlandyard.tests.engine.GameSetPlayerPositionTest

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.