diff options
-rw-r--r-- | src/jrummikub/model/Table.java | 23 | ||||
-rw-r--r-- | test/jrummikub/model/TableTest.java | 67 |
2 files changed, 72 insertions, 18 deletions
diff --git a/src/jrummikub/model/Table.java b/src/jrummikub/model/Table.java index b1e1a42..59ef01d 100644 --- a/src/jrummikub/model/Table.java +++ b/src/jrummikub/model/Table.java @@ -5,27 +5,13 @@ package jrummikub.model; public class Table extends StoneTray<StoneSet> { /** - * Removes {@link Stone} from the Table and returns it + * Removes {@link Stone} from the Table * - * @param position - * {@link Position} of the selected {@link Stone} + * @param stone + * stone to pick up */ - public Stone pickUpStone(Position position) { + public void pickUpStone(Stone stone) { // TODO implement this method - return null; - } - - /** - * Removes a part of a {@link StoneSet} from the Table and returns it - * - * @param from - * Start {@link Position} of the range - * @param to - * End {@link Position} of the range - */ - public StoneSet pickUpRange(Position from, Position to) { - // TODO implement this method - return null; } /** Tests the Table for rule conflicts by checking all the {@link StoneSet} */ @@ -33,4 +19,5 @@ public class Table extends StoneTray<StoneSet> { // TODO implement this method return false; } + } diff --git a/test/jrummikub/model/TableTest.java b/test/jrummikub/model/TableTest.java index 5326745..86f25ea 100644 --- a/test/jrummikub/model/TableTest.java +++ b/test/jrummikub/model/TableTest.java @@ -1,5 +1,72 @@ package jrummikub.model; +import java.util.Arrays; +import java.util.Collections; + +import org.junit.*; + +import static jrummikub.model.StoneColor.BLACK; +import static jrummikub.model.StoneColor.RED; +import static org.junit.Assert.*; + +import jrummikub.model.Table; + public class TableTest { + Table testTable; + + @Before + public void setup() { + testTable = new Table(); + } + + @Test + public void testIsValid() { + testTable.drop(new StoneSet(Arrays.asList(new Stone(RED), new Stone(BLACK), + new Stone(1, BLACK))), new Position(0,0)); + testTable.drop(new StoneSet(Arrays.asList(new Stone(1, RED), new Stone(2, RED), + new Stone(3, RED))), new Position(0,0)); + assertTrue(testTable.isValid()); + testTable.drop(new StoneSet(Arrays.asList(new Stone(5, RED))), new Position(0,0)); + assertFalse(testTable.isValid()); + } + + @Test + public void testEmptyIsValid() { + assertTrue(testTable.isValid()); + } + + @Test + @SuppressWarnings("unused") + public void testPickUpStoneGroup() { + Stone targetStone = new Stone(BLACK); + testTable.drop(new StoneSet(Arrays.asList(new Stone(RED), targetStone, + new Stone(1, BLACK))), new Position(0,0)); + assertTrue(testTable.isValid()); + testTable.pickUpStone(targetStone); + assertFalse(testTable.isValid()); + + int counter = 0; + for (Object i : testTable) { + counter++; + } + assertEquals(counter, 1); + } + + @Test + @SuppressWarnings("unused") + public void testPickUpStoneRun() { + Stone targetStone = new Stone(BLACK); + testTable.drop(new StoneSet(Arrays.asList(new Stone(1, RED), targetStone, + new Stone(3, BLACK))), new Position(0,0)); + assertTrue(testTable.isValid()); + testTable.pickUpStone(targetStone); + assertFalse(testTable.isValid()); + + int counter = 0; + for (Object i : testTable) { + counter++; + } + assertEquals(counter, 2); + } } |