Renamed win() and fixed end of round tests
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@267 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
8c3c66f361
commit
81ca3e174a
3 changed files with 32 additions and 12 deletions
|
@ -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() {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue