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 sortByGroupsEvent = new MockEvent();
|
||||||
/** */
|
/** */
|
||||||
public MockEvent sortByRunsEvent = new MockEvent();
|
public MockEvent sortByRunsEvent = new MockEvent();
|
||||||
|
/** */
|
||||||
|
public boolean inspectOnly;
|
||||||
|
/** */
|
||||||
|
public boolean mayRedeal;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setTimeLeft(int time) {
|
public void setTimeLeft(int time) {
|
||||||
|
@ -42,4 +46,9 @@ public class MockPlayerPanel implements IPlayerPanel {
|
||||||
return redealEvent;
|
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
|
* @return the event
|
||||||
*/
|
*/
|
||||||
public IEvent getRedealEvent();
|
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) {
|
public void setEndTurnMode(boolean inspectOnly, boolean mayRedeal) {
|
||||||
if (!inspectOnly) {
|
if (!inspectOnly) {
|
||||||
endTurnButton.setText("Zug beenden");
|
endTurnButton.setText("Zug beenden");
|
||||||
|
|
|
@ -905,4 +905,42 @@ public class RoundControlTest {
|
||||||
view.playerPanel.redealEvent.emit();
|
view.playerPanel.redealEvent.emit();
|
||||||
assertTrue(roundRestarted);
|
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