package org.scotlandyard.tests.engine;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import junit.framework.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.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;
import org.xml.sax.SAXException;
/**
* TODO add description
*
* @author Hussain Al-Mutawa
* @version 1.0
* @since Sept 2011
*
*/
public class PlayerPositionTest {
private transient final Game game;
private transient final Player detective,mrx;
private transient final Coordinate position1,position2;
private transient final PlayerPosition playerPosition1,playerPosition2;
//TODO add description here
public PlayerPositionTest() throws GameException, ParserConfigurationException, SAXException, IOException{
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");
position2=boardMap.getCoordinate("1");
playerPosition1 = new PlayerPositionImpl(game, detective, position1);
playerPosition2 = new PlayerPositionImpl(game, mrx, position2);
}
@Test//TODO add description here
public final void testGetPlayer() {
Assert.assertSame(playerPosition1.getPlayer(),detective);
Assert.assertSame(playerPosition2.getPlayer(),mrx);
}
@Test//TODO add description here
public final void testGetPosition() {
Assert.assertSame(playerPosition1.getPosition(),position1);
Assert.assertSame(playerPosition2.getPosition(),position2);
}
@Test//TODO add description here
public final void testGetGame() {
Assert.assertSame(playerPosition1.getGame(),playerPosition2.getGame());
Assert.assertSame(playerPosition1.getGame(),game);
Assert.assertSame(playerPosition1.getGame(),game);
}
}