summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/jrummikub/model/Table.java23
-rw-r--r--test/jrummikub/model/TableTest.java67
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);
+ }
}