More work on java tests.

This commit is contained in:
lotodore
2015-01-18 01:34:38 +01:00
parent eedd86e150
commit 046a2fbdc3
5 changed files with 232 additions and 146 deletions
@@ -60,8 +60,7 @@ public class CreateGameTest extends TestBase {
} }
msg = receiveMessage(); msg = receiveMessage();
if (msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_JoinGameAckMessage) if (msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_JoinGameAckMessage) {
{
assertTrue(msg.getLobbyMessage().getJoinGameAckMessage().getGameId() != 0); assertTrue(msg.getLobbyMessage().getJoinGameAckMessage().getGameId() != 0);
NetGameInfo receivedGameInfo = msg.getLobbyMessage().getJoinGameAckMessage().getGameInfo(); NetGameInfo receivedGameInfo = msg.getLobbyMessage().getJoinGameAckMessage().getGameInfo();
assertEquals(receivedGameInfo.getDelayBetweenHands(), gameInfo.getDelayBetweenHands()); assertEquals(receivedGameInfo.getDelayBetweenHands(), gameInfo.getDelayBetweenHands());
+78 -48
View File
@@ -26,9 +26,13 @@ import java.util.Collection;
import org.junit.Test; import org.junit.Test;
import de.pokerth.protocol.ProtoBuf.GameManagementMessage;
import de.pokerth.protocol.ProtoBuf.GameManagementMessage.GameManagementMessageType;
import de.pokerth.protocol.ProtoBuf.GameMessage;
import de.pokerth.protocol.ProtoBuf.NetGameInfo; import de.pokerth.protocol.ProtoBuf.NetGameInfo;
import de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification; import de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification;
import de.pokerth.protocol.ProtoBuf.StartEventAckMessage; import de.pokerth.protocol.ProtoBuf.StartEventAckMessage;
import de.pokerth.protocol.ProtoBuf.GameMessage.GameMessageType;
import de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode; import de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode;
import de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType; import de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType;
import de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType; import de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType;
@@ -47,7 +51,7 @@ public class RejoinGameTest extends TestBase {
// Waiting for player list update. // Waiting for player list update.
PokerTHMessage msg; PokerTHMessage msg;
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasPlayerListMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -62,22 +66,22 @@ public class RejoinGameTest extends TestBase {
// Game list update (new game) // Game list update (new game)
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListNewMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasGameListNewMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
// Join game ack. // Join game ack.
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasJoinGameAckMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Could not create game!"); fail("Could not create game!");
} }
int gameId = msg.getJoinGameAckMessage().getGameId(); int gameId = msg.getLobbyMessage().getJoinGameAckMessage().getGameId();
// Game list update (player joined). // Game list update (player joined).
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListPlayerJoinedMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasGameListPlayerJoinedMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -93,8 +97,9 @@ public class RejoinGameTest extends TestBase {
// Waiting for player list update. // Waiting for player list update.
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
} while (msg.hasGameListNewMessage() || msg.hasGameListPlayerJoinedMessage() || msg.hasGamePlayerJoinedMessage()); } while ((msg.hasLobbyMessage() && (msg.getLobbyMessage().hasGameListNewMessage() || msg.getLobbyMessage().hasGameListPlayerJoinedMessage()))
if (!msg.hasPlayerListMessage()) { || (msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasGamePlayerJoinedMessage()));
if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -102,24 +107,24 @@ public class RejoinGameTest extends TestBase {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasJoinGameAckMessage() && !msg.hasJoinGameFailedMessage()); } while (!(msg.hasLobbyMessage() && (msg.getLobbyMessage().hasJoinGameAckMessage() || msg.getLobbyMessage().hasJoinGameFailedMessage())));
if (!msg.hasJoinGameAckMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage())) {
fail("User " + username + " could not join ranking game."); fail("User " + username + " could not join ranking game.");
} }
// The player should have joined the game. // The player should have joined the game.
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasPlayerListMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGamePlayerJoinedMessage()) { if (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasGamePlayerJoinedMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListPlayerJoinedMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasGameListPlayerJoinedMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -127,7 +132,7 @@ public class RejoinGameTest extends TestBase {
// Server should automatically send start event. // Server should automatically send start event.
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasStartEventMessage()) { if (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasStartEventMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -135,16 +140,28 @@ public class RejoinGameTest extends TestBase {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasStartEventMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasStartEventMessage()));
} }
// Acknowledge start event. // Acknowledge start event.
StartEventAckMessage startAck = StartEventAckMessage.newBuilder() StartEventAckMessage startAck = StartEventAckMessage.newBuilder()
.setGameId(gameId)
.build(); .build();
GameManagementMessage gameManagement = GameManagementMessage.newBuilder()
.setMessageType(GameManagementMessageType.Type_StartEventAckMessage)
.setStartEventAckMessage(startAck)
.build();
GameMessage game = GameMessage.newBuilder()
.setGameId(gameId)
.setMessageType(GameMessageType.Type_GameManagementMessage)
.setGameManagementMessage(gameManagement)
.build();
msg = PokerTHMessage.newBuilder() msg = PokerTHMessage.newBuilder()
.setMessageType(PokerTHMessageType.Type_StartEventAckMessage) .setMessageType(PokerTHMessageType.Type_GameMessage)
.setStartEventAckMessage(startAck) .setGameMessage(game)
.build(); .build();
sendMessage(msg); sendMessage(msg);
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
sendMessage(msg, s[i]); sendMessage(msg, s[i]);
@@ -152,13 +169,13 @@ public class RejoinGameTest extends TestBase {
// Game list update (game now running). // Game list update (game now running).
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListUpdateMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasGameListUpdateMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameStartInitialMessage()) { if (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasGameStartInitialMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -173,7 +190,7 @@ public class RejoinGameTest extends TestBase {
failOnErrorMessage(inMsg); failOnErrorMessage(inMsg);
} }
} }
} while (!msg.hasHandStartMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameEngineMessage() && msg.getGameMessage().getGameEngineMessage().hasHandStartMessage()));
// Leave the game by closing the socket. // Leave the game by closing the socket.
sock.close(); sock.close();
@@ -185,9 +202,9 @@ public class RejoinGameTest extends TestBase {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasPlayerListMessage()); } while (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage()));
assertEquals(firstPlayerId, msg.getPlayerListMessage().getPlayerId()); assertEquals(firstPlayerId, msg.getLobbyMessage().getPlayerListMessage().getPlayerId());
assertEquals(PlayerListNotification.playerListLeft, msg.getPlayerListMessage().getPlayerListNotification()); assertEquals(PlayerListNotification.playerListLeft, msg.getLobbyMessage().getPlayerListMessage().getPlayerListNotification());
} }
sock = new Socket("localhost", 7234); sock = new Socket("localhost", 7234);
@@ -197,8 +214,9 @@ public class RejoinGameTest extends TestBase {
// Waiting for player list update. // Waiting for player list update.
do { do {
msg = receiveMessage(); msg = receiveMessage();
} while (msg.hasGameListNewMessage() || msg.hasGameListPlayerJoinedMessage() || msg.hasGamePlayerJoinedMessage()); } while ((msg.hasLobbyMessage() && (msg.getLobbyMessage().hasGameListNewMessage() || msg.getLobbyMessage().hasGameListPlayerJoinedMessage()))
if (!msg.hasPlayerListMessage()) { || (msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasGamePlayerJoinedMessage()));
if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -207,8 +225,8 @@ public class RejoinGameTest extends TestBase {
do { do {
msg = receiveMessage(); msg = receiveMessage();
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasJoinGameAckMessage() && !msg.hasJoinGameFailedMessage()); } while (!(msg.hasLobbyMessage() && (msg.getLobbyMessage().hasJoinGameAckMessage() || msg.getLobbyMessage().hasJoinGameFailedMessage())));
if (!msg.hasJoinGameAckMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage())) {
fail("User " + AuthUser + " could not rejoin normal game."); fail("User " + AuthUser + " could not rejoin normal game.");
} }
@@ -217,63 +235,75 @@ public class RejoinGameTest extends TestBase {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasPlayerListMessage()); } while (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage()));
assertEquals(firstPlayerIdAfterRejoin, msg.getPlayerListMessage().getPlayerId()); assertEquals(firstPlayerIdAfterRejoin, msg.getLobbyMessage().getPlayerListMessage().getPlayerId());
assertEquals(PlayerListNotification.playerListNew, msg.getPlayerListMessage().getPlayerListNotification()); assertEquals(PlayerListNotification.playerListNew, msg.getLobbyMessage().getPlayerListMessage().getPlayerListNotification());
} }
// Wait for start event. // Wait for start event.
do { do {
msg = receiveMessage(); msg = receiveMessage();
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasStartEventMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasStartEventMessage()));
assertEquals(gameId, msg.getStartEventMessage().getGameId()); assertEquals(gameId, msg.getGameMessage().getGameId());
assertEquals(StartEventType.rejoinEvent, msg.getStartEventMessage().getStartEventType()); assertEquals(StartEventType.rejoinEvent, msg.getGameMessage().getGameManagementMessage().getStartEventMessage().getStartEventType());
// Acknowledge start event. // Acknowledge start event.
startAck = StartEventAckMessage.newBuilder() startAck = StartEventAckMessage.newBuilder()
.setGameId(gameId) .build();
.build();
gameManagement = GameManagementMessage.newBuilder()
.setMessageType(GameManagementMessageType.Type_StartEventAckMessage)
.setStartEventAckMessage(startAck)
.build();
game = GameMessage.newBuilder()
.setGameId(gameId)
.setMessageType(GameMessageType.Type_GameManagementMessage)
.setGameManagementMessage(gameManagement)
.build();
msg = PokerTHMessage.newBuilder() msg = PokerTHMessage.newBuilder()
.setMessageType(PokerTHMessageType.Type_StartEventAckMessage) .setMessageType(PokerTHMessageType.Type_GameMessage)
.setStartEventAckMessage(startAck) .setGameMessage(game)
.build(); .build();
sendMessage(msg); sendMessage(msg);
// Wait for game start. This may take a while, because rejoin is performed at the beginning of the next hand. // Wait for game start. This may take a while, because rejoin is performed at the beginning of the next hand.
do { do {
msg = receiveMessage(); msg = receiveMessage();
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasGameStartRejoinMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasGameStartRejoinMessage()));
// Check whether we got all necessary data to rejoin. // Check whether we got all necessary data to rejoin.
assertEquals(gameId, msg.getGameStartRejoinMessage().getGameId()); assertEquals(gameId, msg.getGameMessage().getGameId());
// We left at the first hand. // We left at the first hand.
assertEquals(1, msg.getGameStartRejoinMessage().getHandNum()); assertEquals(1, msg.getGameMessage().getGameManagementMessage().getGameStartRejoinMessage().getHandNum());
// 10 Players should now be active again. // 10 Players should now be active again.
assertEquals(10, msg.getGameStartRejoinMessage().getRejoinPlayerDataCount()); assertEquals(10, msg.getGameMessage().getGameManagementMessage().getGameStartRejoinMessage().getRejoinPlayerDataCount());
// All other players should have received "player id changed". // All other players should have received "player id changed".
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasPlayerIdChangedMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasPlayerIdChangedMessage()));
assertEquals(firstPlayerId, msg.getPlayerIdChangedMessage().getOldPlayerId()); assertEquals(firstPlayerId, msg.getGameMessage().getGameManagementMessage().getPlayerIdChangedMessage().getOldPlayerId());
assertEquals(firstPlayerIdAfterRejoin, msg.getPlayerIdChangedMessage().getNewPlayerId()); assertEquals(firstPlayerIdAfterRejoin, msg.getGameMessage().getGameManagementMessage().getPlayerIdChangedMessage().getNewPlayerId());
} }
// Everyone should receive a "hand start message" now. // Everyone should receive a "hand start message" now.
do { do {
msg = receiveMessage(); msg = receiveMessage();
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasHandStartMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameEngineMessage() && msg.getGameMessage().getGameEngineMessage().hasHandStartMessage()));
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasHandStartMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameEngineMessage() && msg.getGameMessage().getGameEngineMessage().hasHandStartMessage()));
} }
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
@@ -28,8 +28,12 @@ import java.util.Collection;
import org.junit.Test; import org.junit.Test;
import de.pokerth.protocol.ProtoBuf.GameManagementMessage;
import de.pokerth.protocol.ProtoBuf.GameMessage;
import de.pokerth.protocol.ProtoBuf.NetGameInfo; import de.pokerth.protocol.ProtoBuf.NetGameInfo;
import de.pokerth.protocol.ProtoBuf.StartEventAckMessage; import de.pokerth.protocol.ProtoBuf.StartEventAckMessage;
import de.pokerth.protocol.ProtoBuf.GameManagementMessage.GameManagementMessageType;
import de.pokerth.protocol.ProtoBuf.GameMessage.GameMessageType;
import de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode; import de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode;
import de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType; import de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType;
import de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification; import de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification;
@@ -53,7 +57,7 @@ public class RejoinMultiGameTest extends TestBase {
// Waiting for player list update. // Waiting for player list update.
PokerTHMessage msg; PokerTHMessage msg;
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasPlayerListMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -68,22 +72,22 @@ public class RejoinMultiGameTest extends TestBase {
// Game list update (new game) // Game list update (new game)
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListNewMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasGameListNewMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
// Join game ack. // Join game ack.
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasJoinGameAckMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Could not create game!"); fail("Could not create game!");
} }
int gameId = msg.getJoinGameAckMessage().getGameId(); int gameId = msg.getLobbyMessage().getJoinGameAckMessage().getGameId();
// Game list update (player joined). // Game list update (player joined).
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListPlayerJoinedMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasGameListPlayerJoinedMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -101,8 +105,9 @@ public class RejoinMultiGameTest extends TestBase {
// Waiting for player list update. // Waiting for player list update.
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
} while (msg.hasGameListNewMessage() || msg.hasGameListPlayerJoinedMessage() || msg.hasGamePlayerJoinedMessage()); } while ((msg.hasLobbyMessage() && (msg.getLobbyMessage().hasGameListNewMessage() || msg.getLobbyMessage().hasGameListPlayerJoinedMessage()))
if (!msg.hasPlayerListMessage()) { || (msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasGamePlayerJoinedMessage()));
if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -110,24 +115,24 @@ public class RejoinMultiGameTest extends TestBase {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasJoinGameAckMessage() && !msg.hasJoinGameFailedMessage()); } while (!(msg.hasLobbyMessage() && (msg.getLobbyMessage().hasJoinGameAckMessage() || msg.getLobbyMessage().hasJoinGameFailedMessage())));
if (!msg.hasJoinGameAckMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage())) {
fail("User " + username + " could not join ranking game."); fail("User " + username + " could not join ranking game.");
} }
// The player should have joined the game. // The player should have joined the game.
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasPlayerListMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGamePlayerJoinedMessage()) { if (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasGamePlayerJoinedMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListPlayerJoinedMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasGameListPlayerJoinedMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -135,7 +140,7 @@ public class RejoinMultiGameTest extends TestBase {
// Server should automatically send start event. // Server should automatically send start event.
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasStartEventMessage()) { if (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasStartEventMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -143,16 +148,28 @@ public class RejoinMultiGameTest extends TestBase {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasStartEventMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasStartEventMessage()));
} }
// Acknowledge start event. // Acknowledge start event.
StartEventAckMessage startAck = StartEventAckMessage.newBuilder() StartEventAckMessage startAck = StartEventAckMessage.newBuilder()
.setGameId(gameId) .build();
.build();
GameManagementMessage gameManagement = GameManagementMessage.newBuilder()
.setMessageType(GameManagementMessageType.Type_StartEventAckMessage)
.setStartEventAckMessage(startAck)
.build();
GameMessage game = GameMessage.newBuilder()
.setGameId(gameId)
.setMessageType(GameMessageType.Type_GameManagementMessage)
.setGameManagementMessage(gameManagement)
.build();
msg = PokerTHMessage.newBuilder() msg = PokerTHMessage.newBuilder()
.setMessageType(PokerTHMessageType.Type_StartEventAckMessage) .setMessageType(PokerTHMessageType.Type_GameMessage)
.setStartEventAckMessage(startAck) .setGameMessage(game)
.build(); .build();
sendMessage(msg); sendMessage(msg);
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
sendMessage(msg, s[i]); sendMessage(msg, s[i]);
@@ -160,13 +177,13 @@ public class RejoinMultiGameTest extends TestBase {
// Game list update (game now running). // Game list update (game now running).
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListUpdateMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasGameListUpdateMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameStartInitialMessage()) { if (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasGameStartInitialMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -181,7 +198,7 @@ public class RejoinMultiGameTest extends TestBase {
failOnErrorMessage(inMsg); failOnErrorMessage(inMsg);
} }
} }
} while (!msg.hasHandStartMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameEngineMessage() && msg.getGameMessage().getGameEngineMessage().hasHandStartMessage()));
// 9 players leave the game by closing the socket. // 9 players leave the game by closing the socket.
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
@@ -196,9 +213,9 @@ public class RejoinMultiGameTest extends TestBase {
do { do {
msg = receiveMessage(); msg = receiveMessage();
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasPlayerListMessage()); } while (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage()));
assertEquals(playerId[i], msg.getPlayerListMessage().getPlayerId()); assertEquals(playerId[i], msg.getLobbyMessage().getPlayerListMessage().getPlayerId());
assertEquals(PlayerListNotification.playerListLeft, msg.getPlayerListMessage().getPlayerListNotification()); assertEquals(PlayerListNotification.playerListLeft, msg.getLobbyMessage().getPlayerListMessage().getPlayerListNotification());
} }
// Let all players reconnect. // Let all players reconnect.
@@ -212,8 +229,9 @@ public class RejoinMultiGameTest extends TestBase {
// Waiting for player list update. // Waiting for player list update.
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
} while (msg.hasGameListNewMessage() || msg.hasGameListPlayerJoinedMessage() || msg.hasGamePlayerJoinedMessage()); } while ((msg.hasLobbyMessage() && (msg.getLobbyMessage().hasGameListNewMessage() || msg.getLobbyMessage().hasGameListPlayerJoinedMessage()))
if (!msg.hasPlayerListMessage()) { || (msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasGamePlayerJoinedMessage()));
if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -221,8 +239,8 @@ public class RejoinMultiGameTest extends TestBase {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasJoinGameAckMessage() && !msg.hasJoinGameFailedMessage()); } while (!(msg.hasLobbyMessage() && (msg.getLobbyMessage().hasJoinGameAckMessage() || msg.getLobbyMessage().hasJoinGameFailedMessage())));
if (!msg.hasJoinGameAckMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage())) {
fail("User " + username + " could not rejoin ranking game."); fail("User " + username + " could not rejoin ranking game.");
} }
} }
@@ -231,9 +249,9 @@ public class RejoinMultiGameTest extends TestBase {
do { do {
msg = receiveMessage(); msg = receiveMessage();
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasPlayerListMessage()); } while (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage()));
assertEquals(playerIdAfterRejoin[i], msg.getPlayerListMessage().getPlayerId()); assertEquals(playerIdAfterRejoin[i], msg.getLobbyMessage().getPlayerListMessage().getPlayerId());
assertEquals(PlayerListNotification.playerListNew, msg.getPlayerListMessage().getPlayerListNotification()); assertEquals(PlayerListNotification.playerListNew, msg.getLobbyMessage().getPlayerListMessage().getPlayerListNotification());
} }
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
@@ -241,19 +259,31 @@ public class RejoinMultiGameTest extends TestBase {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasStartEventMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasStartEventMessage()));
assertEquals(gameId, msg.getStartEventMessage().getGameId()); assertEquals(gameId, msg.getGameMessage().getGameId());
assertEquals(StartEventType.rejoinEvent, msg.getStartEventMessage().getStartEventType()); assertEquals(StartEventType.rejoinEvent, msg.getGameMessage().getGameManagementMessage().getStartEventMessage().getStartEventType());
// Acknowledge start event. // Acknowledge start event.
startAck = StartEventAckMessage.newBuilder() startAck = StartEventAckMessage.newBuilder()
.setGameId(gameId) .build();
.build();
gameManagement = GameManagementMessage.newBuilder()
.setMessageType(GameManagementMessageType.Type_StartEventAckMessage)
.setStartEventAckMessage(startAck)
.build();
game = GameMessage.newBuilder()
.setGameId(gameId)
.setMessageType(GameMessageType.Type_GameManagementMessage)
.setGameManagementMessage(gameManagement)
.build();
msg = PokerTHMessage.newBuilder() msg = PokerTHMessage.newBuilder()
.setMessageType(PokerTHMessageType.Type_StartEventAckMessage) .setMessageType(PokerTHMessageType.Type_GameMessage)
.setStartEventAckMessage(startAck) .setGameMessage(game)
.build(); .build();
sendMessage(msg, s[i]); sendMessage(msg, s[i]);
} }
@@ -262,14 +292,14 @@ public class RejoinMultiGameTest extends TestBase {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasGameStartRejoinMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasGameStartRejoinMessage()));
// Check whether we got all necessary data to rejoin. // Check whether we got all necessary data to rejoin.
assertEquals(gameId, msg.getGameStartRejoinMessage().getGameId()); assertEquals(gameId, msg.getGameMessage().getGameId());
// We left at the first hand. // We left at the first hand.
assertTrue(msg.getGameStartRejoinMessage().getHandNum() >= 1); assertTrue(msg.getGameMessage().getGameManagementMessage().getGameStartRejoinMessage().getHandNum() >= 1);
// 10 Players should now be active again. // 10 Players should now be active again.
assertEquals(10, msg.getGameStartRejoinMessage().getRejoinPlayerDataCount()); assertEquals(10, msg.getGameMessage().getGameManagementMessage().getGameStartRejoinMessage().getRejoinPlayerDataCount());
} }
// The remaining player should have received 9 "player id changed". // The remaining player should have received 9 "player id changed".
@@ -277,28 +307,28 @@ public class RejoinMultiGameTest extends TestBase {
do { do {
msg = receiveMessage(); msg = receiveMessage();
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasPlayerIdChangedMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasPlayerIdChangedMessage()));
assertEquals(playerId[i], msg.getPlayerIdChangedMessage().getOldPlayerId()); assertEquals(playerId[i], msg.getGameMessage().getGameManagementMessage().getPlayerIdChangedMessage().getOldPlayerId());
assertEquals(playerIdAfterRejoin[i], msg.getPlayerIdChangedMessage().getNewPlayerId()); assertEquals(playerIdAfterRejoin[i], msg.getGameMessage().getGameManagementMessage().getPlayerIdChangedMessage().getNewPlayerId());
} }
// Everyone should receive a "hand start message" now. // Everyone should receive a "hand start message" now.
do { do {
msg = receiveMessage(); msg = receiveMessage();
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasHandStartMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameEngineMessage() && msg.getGameMessage().getGameEngineMessage().hasHandStartMessage()));
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
do { do {
msg = receiveMessage(s[i]); msg = receiveMessage(s[i]);
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasHandStartMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameEngineMessage() && msg.getGameMessage().getGameEngineMessage().hasHandStartMessage()));
} }
// The game should continue to the end. // The game should continue to the end.
do { do {
msg = receiveMessage(); msg = receiveMessage();
failOnErrorMessage(msg); failOnErrorMessage(msg);
} while (!msg.hasEndOfGameMessage()); } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasEndOfGameMessage()));
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
s[i].close(); s[i].close();
@@ -27,15 +27,18 @@ import java.util.Iterator;
import org.junit.Test; import org.junit.Test;
import de.pokerth.protocol.ProtoBuf.GameManagementMessage.GameManagementMessageType;
import de.pokerth.protocol.ProtoBuf.GameMessage.GameMessageType;
import de.pokerth.protocol.ProtoBuf.LobbyMessage.LobbyMessageType;
import de.pokerth.protocol.ProtoBuf.GameManagementMessage;
import de.pokerth.protocol.ProtoBuf.GameMessage;
import de.pokerth.protocol.ProtoBuf.NetGameInfo; import de.pokerth.protocol.ProtoBuf.NetGameInfo;
import de.pokerth.protocol.ProtoBuf.PlayerResult; import de.pokerth.protocol.ProtoBuf.PlayerResult;
import de.pokerth.protocol.ProtoBuf.StartEventAckMessage; import de.pokerth.protocol.ProtoBuf.StartEventAckMessage;
import de.pokerth.protocol.ProtoBuf.StartEventMessage;
import de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode; import de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode;
import de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType; import de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType;
import de.pokerth.protocol.ProtoBuf.PokerTHMessage; import de.pokerth.protocol.ProtoBuf.PokerTHMessage;
import de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType; import de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType;
import de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType;
public class RunNormalGameTest extends TestBase { public class RunNormalGameTest extends TestBase {
@@ -55,53 +58,63 @@ public class RunNormalGameTest extends TestBase {
// Waiting for player list update. // Waiting for player list update.
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasPlayerListMessage() || msg.getMessageType() != PokerTHMessageType.Type_PlayerListMessage) { if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasPlayerListMessage() || msg.getLobbyMessage().getMessageType() != LobbyMessageType.Type_PlayerListMessage) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
// Game list update (new game) // Game list update (new game)
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListNewMessage() || msg.getMessageType() != PokerTHMessageType.Type_GameListNewMessage) { if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasGameListNewMessage() || msg.getLobbyMessage().getMessageType() != LobbyMessageType.Type_GameListNewMessage) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
// Join game ack. // Join game ack.
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasJoinGameAckMessage() || msg.getMessageType() != PokerTHMessageType.Type_JoinGameAckMessage) { if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasJoinGameAckMessage() || msg.getLobbyMessage().getMessageType() != LobbyMessageType.Type_JoinGameAckMessage) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Could not create game!"); fail("Could not create game!");
} }
int gameId = msg.getJoinGameAckMessage().getGameId(); int gameId = msg.getLobbyMessage().getJoinGameAckMessage().getGameId();
// Game list update (player joined). // Game list update (player joined).
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListPlayerJoinedMessage() || msg.getMessageType() != PokerTHMessageType.Type_GameListPlayerJoinedMessage) { if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasGameListPlayerJoinedMessage() || msg.getLobbyMessage().getMessageType() != LobbyMessageType.Type_GameListPlayerJoinedMessage) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
StartEventMessage startMsg = StartEventMessage.newBuilder() StartEventAckMessage startAck = StartEventAckMessage.newBuilder()
.build();
GameManagementMessage gameManagement = GameManagementMessage.newBuilder()
.setMessageType(GameManagementMessageType.Type_StartEventAckMessage)
.setStartEventAckMessage(startAck)
.build();
GameMessage game = GameMessage.newBuilder()
.setGameId(gameId) .setGameId(gameId)
.setFillWithComputerPlayers(true) .setMessageType(GameMessageType.Type_GameManagementMessage)
.setStartEventType(StartEventType.startEvent) .setGameManagementMessage(gameManagement)
.build(); .build();
msg = PokerTHMessage.newBuilder() msg = PokerTHMessage.newBuilder()
.setMessageType(PokerTHMessageType.Type_StartEventMessage) .setMessageType(PokerTHMessageType.Type_GameMessage)
.setStartEventMessage(startMsg) .setGameMessage(game)
.build(); .build();
sendMessage(msg); sendMessage(msg);
// Now the computer players should join. // Now the computer players should join.
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGamePlayerJoinedMessage() || msg.getMessageType() != PokerTHMessageType.Type_GamePlayerJoinedMessage) { if (!msg.hasGameMessage() || !msg.getGameMessage().hasGameManagementMessage() || !msg.getGameMessage().getGameManagementMessage().hasGamePlayerJoinedMessage() || msg.getGameMessage().getGameManagementMessage().getMessageType() != GameManagementMessageType.Type_GamePlayerJoinedMessage) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListPlayerJoinedMessage() || msg.getMessageType() != PokerTHMessageType.Type_GameListPlayerJoinedMessage) { if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasGameListPlayerJoinedMessage() || msg.getLobbyMessage().getMessageType() != LobbyMessageType.Type_GameListPlayerJoinedMessage) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -109,29 +122,41 @@ public class RunNormalGameTest extends TestBase {
// Server should confirm start event. // Server should confirm start event.
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasStartEventMessage() || msg.getMessageType() != PokerTHMessageType.Type_StartEventMessage) { if (!msg.hasGameMessage() || !msg.getGameMessage().hasGameManagementMessage() || !msg.getGameMessage().getGameManagementMessage().hasStartEventMessage() || msg.getGameMessage().getGameManagementMessage().getMessageType() != GameManagementMessageType.Type_StartEventMessage) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
// Acknowledge start event. // Acknowledge start event.
StartEventAckMessage startAck = StartEventAckMessage.newBuilder() startAck = StartEventAckMessage.newBuilder()
.setGameId(gameId) .build();
.build();
gameManagement = GameManagementMessage.newBuilder()
.setMessageType(GameManagementMessageType.Type_StartEventAckMessage)
.setStartEventAckMessage(startAck)
.build();
game = GameMessage.newBuilder()
.setGameId(gameId)
.setMessageType(GameMessageType.Type_GameManagementMessage)
.setGameManagementMessage(gameManagement)
.build();
msg = PokerTHMessage.newBuilder() msg = PokerTHMessage.newBuilder()
.setMessageType(PokerTHMessageType.Type_StartEventAckMessage) .setMessageType(PokerTHMessageType.Type_GameMessage)
.setStartEventAckMessage(startAck) .setGameMessage(game)
.build(); .build();
sendMessage(msg); sendMessage(msg);
// Game list update (game now running). // Game list update (game now running).
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListUpdateMessage() || msg.getMessageType() != PokerTHMessageType.Type_GameListUpdateMessage) { if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasGameListUpdateMessage() || msg.getLobbyMessage().getMessageType() != LobbyMessageType.Type_GameListUpdateMessage) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameStartInitialMessage() || msg.getMessageType() != PokerTHMessageType.Type_GameStartInitialMessage) { if (!msg.hasGameMessage() || !msg.getGameMessage().hasGameManagementMessage() || !msg.getGameMessage().getGameManagementMessage().hasGameStartInitialMessage() || msg.getGameMessage().getGameManagementMessage().getMessageType() != GameManagementMessageType.Type_GameStartInitialMessage) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -139,10 +164,10 @@ public class RunNormalGameTest extends TestBase {
long lastPlayerMoney = 0; long lastPlayerMoney = 0;
do { do {
msg = receiveMessage(); msg = receiveMessage();
if (msg.hasEndOfHandHideCardsMessage()) { if (msg.hasGameMessage() && msg.getGameMessage().hasGameEngineMessage() && msg.getGameMessage().getGameEngineMessage().hasEndOfHandHideCardsMessage()) {
lastPlayerMoney = msg.getEndOfHandHideCardsMessage().getPlayerMoney(); lastPlayerMoney = msg.getGameMessage().getGameEngineMessage().getEndOfHandHideCardsMessage().getPlayerMoney();
} else if (msg.hasEndOfHandShowCardsMessage()) { } else if (msg.getGameMessage().getGameEngineMessage().hasEndOfHandShowCardsMessage()) {
Collection<PlayerResult> result = msg.getEndOfHandShowCardsMessage().getPlayerResultsList(); Collection<PlayerResult> result = msg.getGameMessage().getGameEngineMessage().getEndOfHandShowCardsMessage().getPlayerResultsList();
assertFalse(result.isEmpty()); assertFalse(result.isEmpty());
long maxPlayerMoney = 0; long maxPlayerMoney = 0;
for (Iterator<PlayerResult> it = result.iterator(); it.hasNext(); ) { for (Iterator<PlayerResult> it = result.iterator(); it.hasNext(); ) {
@@ -155,18 +180,20 @@ public class RunNormalGameTest extends TestBase {
lastPlayerMoney = maxPlayerMoney; lastPlayerMoney = maxPlayerMoney;
} }
} while ( } while (
msg.hasHandStartMessage() msg.hasGameMessage()
|| msg.hasDealFlopCardsMessage() && ((msg.getGameMessage().hasGameEngineMessage() &&
|| msg.hasDealRiverCardMessage() (msg.getGameMessage().getGameEngineMessage().hasHandStartMessage()
|| msg.hasDealTurnCardMessage() || msg.getGameMessage().getGameEngineMessage().hasDealFlopCardsMessage()
|| msg.hasPlayersTurnMessage() || msg.getGameMessage().getGameEngineMessage().hasDealRiverCardMessage()
|| msg.hasPlayersActionDoneMessage() || msg.getGameMessage().getGameEngineMessage().hasDealTurnCardMessage()
|| msg.hasEndOfHandHideCardsMessage() || msg.getGameMessage().getGameEngineMessage().hasPlayersTurnMessage()
|| msg.hasEndOfHandShowCardsMessage() || msg.getGameMessage().getGameEngineMessage().hasPlayersActionDoneMessage()
|| msg.hasAllInShowCardsMessage() || msg.getGameMessage().getGameEngineMessage().hasEndOfHandHideCardsMessage()
|| msg.hasTimeoutWarningMessage() || msg.getGameMessage().getGameEngineMessage().hasEndOfHandShowCardsMessage()
); || msg.getGameMessage().getGameEngineMessage().hasAllInShowCardsMessage()))
if (!msg.hasEndOfGameMessage() || msg.getMessageType() != PokerTHMessageType.Type_EndOfGameMessage) { || ((msg.getGameMessage().hasGameManagementMessage() &&
msg.getGameMessage().getGameManagementMessage().hasTimeoutWarningMessage()))));
if (!msg.hasGameMessage() || !msg.getGameMessage().hasGameManagementMessage() || !msg.getGameMessage().getGameManagementMessage().hasEndOfGameMessage() || msg.getGameMessage().getGameManagementMessage().getMessageType() != GameManagementMessageType.Type_EndOfGameMessage) {
fail("No end of game received."); fail("No end of game received.");
} }
// Last player money should be sum of all money. // Last player money should be sum of all money.
@@ -175,12 +202,12 @@ public class RunNormalGameTest extends TestBase {
// Now the computer players should leave. // Now the computer players should leave.
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGamePlayerLeftMessage()) { if (!msg.hasGameMessage() || !msg.getGameMessage().hasGameManagementMessage() || !msg.getGameMessage().getGameManagementMessage().hasGamePlayerLeftMessage()) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListPlayerLeftMessage()) { if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasGameListPlayerLeftMessage()) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -55,7 +55,7 @@ public class RunRankingGameTest extends TestBase {
// Waiting for player list update. // Waiting for player list update.
PokerTHMessage msg; PokerTHMessage msg;
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasPlayerListMessage()) { if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasPlayerListMessage()) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
@@ -70,21 +70,21 @@ public class RunRankingGameTest extends TestBase {
// Game list update (new game) // Game list update (new game)
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListNewMessage()) { if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasGameListNewMessage()) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }
// Join game ack. // Join game ack.
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasJoinGameAckMessage()) { if (!msg.hasLobbyMessage() || msg.getLobbyMessage().hasJoinGameAckMessage()) {
fail("Could not create game!"); fail("Could not create game!");
} }
int gameId = msg.getJoinGameAckMessage().getGameId(); int gameId = msg.getLobbyMessage().getJoinGameAckMessage().getGameId();
// Game list update (player joined). // Game list update (player joined).
msg = receiveMessage(); msg = receiveMessage();
if (!msg.hasGameListPlayerJoinedMessage()) { if (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasGameListPlayerJoinedMessage())) {
failOnErrorMessage(msg); failOnErrorMessage(msg);
fail("Invalid message."); fail("Invalid message.");
} }