diff options
-rw-r--r-- | test/jrummikub/model/StoneHeapTest.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/test/jrummikub/model/StoneHeapTest.java b/test/jrummikub/model/StoneHeapTest.java new file mode 100644 index 0000000..01f5da3 --- /dev/null +++ b/test/jrummikub/model/StoneHeapTest.java @@ -0,0 +1,68 @@ +package jrummikub.model; + +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.*; +import static org.junit.Assert.*; + +public class StoneHeapTest { + private StoneHeap testHeap; + + @Before + public void createHeap() { + testHeap = new StoneHeap(); + } + + // Is the right number of Stones in heap? + @Test + public void fullStoneHeap() { + assertEquals(106, testHeap.heap.size()); + } + + // Enough stones of each color in heap? + @Test + public void fullColor() { + Map<StoneColor, Integer> counters = new HashMap<StoneColor, Integer>(); + for (StoneColor c : EnumSet.allOf(StoneColor.class)) { + counters.put(c, 0); + } + for (Stone i : testHeap.heap) { + if (i.isJoker()) + continue; + int count = counters.get(i.getColor()); + counters.put(i.getColor(), count + 1); + } + for (StoneColor c : EnumSet.allOf(StoneColor.class)) { + assertEquals(26, (long) counters.get(c)); + } + } + + // Enough Jokers? + @Test + public void fullJoker() { + int countJoker = 0; + for (Stone i : testHeap.heap) { + if (i.isJoker()) + countJoker++; + } + assertEquals(2, countJoker); + } + + // Draw Stone Test + @Test + public void drawStoneTest() { + assertNotNull(testHeap.drawStone()); + assertEquals(105, testHeap.heap.size()); + } + + // Draw Stones Test + @Test + public void drawStonesTest() { + List<Stone> testStones = testHeap.drawStones(5); + assertEquals(5, testStones.size()); + assertEquals(101, testHeap.heap.size()); + } +} |