From 20b7f250da1e9eea67908a35462221ab003f2a2e Mon Sep 17 00:00:00 2001 From: Jannis Harder Date: Wed, 4 May 2011 18:47:13 +0200 Subject: Collection selecting tests and mock views git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@113 72836036-5685-4462-b002-a69064685172 --- test/jrummikub/control/TurnControlTest.java | 91 +++++++++++++++++++++++++---- 1 file changed, 80 insertions(+), 11 deletions(-) (limited to 'test/jrummikub/control') 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 expected) { + ArrayList selectedStones = new ArrayList( + mockView.selectedStones); + ArrayList expectedStones = new ArrayList(expected); + assertEquals(selectedStones, expectedStones); + } } -- cgit v1.2.3