Collection selecting tests and mock views

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@113 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Jannis Harder 2011-05-04 18:47:13 +02:00
parent ac08bc112f
commit 20b7f250da
6 changed files with 241 additions and 16 deletions

View file

@ -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);
}
}

View file

@ -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
}
}

View file

@ -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

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}