@Test public void testManantialesCheckConstriantsRelieved() throws InvalidMoveException, JMSException { ManantialesFicha ficha = new ManantialesFicha(4, 3, alice.getColor(), TokenType.MODERATE_PASTURE); ManantialesFicha ficha2 = new ManantialesFicha(4, 5, bob.getColor(), TokenType.MODERATE_PASTURE); ManantialesFicha ficha3 = new ManantialesFicha(3, 4, charlie.getColor(), TokenType.MODERATE_PASTURE); ManantialesFicha relief = new ManantialesFicha(4, 3, alice.getColor(), TokenType.MANAGED_FOREST); ManantialesFicha retrigger = new ManantialesFicha(4, 3, alice.getColor(), TokenType.MODERATE_PASTURE); ManantialesFicha terminate = new ManantialesFicha(5, 5, denise.getColor(), TokenType.MODERATE_PASTURE); SetIds(ficha, ficha2, ficha3, retrigger, terminate); ManantialesMove move = new ManantialesMove(alice, ficha); move.setMode(game.getMode()); Move mv = game.move(move); assertEquals(MoveStatus.EVALUATED, mv.getStatus()); bob.setTurn(true); move = new ManantialesMove(bob, ficha2); mv = game.move(move); assertEquals(MoveStatus.EVALUATED, mv.getStatus()); charlie.setTurn(true); move = new ManantialesMove(charlie, ficha3); mv = game.move(move); assertEquals(MoveStatus.EVALUATED, mv.getStatus()); List filtered = filterForEvent(GameEvent.CONDITION_RAISED); assertTrue(filtered.size() == 1); alice.setTurn(true); move = new ManantialesMove(alice, ficha, relief); game.move(move); filtered = filterForEvent(GameEvent.CONDITION_RESOLVED); assertTrue("Actual size of filtered (expected 1): " + filtered.size(), filtered.size() == 1); filtered = filterForEvent(GameEvent.CONDITION_TRIGGERED); assertTrue(filtered.size() == 0); /* retrigger condition */ alice.setTurn(true); move = new ManantialesMove(alice, relief, retrigger); game.move(move); filtered = filterForEvent(GameEvent.CONDITION_RAISED); assertTrue("filter size is: " + filtered.size(), filtered.size() == 2); /* allow condition to terminate game, i.e., TRIGGER */ denise.setTurn(true); move = new ManantialesMove(denise, terminate); game.move(move); filtered = filterForEvent(GameEvent.CONDITION_TRIGGERED); assertTrue(filtered.size() == 1); assertTrue(game.getState().equals(GameState.ENDED)); }
@Test public void testRelieveEastCheckConstraintsWithActiveManantialesConstraint() throws InvalidMoveException, JMSException { /* Northern Constraint */ ManantialesFicha nFicha = new ManantialesFicha(4, 3, alice.getColor(), TokenType.MODERATE_PASTURE); ManantialesFicha nFicha2 = new ManantialesFicha(4, 1, charlie.getColor(), TokenType.MODERATE_PASTURE); ManantialesFicha nFicha3 = new ManantialesFicha(4, 2, charlie.getColor(), TokenType.MODERATE_PASTURE); /* Manantials Constraint */ ManantialesFicha mFicha = new ManantialesFicha(4, 5, bob.getColor(), TokenType.MODERATE_PASTURE); /* Trigger */ ManantialesFicha mFicha2 = new ManantialesFicha(3, 4, charlie.getColor(), TokenType.MODERATE_PASTURE); SetIds(nFicha, nFicha2, nFicha3, mFicha, mFicha2); move(nFicha, nFicha2, nFicha3, mFicha2); List<Message> messages = filterForEvent(GameEvent.CONDITION_RAISED); assertEquals(1, messages.size()); /* Trigger Manantiales condition */ stripTurns(); bob.setTurn(true); ManantialesMove move = new ManantialesMove(bob, mFicha); assertTrue(move.isManantial()); game.move(move); assertEquals(MoveStatus.EVALUATED, move.getStatus()); messages = filterForEvent(GameEvent.CONDITION_TRIGGERED); assertEquals(1, messages.size()); messages = filterForEvent(GameEvent.CONDITION_RAISED); assertEquals(2, messages.size()); /* Check that expired Northern border constraint resolved Manantiales condition */ messages = filterForEvent(GameEvent.CONDITION_RESOLVED); assertEquals(1, messages.size()); }
@Test public void testSouthCheckConstraints() throws InvalidMoveException { ManantialesFicha ficha = new ManantialesFicha(4, 6, alice.getColor(), TokenType.MODERATE_PASTURE); ManantialesFicha ficha2 = new ManantialesFicha(4, 7, bob.getColor(), TokenType.MODERATE_PASTURE); ManantialesFicha ficha3 = new ManantialesFicha(4, 8, charlie.getColor(), TokenType.MODERATE_PASTURE); SetIds(ficha, ficha2, ficha3); ManantialesMove move = new ManantialesMove(alice, ficha); Move mv = game.move(move); assertEquals(MoveStatus.EVALUATED, mv.getStatus()); bob.setTurn(true); move = new ManantialesMove(bob, ficha2); mv = game.move(move); assertEquals(MoveStatus.EVALUATED, mv.getStatus()); charlie.setTurn(true); move = new ManantialesMove(charlie, ficha3); mv = game.move(move); assertEquals(MoveStatus.EVALUATED, mv.getStatus()); assertTrue("CheckConstraint not fired!", game.getCheckConditions() != null); assertEquals(1, game.getCheckConditions().size()); }