diff options
Diffstat (limited to 'test/jrummikub/control')
-rw-r--r-- | test/jrummikub/control/TurnControlTest.java | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/test/jrummikub/control/TurnControlTest.java b/test/jrummikub/control/TurnControlTest.java index fdc43fc..b4766b6 100644 --- a/test/jrummikub/control/TurnControlTest.java +++ b/test/jrummikub/control/TurnControlTest.java @@ -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); + } } |