summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/jrummikub/control/GameControl.java2
-rw-r--r--src/jrummikub/control/RoundControl.java16
-rw-r--r--test/jrummikub/control/RoundControlTest.java26
3 files changed, 32 insertions, 12 deletions
diff --git a/src/jrummikub/control/GameControl.java b/src/jrummikub/control/GameControl.java
index ac47e2f..1d50bc6 100644
--- a/src/jrummikub/control/GameControl.java
+++ b/src/jrummikub/control/GameControl.java
@@ -63,7 +63,7 @@ public class GameControl {
roundState.setActivePlayerNumber(gameState.getFirstRoundFirstPlayer());
roundControl = new RoundControl(roundState, view);
- roundControl.getEndRoundEvent().add(new IListener() {
+ roundControl.getEndOfRoundEvent().add(new IListener() {
@Override
public void handle() {
diff --git a/src/jrummikub/control/RoundControl.java b/src/jrummikub/control/RoundControl.java
index e10950d..d7a27bb 100644
--- a/src/jrummikub/control/RoundControl.java
+++ b/src/jrummikub/control/RoundControl.java
@@ -26,7 +26,7 @@ public class RoundControl {
private IRoundState roundState;
private IView view;
private ITable clonedTable;
- private Event endRoundEvent = new Event();
+ private Event endOfRoundEvent = new Event();
private List<Connection> connections = new ArrayList<Connection>();
private boolean roundFinished;
@@ -46,10 +46,10 @@ public class RoundControl {
/**
* End the round
*
- * @return endRoundEvent
+ * @return endOfRoundEvent
*/
- public IEvent getEndRoundEvent() {
- return endRoundEvent;
+ public IEvent getEndOfRoundEvent() {
+ return endOfRoundEvent;
}
/**
@@ -134,7 +134,7 @@ public class RoundControl {
} else {
if (roundState.getActivePlayer() == roundState.getLastPlayer()) {
// TODO check who has won
- win();
+ endOfRound();
} else {
roundState.nextPlayer();
}
@@ -171,7 +171,7 @@ public class RoundControl {
} else {
roundState.getActivePlayer().setLaidOut(true);
if (roundState.getActivePlayer().getHand().getSize() == 0) {
- win();
+ endOfRound();
}
}
}
@@ -235,11 +235,11 @@ public class RoundControl {
dealStones(count + 3);
}
- private void win() {
+ private void endOfRound() {
for (Connection c : connections) {
c.remove();
}
- endRoundEvent.emit();
+ endOfRoundEvent.emit();
view.enableWinPanel(true);
roundFinished = true;
}
diff --git a/test/jrummikub/control/RoundControlTest.java b/test/jrummikub/control/RoundControlTest.java
index 2d316d8..e4e8b07 100644
--- a/test/jrummikub/control/RoundControlTest.java
+++ b/test/jrummikub/control/RoundControlTest.java
@@ -32,6 +32,7 @@ import jrummikub.model.RoundState;
import jrummikub.model.Stone;
import jrummikub.model.StoneSet;
import jrummikub.model.Table;
+import jrummikub.util.IListener;
import jrummikub.util.Pair;
import jrummikub.view.MockView;
@@ -50,6 +51,8 @@ public class RoundControlTest {
private GameSettings gameSettings;
private IRoundState roundState;
private RoundControl roundControl;
+
+ private boolean roundEnded;
/**
* For each test create a round control initialized by a mock model and view
@@ -64,6 +67,7 @@ public class RoundControlTest {
testTable = new MockTable();
testTable.sets.add(testRoundState.table.sets.get(0));
testRoundState.table.clonedTable = testTable;
+ roundEnded = false;
gameSettings = new GameSettings();
@@ -566,6 +570,14 @@ public class RoundControlTest {
/** */
@Test
public void testWinning() {
+
+ testRound.getEndOfRoundEvent().add(new IListener() {
+ @Override
+ public void handle() {
+ roundEnded = true;
+ }
+ });
+
testRound.startRound();
MockTable oldTable = testRoundState.table;
testTable.valid = true;
@@ -594,9 +606,10 @@ public class RoundControlTest {
testRoundState.players.get(0).hand = new Hand(gameSettings);
resetTurnStart();
- view.playerPanel.endTurnEvent.emit();
- assertTrue(view.displayWinPanel);
+ assertFalse(roundEnded);
+ view.playerPanel.endTurnEvent.emit();
+ assertTrue(roundEnded);
}
/** */
@@ -687,6 +700,13 @@ public class RoundControlTest {
/** */
@Test
public void heapIsEmpty() {
+ roundControl.getEndOfRoundEvent().add(new IListener() {
+ @Override
+ public void handle() {
+ roundEnded = true;
+ }
+ });
+
roundState.getGameHeap().drawStones(106 - 14 * 4 - 1);
roundControl.startRound();
@@ -702,6 +722,6 @@ public class RoundControlTest {
view.startTurnEvent.emit();
view.playerPanel.endTurnEvent.emit();
}
- assertTrue(view.displayWinPanel);
+ assertTrue(roundEnded);
}
}