Add tests for hand auto-sort
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@203 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
8e73d1ab37
commit
3338af2d43
3 changed files with 130 additions and 10 deletions
|
@ -6,6 +6,8 @@ import jrummikub.util.MockEvent;
|
|||
public class MockPlayerPanel implements IPlayerPanel {
|
||||
public MockEvent endTurnEvent = new MockEvent();
|
||||
public MockHandPanel handPanel = new MockHandPanel();
|
||||
public MockEvent sortByGroupsEvent = new MockEvent();
|
||||
public MockEvent sortByRunsEvent = new MockEvent();
|
||||
|
||||
@Override
|
||||
public IHandPanel getHandPanel() {
|
||||
|
@ -21,14 +23,12 @@ public class MockPlayerPanel implements IPlayerPanel {
|
|||
|
||||
@Override
|
||||
public IEvent getSortByGroupsEvent() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
return sortByGroupsEvent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IEvent getSortByRunsEvent() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
return sortByRunsEvent;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -21,7 +21,7 @@ import jrummikub.util.Pair;
|
|||
import jrummikub.view.IView;
|
||||
|
||||
public class TurnControl {
|
||||
private static class HandStoneComparator implements
|
||||
static class HandStonePositionComparator implements
|
||||
Comparator<Pair<Stone, Position>> {
|
||||
@Override
|
||||
public int compare(Pair<Stone, Position> pair1,
|
||||
|
@ -161,6 +161,20 @@ public class TurnControl {
|
|||
connectorClick(set, true);
|
||||
}
|
||||
}));
|
||||
connections.add(view.getPlayerPanel().getSortByGroupsEvent()
|
||||
.add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
sortByGroups();
|
||||
}
|
||||
}));
|
||||
connections.add(view.getPlayerPanel().getSortByRunsEvent()
|
||||
.add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
sortByRuns();
|
||||
}
|
||||
}));
|
||||
|
||||
view.getPlayerPanel().getHandPanel().setStones(hand.clone());
|
||||
view.enableStartTurnPanel(false);
|
||||
|
@ -168,11 +182,11 @@ public class TurnControl {
|
|||
timer.startTimer();
|
||||
}
|
||||
|
||||
private void sortByValue() {
|
||||
private void sortByRuns() {
|
||||
|
||||
}
|
||||
|
||||
private void sortByColor() {
|
||||
private void sortByGroups() {
|
||||
|
||||
}
|
||||
|
||||
|
@ -286,7 +300,7 @@ public class TurnControl {
|
|||
handPairs.add(entry);
|
||||
}
|
||||
|
||||
Collections.sort(handPairs, new HandStoneComparator());
|
||||
Collections.sort(handPairs, new HandStonePositionComparator());
|
||||
|
||||
List<Stone> handStones = new ArrayList<Stone>();
|
||||
for (Pair<Stone, Position> entry : handPairs) {
|
||||
|
@ -338,8 +352,7 @@ public class TurnControl {
|
|||
- selectedStones.size(), newPos.getY()));
|
||||
}
|
||||
} else {
|
||||
table.drop(new StoneSet(selectedStones), new Position(pos.getX()
|
||||
+ (set.size() - selectedStones.size()) * 0.5f, pos.getY()));
|
||||
table.drop(new StoneSet(selectedStones), new Position(RoundControl.HAND_WIDTH-1, RoundControl.HAND_HEIGHT-1));
|
||||
}
|
||||
|
||||
selectedStones.clear();
|
||||
|
|
|
@ -10,6 +10,7 @@ import static org.junit.Assert.assertTrue;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -909,4 +910,110 @@ public class TurnControlTest {
|
|||
checkTableDisplay(table);
|
||||
checkHandDisplay(mockHand);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSortByGroups() {
|
||||
Stone red1 = new Stone(1, StoneColor.RED);
|
||||
Stone blue2 = new Stone(2, StoneColor.BLUE);
|
||||
Stone red4 = new Stone(4, StoneColor.RED);
|
||||
Stone red3 = new Stone(3, StoneColor.RED);
|
||||
Stone orange10 = new Stone(10, StoneColor.ORANGE);
|
||||
Stone blue1 = new Stone(1, StoneColor.BLUE);
|
||||
Stone blue4 = new Stone(4, StoneColor.BLUE);
|
||||
Stone blue4a = new Stone(4, StoneColor.BLUE);
|
||||
Stone joker = new Stone(StoneColor.BLACK);
|
||||
Stone black5 = new Stone(5, StoneColor.BLACK);
|
||||
Stone orange13 = new Stone(13, StoneColor.ORANGE);
|
||||
Stone red11 = new Stone(11, StoneColor.RED);
|
||||
Stone black10 = new Stone(10, StoneColor.BLACK);
|
||||
mockHand.drop(red1, new Position(0, 0));
|
||||
mockHand.drop(blue2, new Position(0, 0));
|
||||
mockHand.drop(red4, new Position(0, 0));
|
||||
mockHand.drop(red3, new Position(0, 0));
|
||||
mockHand.drop(orange10, new Position(0, 0));
|
||||
mockHand.drop(blue1, new Position(0, 0));
|
||||
mockHand.drop(blue4, new Position(0, 0));
|
||||
mockHand.drop(blue4a, new Position(0, 0));
|
||||
mockHand.drop(joker, new Position(0, 0));
|
||||
mockHand.drop(black5, new Position(0, 0));
|
||||
mockHand.drop(orange13, new Position(0, 0));
|
||||
mockHand.drop(red11, new Position(0, 0));
|
||||
mockHand.drop(black10, new Position(0, 0));
|
||||
|
||||
mockView.playerPanel.sortByGroupsEvent.emit();
|
||||
|
||||
List<Pair<Stone, Position>> stones = new ArrayList<Pair<Stone, Position>>(mockHand.stones);
|
||||
Collections.sort(stones, new TurnControl.HandStonePositionComparator());
|
||||
|
||||
assertEquals(stones.size(), 13);
|
||||
|
||||
assertSame(stones.get(0).getFirst(), blue1);
|
||||
assertSame(stones.get(1).getFirst(), red1);
|
||||
assertSame(stones.get(2).getFirst(), blue2);
|
||||
assertSame(stones.get(3).getFirst(), red3);
|
||||
|
||||
assertTrue(stones.get(4).getFirst() == blue4 || stones.get(4).getFirst() == blue4a);
|
||||
assertTrue(stones.get(5).getFirst() == blue4 || stones.get(5).getFirst() == blue4a);
|
||||
|
||||
assertSame(stones.get(6).getFirst(), red4);
|
||||
assertSame(stones.get(7).getFirst(), black5);
|
||||
assertSame(stones.get(8).getFirst(), black10);
|
||||
assertSame(stones.get(9).getFirst(), orange10);
|
||||
assertSame(stones.get(10).getFirst(), red11);
|
||||
assertSame(stones.get(11).getFirst(), orange13);
|
||||
assertSame(stones.get(12).getFirst(), joker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSortByRuns() {
|
||||
Stone red1 = new Stone(1, StoneColor.RED);
|
||||
Stone blue2 = new Stone(2, StoneColor.BLUE);
|
||||
Stone red4 = new Stone(4, StoneColor.RED);
|
||||
Stone red3 = new Stone(3, StoneColor.RED);
|
||||
Stone orange10 = new Stone(10, StoneColor.ORANGE);
|
||||
Stone blue1 = new Stone(1, StoneColor.BLUE);
|
||||
Stone blue4 = new Stone(4, StoneColor.BLUE);
|
||||
Stone blue4a = new Stone(4, StoneColor.BLUE);
|
||||
Stone joker = new Stone(StoneColor.BLACK);
|
||||
Stone black5 = new Stone(5, StoneColor.BLACK);
|
||||
Stone orange13 = new Stone(13, StoneColor.ORANGE);
|
||||
Stone red11 = new Stone(11, StoneColor.RED);
|
||||
Stone black10 = new Stone(10, StoneColor.BLACK);
|
||||
mockHand.drop(red1, new Position(0, 0));
|
||||
mockHand.drop(blue2, new Position(0, 0));
|
||||
mockHand.drop(red4, new Position(0, 0));
|
||||
mockHand.drop(red3, new Position(0, 0));
|
||||
mockHand.drop(orange10, new Position(0, 0));
|
||||
mockHand.drop(blue1, new Position(0, 0));
|
||||
mockHand.drop(blue4, new Position(0, 0));
|
||||
mockHand.drop(blue4a, new Position(0, 0));
|
||||
mockHand.drop(joker, new Position(0, 0));
|
||||
mockHand.drop(black5, new Position(0, 0));
|
||||
mockHand.drop(orange13, new Position(0, 0));
|
||||
mockHand.drop(red11, new Position(0, 0));
|
||||
mockHand.drop(black10, new Position(0, 0));
|
||||
|
||||
mockView.playerPanel.sortByRunsEvent.emit();
|
||||
|
||||
List<Pair<Stone, Position>> stones = new ArrayList<Pair<Stone, Position>>(mockHand.stones);
|
||||
Collections.sort(stones, new TurnControl.HandStonePositionComparator());
|
||||
|
||||
assertEquals(stones.size(), 13);
|
||||
|
||||
assertSame(stones.get(0).getFirst(), black5);
|
||||
assertSame(stones.get(1).getFirst(), black10);
|
||||
assertSame(stones.get(2).getFirst(), orange10);
|
||||
assertSame(stones.get(3).getFirst(), orange13);
|
||||
assertSame(stones.get(4).getFirst(), blue1);
|
||||
assertSame(stones.get(5).getFirst(), blue2);
|
||||
|
||||
assertTrue(stones.get(6).getFirst() == blue4 || stones.get(6).getFirst() == blue4a);
|
||||
assertTrue(stones.get(7).getFirst() == blue4 || stones.get(7).getFirst() == blue4a);
|
||||
|
||||
assertSame(stones.get(8).getFirst(), red1);
|
||||
assertSame(stones.get(9).getFirst(), red3);
|
||||
assertSame(stones.get(10).getFirst(), red4);
|
||||
assertSame(stones.get(11).getFirst(), red11);
|
||||
assertSame(stones.get(12).getFirst(), joker);
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue