summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJannis Harder <harder@informatik.uni-luebeck.de>2011-05-03 19:06:12 +0200
committerJannis Harder <harder@informatik.uni-luebeck.de>2011-05-03 19:06:12 +0200
commit88292e9304afd644db9f54a526ecbe9bae314dd6 (patch)
tree304dc323fee29578f547993b44645e2c2b56e555
parentf8f75fde6d6392aee2504df5bde05459d0b0c36f (diff)
downloadJRummikub-88292e9304afd644db9f54a526ecbe9bae314dd6.tar
JRummikub-88292e9304afd644db9f54a526ecbe9bae314dd6.zip
tested and implemented clone() in StoneTray
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@84 72836036-5685-4462-b002-a69064685172
-rw-r--r--src/jrummikub/model/StoneTray.java11
-rw-r--r--test/jrummikub/model/StoneTrayTest.java23
2 files changed, 31 insertions, 3 deletions
diff --git a/src/jrummikub/model/StoneTray.java b/src/jrummikub/model/StoneTray.java
index 7f97e1b..f215164 100644
--- a/src/jrummikub/model/StoneTray.java
+++ b/src/jrummikub/model/StoneTray.java
@@ -209,11 +209,16 @@ public class StoneTray<E extends Sizeable> implements
};
}
- /**
- * @param object
- */
public void pickUp(E object) {
objects.remove(object);
}
+
+
+ @Override
+ public StoneTray<E> clone() {
+ StoneTray<E> copy = new StoneTray();
+ copy.objects = (HashMap<E, Position>) objects.clone();
+ return copy;
+ }
}
diff --git a/test/jrummikub/model/StoneTrayTest.java b/test/jrummikub/model/StoneTrayTest.java
index 23d9ea0..3456229 100644
--- a/test/jrummikub/model/StoneTrayTest.java
+++ b/test/jrummikub/model/StoneTrayTest.java
@@ -150,6 +150,7 @@ public class StoneTrayTest {
for (Pair<Thing, Position> i : testTray) {
assertSame(i.getFirst(), secondThing);
}
+ assertTrue(testTray.iterator().hasNext());
}
@Test
@@ -185,4 +186,26 @@ public class StoneTrayTest {
assertTrue(testThings.isEmpty());
assertTrue(testPositions.isEmpty());
}
+
+ @Test
+ public void testClone() {
+ Thing firstThing = new Thing(5, 5);
+ testTray.drop(firstThing, new Position(0, 0));
+ Thing secondThing = new Thing(3, 3);
+ testTray.drop(secondThing, new Position(-5, -5));
+ StoneTray<Thing> trayCopy = testTray.clone();
+
+
+ testTray.pickUp(firstThing);
+ for (Pair<Thing, Position> i : testTray) {
+ assertSame(i.getFirst(), secondThing);
+ }
+ assertTrue(testTray.iterator().hasNext());
+
+ trayCopy.pickUp(secondThing);
+ for (Pair<Thing, Position> i : trayCopy) {
+ assertSame(i.getFirst(), firstThing);
+ }
+ assertTrue(trayCopy.iterator().hasNext());
+ }
}