diff options
-rw-r--r-- | test/jrummikub/control/TurnControlTest.java | 91 | ||||
-rw-r--r-- | test/jrummikub/view/MockHandPanel.java | 43 | ||||
-rw-r--r-- | test/jrummikub/view/MockPlayerPanel.java | 4 | ||||
-rw-r--r-- | test/jrummikub/view/MockStoneCollectionPanel.java | 28 | ||||
-rw-r--r-- | test/jrummikub/view/MockTablePanel.java | 82 | ||||
-rw-r--r-- | test/jrummikub/view/MockView.java | 9 |
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 |