package org.scotlandyard.tests.engine.player;
import org.junit.Assert;
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.player.Player;
import org.scotlandyard.impl.engine.GameEngine;
import org.scotlandyard.impl.engine.GameImpl;
import org.scotlandyard.impl.engine.UserImpl;
import org.scotlandyard.impl.engine.boardmap.BoardMapImpl;
import org.scotlandyard.impl.engine.boardmap.CoordinateImpl;
import org.scotlandyard.impl.engine.player.MrX;
/**
* TODO add description
*
* @author Hussain Al-Mutawa
* @version 1.0
* @since Sept 2011
*
*/
public class MrXTest {
private transient Player mrX;
private transient final User creator;
private transient BoardMap boardMap;
private transient Game game;
private transient final static String MAPNAME = "PalmerstonNorth";
//TODO add description here
public MrXTest() throws GameException{
GameEngine.instance().getLobby().removeAllGames();
GameEngine.instance().getUsers().clear();
GameEngine.instance().getBoardMaps().clear();
creator= UserImpl.getNewInstance("player1","player1@game.com");
mrX=new MrX(creator);
}
@Test//TODO add description here
public final void testMrX() {
Assert.assertEquals(mrX.getPosition(game), null);
Assert.assertTrue(mrX.equals(mrX));
}
@Test
public final void testSetPosition() throws GameException{
boardMap = BoardMapImpl.getNewInstance(MAPNAME);
game = GameImpl.getNewInstance("1",creator,boardMap);
final Coordinate coor = new CoordinateImpl(boardMap, 1.1,2.2);
mrX.setPosition(game, coor);
Assert.assertEquals(coor, mrX.getPosition(game));
}
@Test//TODO add description here
public final void testGetPosition()throws GameException{
boardMap = BoardMapImpl.getNewInstance(MAPNAME);
game = GameImpl.getNewInstance("2",creator,boardMap);
final Coordinate coor = new CoordinateImpl(boardMap,3.3,4.4);
mrX.setPosition(game, coor);
Assert.assertEquals(mrX.getPosition(game), coor);
}
@Test//TODO add description here
public final void testMoveMade() throws GameException{
boardMap = BoardMapImpl.getNewInstance(MAPNAME);
game = GameImpl.getNewInstance("3",creator,boardMap);
game.setMrX(mrX);
mrX = game.getMrX();
Assert.assertTrue(mrX.getTurns().isEmpty());
mrX.moveMade(game);
Assert.assertTrue(!mrX.getTurns().isEmpty());
}
@Test//TODO add description here
public final void testGetTurns()throws GameException{
boardMap = BoardMapImpl.getNewInstance(MAPNAME);
game = GameImpl.getNewInstance("4",creator,boardMap);
game.setMrX(mrX);
mrX = game.getMrX();
Assert.assertTrue(mrX.getTurns().isEmpty());
mrX.moveMade(game);
Assert.assertTrue(!mrX.getTurns().isEmpty());
}
}