Added round control tests for checking whether redealing is allowed

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@289 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Jannis Harder 2011-05-27 18:55:17 +02:00
parent 2d198820a9
commit ffeefad257
4 changed files with 59 additions and 0 deletions

View file

@ -15,6 +15,10 @@ public class MockPlayerPanel implements IPlayerPanel {
public MockEvent sortByGroupsEvent = new MockEvent();
/** */
public MockEvent sortByRunsEvent = new MockEvent();
/** */
public boolean inspectOnly;
/** */
public boolean mayRedeal;
@Override
public void setTimeLeft(int time) {
@ -42,4 +46,9 @@ public class MockPlayerPanel implements IPlayerPanel {
return redealEvent;
}
public void setEndTurnMode(boolean inspectOnly, boolean mayRedeal) {
this.inspectOnly = inspectOnly;
this.mayRedeal = mayRedeal;
}
}

View file

@ -43,4 +43,15 @@ public interface IPlayerPanel {
* @return the event
*/
public IEvent getRedealEvent();
/**
* Sets the buttons available to end the turn
*
* @param inspectOnly
* true for each player's first turn
* @param mayRedeal
* true if the player is allowed to trigger a redealing of all
* stones
*/
public abstract void setEndTurnMode(boolean inspectOnly, boolean mayRedeal);
}

View file

@ -320,6 +320,7 @@ class PlayerPanel extends JPanel implements IPlayerPanel {
}
}
@Override
public void setEndTurnMode(boolean inspectOnly, boolean mayRedeal) {
if (!inspectOnly) {
endTurnButton.setText("Zug beenden");

View file

@ -905,4 +905,42 @@ public class RoundControlTest {
view.playerPanel.redealEvent.emit();
assertTrue(roundRestarted);
}
/** */
@Test
public void testRedealDisallowed() {
testRound.startRound();
Hand hand = new Hand(gameSettings);
hand.drop(new Stone(1, RED), new Position(0, 0));
hand.drop(new Stone(1, BLACK), new Position(0, 0));
hand.drop(new Stone(1, BLUE), new Position(0, 0));
testRoundState.players.get(0).hand = hand;
view.startTurnEvent.emit();
assertTrue(view.playerPanel.inspectOnly);
assertFalse(view.playerPanel.mayRedeal);
for (int i = 0; i < 4; i++) {
view.playerPanel.endTurnEvent.emit();
view.startTurnEvent.emit();
}
assertFalse(view.playerPanel.inspectOnly);
}
/** */
@Test
public void testRedealAllowed() {
testRound.startRound();
Hand hand = new Hand(gameSettings);
for (int i = 0; i < 6; i++) {
hand.drop(new Stone(i / 2, RED), new Position(0, 0));
}
testRoundState.players.get(0).hand = hand;
view.startTurnEvent.emit();
assertTrue(view.playerPanel.inspectOnly);
assertTrue(view.playerPanel.mayRedeal);
for (int i = 0; i < 4; i++) {
view.playerPanel.endTurnEvent.emit();
view.startTurnEvent.emit();
}
assertFalse(view.playerPanel.inspectOnly);
}
}