[Cruce-commit] SF.net SVN: cruce:[108] Java/trunk/src/prc/bubulina/cruce
Status: Beta
Brought to you by:
caiusb
|
From: <ali...@us...> - 2010-04-09 09:18:54
|
Revision: 108
http://cruce.svn.sourceforge.net/cruce/?rev=108&view=rev
Author: alinposho
Date: 2010-04-09 09:18:48 +0000 (Fri, 09 Apr 2010)
Log Message:
-----------
Modified Paths:
--------------
Java/trunk/src/prc/bubulina/cruce/server/OrderKeeper.java
Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java
Java/trunk/src/prc/bubulina/cruce/server/ServerSidePlayer.java
Java/trunk/src/prc/bubulina/cruce/tests/server/OrderKeeperTest.java
Modified: Java/trunk/src/prc/bubulina/cruce/server/OrderKeeper.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/OrderKeeper.java 2010-04-08 16:35:52 UTC (rev 107)
+++ Java/trunk/src/prc/bubulina/cruce/server/OrderKeeper.java 2010-04-09 09:18:48 UTC (rev 108)
@@ -5,6 +5,18 @@
import java.util.Map.Entry;
public class OrderKeeper extends HashMap<Integer, ServerSidePlayer> {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -8527789594990649607L;
+
+ /**
+ * This will reorder the values stored in the HashMap so that the
+ * argument is the first followed by the value after it and so on.
+ * The keys will be always be fist key 0, second key one, and so one
+ * @param firstPlayer
+ */
public void resetOrder(ServerSidePlayer firstPlayer) {
int oldPosition = this.getOrder(firstPlayer);
Map<Integer, ServerSidePlayer> newPlayerOrder = new HashMap<Integer, ServerSidePlayer>();
@@ -20,10 +32,12 @@
this.clear();
this.putAll(newPlayerOrder);
}
+
public int getOrder(ServerSidePlayer player) {
for (Entry<Integer, ServerSidePlayer> p : this.entrySet())
if (p.getValue().equals(player))
return p.getKey();
return -1;
}
+
}
\ No newline at end of file
Modified: Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java 2010-04-08 16:35:52 UTC (rev 107)
+++ Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java 2010-04-09 09:18:48 UTC (rev 108)
@@ -54,7 +54,10 @@
do {
card = Card.getRandomCard();
} while (givenCards.contains(card));
-
+
+ //in order for givenCards.contains(card) to work properly you have to
+ //override equals(Object o) in Card
+
givenCards.add(card);
cards.add(card);
}
Modified: Java/trunk/src/prc/bubulina/cruce/server/ServerSidePlayer.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/ServerSidePlayer.java 2010-04-08 16:35:52 UTC (rev 107)
+++ Java/trunk/src/prc/bubulina/cruce/server/ServerSidePlayer.java 2010-04-09 09:18:48 UTC (rev 108)
@@ -9,7 +9,6 @@
private Player player;
private List<Card> cards;
- private int order;
public ServerSidePlayer(Player player) {
this.player = player;
Modified: Java/trunk/src/prc/bubulina/cruce/tests/server/OrderKeeperTest.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/tests/server/OrderKeeperTest.java 2010-04-08 16:35:52 UTC (rev 107)
+++ Java/trunk/src/prc/bubulina/cruce/tests/server/OrderKeeperTest.java 2010-04-09 09:18:48 UTC (rev 108)
@@ -1,13 +1,17 @@
package prc.bubulina.cruce.tests.server;
+import static org.junit.Assert.assertEquals;
+
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import java.util.Set;
+import java.util.Map.Entry;
import org.junit.Before;
import org.junit.Test;
import prc.bubulina.cruce.server.OrderKeeper;
-import prc.bubulina.cruce.server.RoundLogic;
import prc.bubulina.cruce.server.ServerSidePlayer;
import prc.bubulina.cruce.server.StartGameLogic;
import prc.bubulina.cruce.server.Team;
@@ -28,16 +32,61 @@
p2 = startGameLogic.setupPlayer("P2");
p3 = startGameLogic.setupPlayer("P3");
p4 = startGameLogic.setupPlayer("P4");
+ //Notice how the HashMap does't care about the team of the players
o.put(0, p1);
o.put(1, p2);
o.put(2, p3);
o.put(3, p4);
}
+ /**
+ * This will test the method resetOrder(ServerSydePlayer) with the number of the
+ * player to be set first given as an argument
+ * @param players
+ * @param firstPlayer The number of the player who shell be the first in the HashMap
+ */
+ private void testResetOrder(ServerSidePlayer[] players, int firstPlayer)
+ {
+ Set<Entry<Integer, ServerSidePlayer>> set = o.entrySet();
+ Iterator<Entry<Integer, ServerSidePlayer>> iterator = set.iterator();
+ int i = 0;
+
+ //Precondition check
+ while (iterator.hasNext())
+ {
+ Entry<Integer, ServerSidePlayer> entry = iterator.next();
+ assertEquals(i, (int) entry.getKey());
+ assertEquals(players[i], entry.getValue());
+ i++;
+ }
+
+ //Actual test
+ o.resetOrder(players[firstPlayer]);
+
+ set = o.entrySet();
+ iterator = set.iterator();
+ i = firstPlayer;
+ int j = 0;
+ //Precondition check
+ while (iterator.hasNext())
+ {
+ Entry<Integer, ServerSidePlayer> entry = iterator.next();
+ assertEquals(j, (int) entry.getKey());
+ assertEquals(players[i], entry.getValue());
+ i = (i + 1) % 4;
+ j++;
+ }
+ }
+
@Test
public void testResetOrder() {
- System.out.println(o);
- o.resetOrder(p3);
- System.out.println(o);
- }
+
+ for(int i = 0; i < 4; i++)
+ {
+ setUp();
+ ServerSidePlayer[] players = {p1, p2, p3, p4};
+ testResetOrder(players, i);
+ }
+ }
+
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|