Testfall für rangeclick auf der Hand

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@196 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Ida Massow 2011-05-09 21:19:04 +02:00
parent a6a5388560
commit 223f6d7e85
2 changed files with 136 additions and 31 deletions

View file

@ -13,6 +13,7 @@ import jrummikub.util.Pair;
public class MockHandPanel implements IHandPanel {
public Event2<Stone, Boolean> stoneClickEvent = new Event2<Stone, Boolean>();
public List<Pair<Stone, Position>> stones;
public Event2<Stone, Boolean> rangeClickEvent = new Event2<Stone, Boolean>();
@Override
public IEvent2<Stone, Boolean> getStoneClickEvent() {
@ -21,8 +22,7 @@ public class MockHandPanel implements IHandPanel {
@Override
public IEvent2<Stone, Boolean> getRangeClickEvent() {
// TODO Auto-generated method stub
return null;
return rangeClickEvent;
}
@Override
@ -49,13 +49,13 @@ public class MockHandPanel implements IHandPanel {
@Override
public void setHandWidth(int width) {
// TODO Auto-generated method stub
}
@Override
public void setHandHeight(int height) {
// TODO Auto-generated method stub
}
}

View file

@ -111,9 +111,10 @@ public class TurnControlTest {
public void showInitialHand() {
mockView.displayStartTurnPanel = true;
List<Pair<Stone, Position>> stones = Arrays.asList(
new Pair<Stone, Position>(new Stone(RED), new Position(0, 0)),
new Pair<Stone, Position>(new Stone(BLACK), new Position(1, 0)));
List<Pair<Stone, Position>> stones = Arrays
.asList(new Pair<Stone, Position>(new Stone(RED), new Position(
0, 0)), new Pair<Stone, Position>(new Stone(BLACK),
new Position(1, 0)));
mockHand.iterable = stones;
@ -239,8 +240,8 @@ public class TurnControlTest {
mockView.playerPanel.handPanel.stoneClickEvent.emit(firstStone, true);
mockView.playerPanel.handPanel.stoneClickEvent.emit(secondStone, true);
mockView.tablePanel.stoneCollectionPanel.stoneClickEvent.emit(firstStone,
false);
mockView.tablePanel.stoneCollectionPanel.stoneClickEvent.emit(
firstStone, false);
assertCollection(Arrays.asList(secondStone));
}
@ -255,8 +256,8 @@ public class TurnControlTest {
mockView.playerPanel.handPanel.stoneClickEvent.emit(firstStone, true);
mockView.playerPanel.handPanel.stoneClickEvent.emit(secondStone, true);
mockView.tablePanel.stoneCollectionPanel.stoneClickEvent.emit(firstStone,
true);
mockView.tablePanel.stoneCollectionPanel.stoneClickEvent.emit(
firstStone, true);
assertCollection(Arrays.asList(secondStone, firstStone));
}
@ -271,8 +272,8 @@ public class TurnControlTest {
mockView.playerPanel.handPanel.stoneClickEvent.emit(firstStone, true);
mockView.playerPanel.handPanel.stoneClickEvent.emit(secondStone, true);
mockView.tablePanel.stoneCollectionPanel.stoneClickEvent.emit(firstStone,
true);
mockView.tablePanel.stoneCollectionPanel.stoneClickEvent.emit(
firstStone, true);
mockView.tablePanel.stoneCollectionPanel.setClickEvent.emit(firstStone,
true);
@ -374,7 +375,8 @@ public class TurnControlTest {
Stone stone2 = new Stone(2, StoneColor.RED);
Stone stone3 = new Stone(3, StoneColor.RED);
Stone stone4 = new Stone(4, StoneColor.RED);
StoneSet set1 = new StoneSet(Arrays.asList(stone1, stone2, stone3, stone4));
StoneSet set1 = new StoneSet(Arrays.asList(stone1, stone2, stone3,
stone4));
mockTable.findStoneSet.put(stone1, set1);
mockTable.findStoneSet.put(stone3, set1);
@ -385,7 +387,7 @@ public class TurnControlTest {
assertCollection(Arrays.asList(stone1, stone2, stone3));
}
@Test
public void rangeSelectOnTable() {
testControl.startTurn();
@ -394,7 +396,8 @@ public class TurnControlTest {
Stone stone2 = new Stone(2, StoneColor.RED);
Stone stone3 = new Stone(3, StoneColor.RED);
Stone stone4 = new Stone(4, StoneColor.RED);
StoneSet set1 = new StoneSet(Arrays.asList(stone1, stone2, stone3, stone4));
StoneSet set1 = new StoneSet(Arrays.asList(stone1, stone2, stone3,
stone4));
mockTable.findStoneSet.put(stone1, set1);
mockTable.findStoneSet.put(stone3, set1);
@ -416,7 +419,8 @@ public class TurnControlTest {
Stone stone2 = new Stone(2, StoneColor.RED);
Stone stone3 = new Stone(3, StoneColor.RED);
Stone stone4 = new Stone(4, StoneColor.RED);
StoneSet set1 = new StoneSet(Arrays.asList(stone1, stone2, stone3, stone4));
StoneSet set1 = new StoneSet(Arrays.asList(stone1, stone2, stone3,
stone4));
mockTable.findStoneSet.put(stone1, set1);
mockTable.findStoneSet.put(stone3, set1);
@ -476,6 +480,107 @@ public class TurnControlTest {
assertCollection(Arrays.asList(stone1, stone2));
}
@Test
public void rangeSelectOnHandReverse() {
testControl.startTurn();
Stone stone1 = new Stone(1, StoneColor.RED);
Stone stone2 = new Stone(2, StoneColor.RED);
Stone stone3 = new Stone(3, StoneColor.RED);
Stone stone4 = new Stone(4, StoneColor.RED);
mockHand.drop(stone1, new Position(0, 0));
mockHand.drop(stone2, new Position(1.5f, 0));
mockHand.drop(stone3, new Position(0, 1));
mockHand.drop(stone4, new Position(1, 1));
mockView.playerPanel.handPanel.stoneClickEvent.emit(stone3, false);
mockView.playerPanel.handPanel.rangeClickEvent.emit(stone1, true);
assertCollection(Arrays.asList(stone1, stone2, stone3));
}
@Test
public void rangeSelectOnHand() {
testControl.startTurn();
Stone stone1 = new Stone(1, StoneColor.RED);
Stone stone2 = new Stone(2, StoneColor.RED);
Stone stone3 = new Stone(3, StoneColor.RED);
Stone stone4 = new Stone(4, StoneColor.RED);
mockHand.drop(stone1, new Position(0, 0));
mockHand.drop(stone2, new Position(1.5f, 0));
mockHand.drop(stone3, new Position(0, 1));
mockHand.drop(stone4, new Position(1, 1));
mockView.playerPanel.handPanel.stoneClickEvent.emit(stone1, false);
mockView.playerPanel.handPanel.rangeClickEvent.emit(stone3, true);
assertCollection(Arrays.asList(stone1, stone2, stone3));
}
@Test
public void rangeCollectOnHand() {
testControl.startTurn();
Stone extraStone = new Stone(StoneColor.RED);
Stone stone1 = new Stone(1, StoneColor.RED);
Stone stone2 = new Stone(2, StoneColor.RED);
Stone stone3 = new Stone(3, StoneColor.RED);
Stone stone4 = new Stone(4, StoneColor.RED);
mockHand.drop(stone1, new Position(0, 0));
mockHand.drop(stone2, new Position(1.5f, 0));
mockHand.drop(stone3, new Position(0, 1));
mockHand.drop(stone4, new Position(1, 1));
mockView.playerPanel.handPanel.stoneClickEvent.emit(extraStone, false);
mockView.playerPanel.handPanel.stoneClickEvent.emit(stone1, true);
mockView.playerPanel.handPanel.rangeClickEvent.emit(stone3, false);
assertCollection(Arrays.asList(extraStone, stone1, stone2, stone3));
}
@Test
public void rangeFailSelectHand() {
testControl.startTurn();
Stone stone1 = new Stone(1, StoneColor.RED);
Stone stone2 = new Stone(2, StoneColor.RED);
StoneSet set1 = new StoneSet(Arrays.asList(stone1));
mockTable.findStoneSet.put(stone1, set1);
mockHand.drop(stone2, new Position(0, 0));
// Select first stone
mockView.tablePanel.stoneClickEvent.emit(stone1, false);
assertCollection(Arrays.asList(stone1));
// Select second stone
mockView.playerPanel.handPanel.rangeClickEvent.emit(stone2, false);
assertCollection(Arrays.asList(stone2));
}
@Test
public void rangeFailCollectHand() {
testControl.startTurn();
Stone stone1 = new Stone(1, StoneColor.RED);
Stone stone2 = new Stone(2, StoneColor.RED);
StoneSet set1 = new StoneSet(Arrays.asList(stone1));
mockTable.findStoneSet.put(stone1, set1);
mockHand.drop(stone2, new Position(0, 0));
// Select first stone
mockView.tablePanel.stoneClickEvent.emit(stone1, false);
assertCollection(Arrays.asList(stone1));
// Select second stone
mockView.playerPanel.handPanel.rangeClickEvent.emit(stone2, true);
assertCollection(Arrays.asList(stone1, stone2));
}
private void assertCollection(List<Stone> expected) {
ArrayList<Stone> selectedStones = new ArrayList<Stone>(
mockView.selectedStones);
@ -502,10 +607,10 @@ public class TurnControlTest {
Stone blackThree = new Stone(3, BLACK);
Stone blackFour = new Stone(4, BLACK);
Stone blackFive = new Stone(5, BLACK);
StoneSet oldSet1 = new StoneSet(Arrays.asList(blueOne, redOne, blackOne,
redTwo, redThree, redFour, blackTwo, blackThree));
StoneSet oldSet2 = new StoneSet(
Arrays.asList(blueTwo, blackFour, blackFive));
StoneSet oldSet1 = new StoneSet(Arrays.asList(blueOne, redOne,
blackOne, redTwo, redThree, redFour, blackTwo, blackThree));
StoneSet oldSet2 = new StoneSet(Arrays.asList(blueTwo, blackFour,
blackFive));
table.drop(oldSet1, new Position(0, 0));
table.drop(oldSet2, new Position(0, 0));
mockHand.drop(blueThree, new Position(0, 0));
@ -575,7 +680,7 @@ public class TurnControlTest {
mockView.playerPanel.handPanel.stoneClickEvent.emit(blueFour, false);
mockView.tablePanel.stoneClickEvent.emit(redOne, true);
mockView.tablePanel.leftConnectorClickEvent.emit(newSet2);
// handcheck
assertEquals(0, mockHand.getSize());
// tablecheck
@ -618,10 +723,10 @@ public class TurnControlTest {
Stone blackThree = new Stone(3, BLACK);
Stone blackFour = new Stone(4, BLACK);
Stone blackFive = new Stone(5, BLACK);
StoneSet oldSet1 = new StoneSet(Arrays.asList(blueOne, redOne, blackOne,
redTwo, redThree, redFour, blackTwo, blackThree));
StoneSet oldSet2 = new StoneSet(
Arrays.asList(blueTwo, blackFour, blackFive));
StoneSet oldSet1 = new StoneSet(Arrays.asList(blueOne, redOne,
blackOne, redTwo, redThree, redFour, blackTwo, blackThree));
StoneSet oldSet2 = new StoneSet(Arrays.asList(blueTwo, blackFour,
blackFive));
table.drop(oldSet1, new Position(0, 0));
table.drop(oldSet2, new Position(0, 0));
mockHand.drop(blueThree, new Position(0, 0));
@ -691,7 +796,7 @@ public class TurnControlTest {
mockView.playerPanel.handPanel.stoneClickEvent.emit(blueFour, false);
mockView.tablePanel.stoneClickEvent.emit(redThree, true);
mockView.tablePanel.rightConnectorClickEvent.emit(newSet2);
// handcheck
assertEquals(0, mockHand.getSize());
// tablecheck
@ -734,10 +839,10 @@ public class TurnControlTest {
Stone blackThree = new Stone(3, BLACK);
Stone blackFour = new Stone(4, BLACK);
Stone blackFive = new Stone(5, BLACK);
StoneSet oldSet1 = new StoneSet(Arrays.asList(blueOne, redOne, blackOne,
redTwo, redThree, redFour, blackTwo, blackThree));
StoneSet oldSet2 = new StoneSet(
Arrays.asList(blueTwo, blackFour, blackFive));
StoneSet oldSet1 = new StoneSet(Arrays.asList(blueOne, redOne,
blackOne, redTwo, redThree, redFour, blackTwo, blackThree));
StoneSet oldSet2 = new StoneSet(Arrays.asList(blueTwo, blackFour,
blackFive));
table.drop(oldSet1, new Position(0, 0));
table.drop(oldSet2, new Position(0, 0));
mockHand.drop(blueThree, new Position(0, 0));