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 counters = new HashMap(); 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 testStones = testHeap.drawStones(5); assertEquals(5, testStones.size()); assertEquals(101, testHeap.heap.size()); } }