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:
parent
2d198820a9
commit
ffeefad257
4 changed files with 59 additions and 0 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -320,6 +320,7 @@ class PlayerPanel extends JPanel implements IPlayerPanel {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEndTurnMode(boolean inspectOnly, boolean mayRedeal) {
|
||||
if (!inspectOnly) {
|
||||
endTurnButton.setText("Zug beenden");
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue