Package org.scotlandyard.tests.engine.player

Source Code of org.scotlandyard.tests.engine.player.DetectiveTest

package org.scotlandyard.tests.engine.player;


import java.util.HashSet;
import java.util.Set;

import junit.framework.Assert;

import org.junit.Test;
import org.scotlandyard.engine.Game;
import org.scotlandyard.engine.GameException;
import org.scotlandyard.engine.Token;
import org.scotlandyard.engine.User;
import org.scotlandyard.engine.boardmap.BoardMap;
import org.scotlandyard.engine.boardmap.Coordinate;
import org.scotlandyard.engine.boardmap.Link;
import org.scotlandyard.engine.constants.TransportationMethod;
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.boardmap.LinkImpl;
import org.scotlandyard.impl.engine.player.Detective;
/**
* TODO add description
*
* @author Hussain Al-Mutawa
* @version 1.0
* @since Sept 2011
*
*/
public class DetectiveTest {

  private transient final Player detective;
  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 DetectiveTest() throws GameException{
    GameEngine.instance().getLobby().removeAllGames();
    GameEngine.instance().getUsers().clear();
    GameEngine.instance().getBoardMaps().clear();

    creator = UserImpl.getNewInstance("player1", "player1@game.com");
    detective = new Detective(creator);

  }


  @Test//TODO add description here
  public final void testDetective() {
    Assert.assertEquals(detective.getPosition(game), null);
    Assert.assertTrue(detective.equals(detective));
  }

  @Test//TODO add description here
  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);
    detective.setPosition(game, coor);
    Assert.assertEquals(coor, detective.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);
    detective.setPosition(game, coor);
    Assert.assertEquals(detective.getPosition(game), coor);
  }

  @Test//TODO add description here
  public final void testMoveMade() throws GameException {
    boardMap = BoardMapImpl.getNewInstance(MAPNAME);
    game = GameImpl.getNewInstance("3", creator, boardMap);
    Assert.assertTrue(detective.getTurns().isEmpty());
    detective.moveMade(game);
    Assert.assertFalse(detective.getTurns().isEmpty());
  }

  @Test//TODO add description here
  public final void testGetTurns() throws GameException {
    boardMap = BoardMapImpl.getNewInstance(MAPNAME);
    game = GameImpl.getNewInstance("4", creator, boardMap);
    Assert.assertTrue(detective.getTurns().isEmpty());
    detective.moveMade(game);
    Assert.assertFalse(detective.getTurns().isEmpty());
  }


  @Test//TODO add description here
  public final void testMethods() throws GameException {
    boardMap = BoardMapImpl.getNewInstance(MAPNAME);
    game = GameImpl.getNewInstance("2", creator, boardMap);
    final Game game2 = GameImpl.getNewInstance("3", creator, boardMap);
    final Coordinate coor = new CoordinateImpl(boardMap, 1.1, 2.2);
    final Coordinate coor1 = new CoordinateImpl(boardMap, 1.6, 2.6);
    //Token token = new TokenImpl(detective, TransportationMethod.BUS);
    final Link route = new LinkImpl(boardMap, TransportationMethod.BUS, coor, coor1);
    //token.setNumberOfTickets(10);

    detective.setTokens(game, TransportationMethod.BUS, 10);
    final Token token = detective.getTokens(game).get(TransportationMethod.BUS);

    Assert.assertEquals(detective.getNumberOfTickets(game, TransportationMethod.BUS),10);

    detective.setPosition(game, coor);
    detective.useTokenToMove(game, token, route);

    Assert.assertEquals(detective.getNumberOfTickets(game, TransportationMethod.BUS),9);
    Assert.assertEquals(token.getNumberOfTokens(),9);


    detective.useTokenToMove(game, token, route);

    // aren't these conflicting?
//    2Token token = new TokenImpl(detective, TransportationMethod.BUS);
//    token.setNumberOfTickets(10);
//    detective.setTokens(game, TransportationMethod.BUS, 10);

    Assert.assertEquals(detective.toString(),"player1");

    Assert.assertEquals(detective.getNumberOfTickets(game, TransportationMethod.BUS),8);
    Assert.assertEquals(token.getNumberOfTokens(),8);
    Assert.assertTrue(detective.toString().equals("player1"));

    for(int x=8;x>0;x--){
      detective.useTokenToMove(game, token, route);
    }

    try{
      detective.useTokenToMove(game, token, route);
      Assert.assertTrue(false);
    }catch(GameException ex){
      Assert.assertTrue(true);
    }


    Assert.assertEquals(detective.compareTo(detective),0);


    game.addDetective((Detective) detective);
    game2.addDetective((Detective) detective);


    final Set<Game> currentgameslist = new HashSet<Game>();
    currentgameslist.add(game);
    currentgameslist.add(game2);


    Assert.assertEquals(detective.getJoinedGames().size(), currentgameslist.size());



  }


}
TOP

Related Classes of org.scotlandyard.tests.engine.player.DetectiveTest

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.