summaryrefslogtreecommitdiffstats
path: root/test/jrummikub/control
diff options
context:
space:
mode:
Diffstat (limited to 'test/jrummikub/control')
-rw-r--r--test/jrummikub/control/TurnControlTest.java91
1 files changed, 80 insertions, 11 deletions
diff --git a/test/jrummikub/control/TurnControlTest.java b/test/jrummikub/control/TurnControlTest.java
index 288214e..840e83f 100644
--- a/test/jrummikub/control/TurnControlTest.java
+++ b/test/jrummikub/control/TurnControlTest.java
@@ -1,20 +1,20 @@
package jrummikub.control;
-import java.util.Collection;
+import static org.junit.Assert.*;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Arrays;
import jrummikub.model.Stone;
+import jrummikub.model.StoneColor;
import jrummikub.util.Event;
import jrummikub.util.IEvent;
import jrummikub.util.IListener;
-import jrummikub.view.IHandPanel;
-import jrummikub.view.IPlayerPanel;
-import jrummikub.view.ITablePanel;
-import jrummikub.view.IView;
import jrummikub.view.MockView;
import org.junit.Before;
import org.junit.Test;
-import static org.junit.Assert.*;
public class TurnControlTest {
@@ -53,7 +53,8 @@ public class TurnControlTest {
public void viewEndOfTurn() {
eventFired = false;
mockTimer.timerRunning = true;
- TurnControl testControl = new TurnControl(null, null, mockView, mockTimer);
+ TurnControl testControl = new TurnControl(null, null, mockView,
+ mockTimer);
testControl.getEndOfTurnEvent().add(new IListener() {
@@ -64,16 +65,17 @@ public class TurnControlTest {
});
mockView.playerPanel.endTurnEvent.emit();
-
+
assertTrue(eventFired);
assertFalse(mockTimer.timerRunning);
}
-
+
@Test
public void timerEndOfTurn() {
eventFired = false;
mockTimer.timerRunning = true;
- TurnControl testControl = new TurnControl(null, null, mockView, mockTimer);
+ TurnControl testControl = new TurnControl(null, null, mockView,
+ mockTimer);
testControl.getEndOfTurnEvent().add(new IListener() {
@@ -84,8 +86,75 @@ public class TurnControlTest {
});
mockTimer.timeRunOutEvent.emit();
-
+
assertTrue(eventFired);
assertFalse(mockTimer.timerRunning);
}
+
+ @Test
+ public void selectStoneInHand() {
+ TurnControl testControl = new TurnControl(null, null, mockView,
+ mockTimer);
+
+ Stone firstStone = new Stone(StoneColor.RED);
+
+ // Select first stone
+ mockView.playerPanel.handPanel.stoneClickEvent.emit(firstStone, false);
+
+ assertCollection(Arrays.asList(firstStone));
+
+ // Select second stone
+ Stone secondStone = new Stone(StoneColor.BLACK);
+ mockView.playerPanel.handPanel.stoneClickEvent.emit(secondStone, false);
+
+ assertCollection(Arrays.asList(secondStone));
+
+ }
+
+ @Test
+ public void collectStoneInHand() {
+ TurnControl testControl = new TurnControl(null, null, mockView,
+ mockTimer);
+
+ Stone firstStone = new Stone(StoneColor.RED);
+
+ // Select first stone
+ mockView.playerPanel.handPanel.stoneClickEvent.emit(firstStone, true);
+
+ assertCollection(Arrays.asList(firstStone));
+
+ // Select second stone
+ Stone secondStone = new Stone(StoneColor.BLACK);
+ mockView.playerPanel.handPanel.stoneClickEvent.emit(secondStone, true);
+
+ assertCollection(Arrays.asList(firstStone, secondStone));
+
+ // De-select first stone
+ mockView.playerPanel.handPanel.stoneClickEvent.emit(firstStone, true);
+
+ assertCollection(Arrays.asList(secondStone));
+ }
+
+ @Test
+ public void deselectStoneInCollection() {
+ TurnControl testControl = new TurnControl(null, null, mockView,
+ mockTimer);
+ Stone firstStone = new Stone(StoneColor.RED);
+ Stone secondStone = new Stone(StoneColor.BLACK);
+
+ mockView.playerPanel.handPanel.stoneClickEvent.emit(firstStone, true);
+ mockView.playerPanel.handPanel.stoneClickEvent.emit(secondStone, true);
+
+ mockView.tablePanel.stoneCollectionPanel.stoneClickEvent.emit(
+ firstStone, true);
+
+ assertCollection(Arrays.asList(secondStone));
+ }
+
+ private void assertCollection(List<Stone> expected) {
+ ArrayList<Stone> selectedStones = new ArrayList<Stone>(
+ mockView.selectedStones);
+ ArrayList<Stone> expectedStones = new ArrayList<Stone>(expected);
+ assertEquals(selectedStones, expectedStones);
+ }
}