@Before public void init() throws IOException { ScrabbleSystem.getInstance().destorySystem(); Board.getInstance().destroyBoard(); Bag.getInstance().resetTileBag(); scrabbleSystem = ScrabbleSystem.getInstance(); board = Board.getInstance(); factory = new SpecialTileFactory(); testFactory = new TestFactory(); dict = new Dict(); // first player's move moveList1 = testFactory.produceMoveList1(); SpecialTile negativePoints = factory.produce(SpecialTileType.NEGATIVE_POINTS); SpecialMove specialMove1 = new SpecialMove(position5, negativePoints); specialMoveList1 = new ArrayList<>(); specialMoveList1.add(specialMove1); // second player's move moveList2 = testFactory.produceMoveList2(); specialMoveList2 = new ArrayList<>(); // initialize game and start ArrayList<String> playerNameList = new ArrayList<>(); playerNameList.add("Bob"); playerNameList.add("Lucy"); scrabbleSystem.startGame(playerNameList); }
@Test public void testNegativePoints() { // first player's move scrabbleSystem.isValid(moveList1, specialMoveList1); scrabbleSystem.move(moveList1, specialMoveList1); // second player's move, it will trigger special tile scrabbleSystem.nextPlayer(); scrabbleSystem.getCurrentPlayer().setPlayerPoints(50); scrabbleSystem.isValid(moveList2, specialMoveList2); scrabbleSystem.move(moveList2, specialMoveList2); /* * the points should be (50 - 9) = 41, since the word points are set to * negative */ assertEquals(41, scrabbleSystem.getCurrentPlayer().getPlayerPoints()); }