diff options
-rw-r--r-- | mock/jrummikub/model/MockTable.java | 4 | ||||
-rw-r--r-- | test/jrummikub/control/RoundControlTest.java | 2 | ||||
-rw-r--r-- | test/jrummikub/control/turn/TurnControlTest.java | 42 |
3 files changed, 32 insertions, 16 deletions
diff --git a/mock/jrummikub/model/MockTable.java b/mock/jrummikub/model/MockTable.java index 77652a6..37f3eb8 100644 --- a/mock/jrummikub/model/MockTable.java +++ b/mock/jrummikub/model/MockTable.java @@ -18,7 +18,7 @@ public class MockTable implements ITable { /** */ public boolean valid = false; /** */ - public MockTable clonedTable; + public ITable clonedTable; /** */ public List<Pair<StoneSet, Position>> sets = new ArrayList<Pair<StoneSet, Position>>(); @@ -58,7 +58,7 @@ public class MockTable implements ITable { return findStoneSet.get(stone); } - public MockTable clone() { + public ITable clone() { if (clonedTable == null) return this; return clonedTable; diff --git a/test/jrummikub/control/RoundControlTest.java b/test/jrummikub/control/RoundControlTest.java index 80a91be..a6279ba 100644 --- a/test/jrummikub/control/RoundControlTest.java +++ b/test/jrummikub/control/RoundControlTest.java @@ -135,7 +135,7 @@ public class RoundControlTest { Iterator<Pair<StoneSet, Position>> stoneSetsView = view.tablePanel.stoneSets .iterator(); Iterator<Pair<StoneSet, Position>> stoneSetsModel = testRoundState.table - .clone().sets.iterator(); + .clone().iterator(); while (stoneSetsView.hasNext()) { assertTrue(stoneSetsModel.hasNext()); diff --git a/test/jrummikub/control/turn/TurnControlTest.java b/test/jrummikub/control/turn/TurnControlTest.java index 76c2159..dd1176f 100644 --- a/test/jrummikub/control/turn/TurnControlTest.java +++ b/test/jrummikub/control/turn/TurnControlTest.java @@ -143,7 +143,10 @@ public class TurnControlTest { mockRoundState = new MockRoundState(); mockTimer = new MockTimer(); mockTable = new MockTable(); + + mockRoundState.table = mockTable; mockHand = new MockHand(); + mockRoundState.players.get(0).hand = mockHand; mockPlayer = new MockPlayer(null, null); mockPlayer.hand = mockHand; testControl = new HumanTurnControl(mockTimer); @@ -163,6 +166,7 @@ public class TurnControlTest { @SuppressWarnings("unchecked") @Test public void showInitialHand() { + mockRoundState.turnNumber = -1; mockView.bottomPanelType = BottomPanelType.START_TURN_PANEL; List<Pair<Stone, Position>> stones = Arrays.asList( @@ -170,11 +174,13 @@ public class TurnControlTest { new Pair<Stone, Position>(blackJoker, new Position(1, 0))); mockHand.iterable = stones; + mockRoundState.players.get(0).hand = mockHand; testControl = new HumanTurnControl(mockTimer); testControl.setup(new ITurnControl.TurnInfo(mockRoundState, - TurnMode.NORMAL_TURN), new GameSettings(), mockView); + TurnMode.INSPECT_ONLY), new GameSettings(), mockView); testControl.startTurn(); + mockView.startTurnEvent.emit(); int i = 0; for (Pair<Stone, Position> pair : mockView.handPanel.stones) { @@ -590,18 +596,21 @@ public class TurnControlTest { public void testAddLeft() { AccessibleTable table = new AccessibleTable(); HumanTurnControl turnControl = new HumanTurnControl(mockTimer); - turnControl.setup(new ITurnControl.TurnInfo(mockRoundState, - TurnMode.NORMAL_TURN), new GameSettings(), mockView); - turnControl.startTurn(); + mockTable.clonedTable = table; + mockHand.drop(blueThree, new Position(0, 0)); + mockHand.drop(blueFour, new Position(0, 0)); StoneSet oldSet1 = new StoneSet(Arrays.asList(blueOne, redOne, blackOne, redTwo, redThree, redFour, blackTwo, blackThree)); StoneSet oldSet2 = new StoneSet(Arrays.asList(blueTwo, blackFour, blackFive)); table.drop(oldSet1, new Position(0, 0)); table.drop(oldSet2, new Position(0, 0)); - mockHand.drop(blueThree, new Position(0, 0)); - mockHand.drop(blueFour, new Position(0, 0)); + + turnControl.setup(new ITurnControl.TurnInfo(mockRoundState, + TurnMode.NORMAL_TURN), new GameSettings(), mockView); + turnControl.startTurn(); + mockView.handPanel.stoneClickEvent.emit(blueThree, false); mockView.tablePanel.stoneClickEvent.emit(redOne, true); mockView.tablePanel.stoneClickEvent.emit(redThree, true); @@ -695,10 +704,9 @@ public class TurnControlTest { @Test public void testAddRight() { AccessibleTable table = new AccessibleTable(); + mockTable.clonedTable = table; HumanTurnControl turnControl = new HumanTurnControl(mockTimer); - turnControl.setup(new TurnInfo(mockRoundState, TurnMode.NORMAL_TURN), - new GameSettings(), mockView); - turnControl.startTurn(); + StoneSet oldSet1 = new StoneSet(Arrays.asList(blueOne, redOne, blackOne, redTwo, redThree, redFour, blackTwo, blackThree)); StoneSet oldSet2 = new StoneSet(Arrays.asList(blueTwo, blackFour, @@ -707,6 +715,11 @@ public class TurnControlTest { table.drop(oldSet2, new Position(0, 0)); mockHand.drop(blueThree, new Position(0, 0)); mockHand.drop(blueFour, new Position(0, 0)); + + turnControl.setup(new TurnInfo(mockRoundState, TurnMode.NORMAL_TURN), + new GameSettings(), mockView); + turnControl.startTurn(); + mockView.handPanel.stoneClickEvent.emit(blueThree, false); mockView.tablePanel.stoneClickEvent.emit(redOne, true); mockView.tablePanel.stoneClickEvent.emit(redThree, true); @@ -800,10 +813,7 @@ public class TurnControlTest { @Test public void testAddNewSet() { AccessibleTable table = new AccessibleTable(); - HumanTurnControl turnControl = new HumanTurnControl(mockTimer); - turnControl.setup(new TurnInfo(mockRoundState, TurnMode.NORMAL_TURN), - new GameSettings(), mockView); - turnControl.startTurn(); + mockTable.clonedTable = table; StoneSet oldSet1 = new StoneSet(Arrays.asList(blueOne, redOne, blackOne, redTwo, redThree, redFour, blackTwo, blackThree)); StoneSet oldSet2 = new StoneSet(Arrays.asList(blueTwo, blackFour, @@ -812,11 +822,17 @@ public class TurnControlTest { table.drop(oldSet2, new Position(0, 0)); mockHand.drop(blueThree, new Position(0, 0)); mockHand.drop(blueFour, new Position(0, 0)); + + HumanTurnControl turnControl = new HumanTurnControl(mockTimer); + turnControl.setup(new TurnInfo(mockRoundState, TurnMode.NORMAL_TURN), + new GameSettings(), mockView); + turnControl.startTurn(); mockView.handPanel.stoneClickEvent.emit(blueThree, false); mockView.tablePanel.stoneClickEvent.emit(redOne, true); mockView.tablePanel.stoneClickEvent.emit(redThree, true); mockView.tablePanel.stoneClickEvent.emit(blueTwo, true); mockView.tablePanel.clickEvent.emit(new Position(0, 0)); + // handcheck assertEquals(1, mockHand.getSize()); assertSame(blueFour, mockHand.stones.get(0).getFirst()); |