diff options
-rw-r--r-- | src/jrummikub/model/Table.java | 4 | ||||
-rw-r--r-- | test/jrummikub/model/TableTest.java | 24 |
2 files changed, 19 insertions, 9 deletions
diff --git a/src/jrummikub/model/Table.java b/src/jrummikub/model/Table.java index a763bef..7787bea 100644 --- a/src/jrummikub/model/Table.java +++ b/src/jrummikub/model/Table.java @@ -28,6 +28,10 @@ public class Table extends StoneTray<StoneSet> implements ITable { public Pair<StoneSet, StoneSet> pickUpStone(Stone stone) { StoneInfo info = findStoneInfo(stone); + if (info == null) { + return null; + } + return splitSet(info.set, info.setPosition, info.stonePosition); } diff --git a/test/jrummikub/model/TableTest.java b/test/jrummikub/model/TableTest.java index 44605e2..e113ba7 100644 --- a/test/jrummikub/model/TableTest.java +++ b/test/jrummikub/model/TableTest.java @@ -23,12 +23,11 @@ public class TableTest { @Test public void testIsValid() { testTable.drop( - new StoneSet(Arrays.asList(new Stone(RED), new Stone(BLACK), - new Stone(1, BLACK))), new Position(0, 0)); + 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)); + 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))), @@ -46,8 +45,8 @@ public class TableTest { 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)); + 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()); @@ -68,12 +67,19 @@ public class TableTest { } @Test + public void testPickNonexistentStone() { + Stone targetStone = new Stone(BLACK); + testTable.pickUpStone(targetStone); + assertEquals(0, testTable.getSize()); + } + + @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, RED))), new Position(0, 0)); + new StoneSet(Arrays.asList(new Stone(1, RED), targetStone, new Stone(3, + RED))), new Position(0, 0)); assertTrue(testTable.isValid()); testTable.pickUpStone(targetStone); assertFalse(testTable.isValid()); |