summaryrefslogtreecommitdiffstats
path: root/test/jrummikub
diff options
context:
space:
mode:
Diffstat (limited to 'test/jrummikub')
-rw-r--r--test/jrummikub/control/TurnControlTest.java91
-rw-r--r--test/jrummikub/view/MockHandPanel.java43
-rw-r--r--test/jrummikub/view/MockPlayerPanel.java4
-rw-r--r--test/jrummikub/view/MockStoneCollectionPanel.java28
-rw-r--r--test/jrummikub/view/MockTablePanel.java82
-rw-r--r--test/jrummikub/view/MockView.java9
6 files changed, 241 insertions, 16 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);
+ }
}
diff --git a/test/jrummikub/view/MockHandPanel.java b/test/jrummikub/view/MockHandPanel.java
new file mode 100644
index 0000000..d0c5edd
--- /dev/null
+++ b/test/jrummikub/view/MockHandPanel.java
@@ -0,0 +1,43 @@
+package jrummikub.view;
+
+import java.util.Map;
+
+import jrummikub.model.Position;
+import jrummikub.model.Stone;
+import jrummikub.util.Event2;
+import jrummikub.util.IEvent1;
+import jrummikub.util.IEvent2;
+
+public class MockHandPanel implements IHandPanel {
+ public Event2<Stone, Boolean> stoneClickEvent = new Event2<Stone, Boolean>();
+
+ @Override
+ public IEvent2<Stone, Boolean> getStoneClickEvent() {
+ return stoneClickEvent;
+ }
+
+ @Override
+ public IEvent2<Stone, Boolean> getRangeClickEvent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public IEvent2<Stone, Boolean> getSetClickEvent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public IEvent1<Position> getClickEvent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setStones(Map<Stone, Position> stones) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
diff --git a/test/jrummikub/view/MockPlayerPanel.java b/test/jrummikub/view/MockPlayerPanel.java
index b144bbb..639287a 100644
--- a/test/jrummikub/view/MockPlayerPanel.java
+++ b/test/jrummikub/view/MockPlayerPanel.java
@@ -5,10 +5,12 @@ import jrummikub.util.IEvent;
public class MockPlayerPanel implements IPlayerPanel {
public Event endTurnEvent = new Event();
+ public MockHandPanel handPanel = new MockHandPanel();
+
@Override
public IHandPanel getHandPanel() {
// TODO Auto-generated method stub
- return null;
+ return handPanel;
}
@Override
diff --git a/test/jrummikub/view/MockStoneCollectionPanel.java b/test/jrummikub/view/MockStoneCollectionPanel.java
new file mode 100644
index 0000000..bec3734
--- /dev/null
+++ b/test/jrummikub/view/MockStoneCollectionPanel.java
@@ -0,0 +1,28 @@
+package jrummikub.view;
+
+import jrummikub.model.Stone;
+import jrummikub.util.Event2;
+import jrummikub.util.IEvent2;
+
+public class MockStoneCollectionPanel implements IStoneCollectionPanel {
+
+ public Event2<Stone,Boolean> stoneClickEvent = new Event2<Stone, Boolean>();
+
+ @Override
+ public IEvent2<Stone, Boolean> getStoneClickEvent() {
+ return stoneClickEvent;
+ }
+
+ @Override
+ public IEvent2<Stone, Boolean> getRangeClickEvent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public IEvent2<Stone, Boolean> getSetClickEvent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/test/jrummikub/view/MockTablePanel.java b/test/jrummikub/view/MockTablePanel.java
new file mode 100644
index 0000000..04ff926
--- /dev/null
+++ b/test/jrummikub/view/MockTablePanel.java
@@ -0,0 +1,82 @@
+package jrummikub.view;
+
+import java.util.Map;
+
+import jrummikub.model.Position;
+import jrummikub.model.Stone;
+import jrummikub.model.StoneSet;
+import jrummikub.util.Event1;
+import jrummikub.util.IEvent1;
+import jrummikub.util.IEvent2;
+
+public class MockTablePanel implements ITablePanel {
+
+ public MockStoneCollectionPanel stoneCollectionPanel = new MockStoneCollectionPanel();
+
+ @Override
+ public IEvent2<Stone, Boolean> getStoneClickEvent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public IEvent2<Stone, Boolean> getRangeClickEvent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public IEvent2<Stone, Boolean> getSetClickEvent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public IEvent1<Position> getClickEvent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setLeftPlayerName(String playerName) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setTopPlayerName(String playerName) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setRightPlayerName(String playerName) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setStoneSets(Map<StoneSet, Position> stoneSets) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IStoneCollectionPanel getStoneCollectionPanel() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Event1<StoneSet> getLeftConnectorClickEvent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Event1<StoneSet> getRightConnectorClickEvent() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/test/jrummikub/view/MockView.java b/test/jrummikub/view/MockView.java
index 9b526a6..3165478 100644
--- a/test/jrummikub/view/MockView.java
+++ b/test/jrummikub/view/MockView.java
@@ -1,4 +1,5 @@
package jrummikub.view;
+
import java.util.Collection;
import jrummikub.model.Stone;
@@ -6,6 +7,9 @@ import jrummikub.util.IEvent;
public class MockView implements IView {
public MockPlayerPanel playerPanel = new MockPlayerPanel();
+ public MockTablePanel tablePanel = new MockTablePanel();
+
+ public Collection<Stone> selectedStones;
@Override
public ITablePanel getTablePanel() {
@@ -26,8 +30,7 @@ public class MockView implements IView {
@Override
public void setSelectedStones(Collection<Stone> stones) {
- // TODO Auto-generated method stub
-
+ selectedStones = stones;
}
@Override
@@ -60,6 +63,4 @@ public class MockView implements IView {
return null;
}
-
-
} \ No newline at end of file