From fa4df857e4b77d5364b1923b618f5c5baa656cb4 Mon Sep 17 00:00:00 2001 From: lotodore Date: Tue, 6 Jan 2015 00:37:23 +0100 Subject: [PATCH] Fixing some of the java test cases. Still incomplete. --- .../de/pokerth/test/BlockedPlayerTest.java | 22 ++- tests/src/de/pokerth/test/ChatTest.java | 180 +++++++++++------- tests/src/de/pokerth/test/CreateGameTest.java | 12 +- .../pokerth/test/CreateRankingGameTest.java | 14 +- tests/src/de/pokerth/test/TestBase.java | 168 +++++++++++----- 5 files changed, 254 insertions(+), 142 deletions(-) diff --git a/tests/src/de/pokerth/test/BlockedPlayerTest.java b/tests/src/de/pokerth/test/BlockedPlayerTest.java index f610dab4..d39f33e3 100644 --- a/tests/src/de/pokerth/test/BlockedPlayerTest.java +++ b/tests/src/de/pokerth/test/BlockedPlayerTest.java @@ -28,9 +28,12 @@ import org.junit.Test; import com.google.protobuf.ByteString; import de.pokerth.protocol.ProtoBuf.AnnounceMessage; +import de.pokerth.protocol.ProtoBuf.AuthClientRequestMessage; +import de.pokerth.protocol.ProtoBuf.AuthMessage; import de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason; -import de.pokerth.protocol.ProtoBuf.InitMessage; import de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType; +import de.pokerth.protocol.ProtoBuf.AuthMessage.AuthMessageType; +import de.pokerth.protocol.ProtoBuf.LobbyMessage.LobbyMessageType; import de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType; import de.pokerth.protocol.ProtoBuf.PokerTHMessage; @@ -49,22 +52,25 @@ public class BlockedPlayerTest extends TestBase { .setMajorVersion(PROTOCOL_VERSION_MAJOR) .setMinorVersion(PROTOCOL_VERSION_MINOR) .build(); - InitMessage init = InitMessage.newBuilder() + AuthClientRequestMessage init = AuthClientRequestMessage.newBuilder() .setBuildId(0) - .setLogin(InitMessage.LoginType.authenticatedLogin) + .setLogin(AuthClientRequestMessage.LoginType.authenticatedLogin) .setRequestedVersion(requestedVersion) .setClientUserData(ByteString.copyFromUtf8(scramAuth.executeStep1("test9999"))) .build(); - + AuthMessage auth = AuthMessage.newBuilder() + .setMessageType(AuthMessageType.Type_AuthClientRequestMessage) + .setAuthClientRequestMessage(init) + .build(); msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_InitMessage) - .setInitMessage(init) + .setMessageType(PokerTHMessageType.Type_AuthMessage) + .setAuthMessage(auth) .build(); sendMessage(msg, sock); msg = receiveMessage(sock); - assertTrue(msg.hasErrorMessage() && msg.getMessageType() == PokerTHMessageType.Type_ErrorMessage); - assertEquals(ErrorReason.blockedByServer, msg.getErrorMessage().getErrorReason()); + assertTrue(msg.hasLobbyMessage() && msg.getLobbyMessage().hasErrorMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_ErrorMessage); + assertEquals(ErrorReason.blockedByServer, msg.getLobbyMessage().getErrorMessage().getErrorReason()); } @Test diff --git a/tests/src/de/pokerth/test/ChatTest.java b/tests/src/de/pokerth/test/ChatTest.java index 589bbda0..df744e69 100644 --- a/tests/src/de/pokerth/test/ChatTest.java +++ b/tests/src/de/pokerth/test/ChatTest.java @@ -27,8 +27,15 @@ import org.junit.Test; import de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType; import de.pokerth.protocol.ProtoBuf.ChatRequestMessage; +import de.pokerth.protocol.ProtoBuf.ErrorMessage; +import de.pokerth.protocol.ProtoBuf.GameManagementMessage.GameManagementMessageType; +import de.pokerth.protocol.ProtoBuf.GameMessage; +import de.pokerth.protocol.ProtoBuf.GameMessage.GameMessageType; +import de.pokerth.protocol.ProtoBuf.GameManagementMessage; +import de.pokerth.protocol.ProtoBuf.LobbyMessage; import de.pokerth.protocol.ProtoBuf.NetGameInfo; import de.pokerth.protocol.ProtoBuf.StartEventAckMessage; +import de.pokerth.protocol.ProtoBuf.LobbyMessage.LobbyMessageType; import de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode; import de.pokerth.protocol.ProtoBuf.PokerTHMessage; import de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType; @@ -45,21 +52,33 @@ public class ChatTest extends TestBase { ChatRequestMessage chatLobby = ChatRequestMessage.newBuilder() .setChatText(chatText) .build(); - PokerTHMessage msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_ChatRequestMessage) + LobbyMessage lobby = LobbyMessage.newBuilder() + .setMessageType(LobbyMessageType.Type_ChatRequestMessage) .setChatRequestMessage(chatLobby) .build(); + PokerTHMessage msg = PokerTHMessage.newBuilder() + .setMessageType(PokerTHMessageType.Type_LobbyMessage) + .setLobbyMessage(lobby) + .build(); return msg; } PokerTHMessage createGameChatMsg(String chatText, int gameId) { ChatRequestMessage chatGame = ChatRequestMessage.newBuilder() .setChatText(chatText) - .setTargetGameId(gameId) + .build(); + GameManagementMessage gameManagment = GameManagementMessage.newBuilder() + .setMessageType(GameManagementMessageType.Type_ChatRequestMessage) + .setChatRequestMessage(chatGame) + .build(); + GameMessage game = GameMessage.newBuilder() + .setMessageType(GameMessageType.Type_GameManagementMessage) + .setGameManagementMessage(gameManagment) + .setGameId(gameId) .build(); PokerTHMessage msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_ChatRequestMessage) - .setChatRequestMessage(chatGame) + .setMessageType(PokerTHMessageType.Type_GameMessage) + .setGameMessage(game) .build(); return msg; } @@ -69,10 +88,14 @@ public class ChatTest extends TestBase { .setChatText(chatText) .setTargetPlayerId(playerId) .build(); - PokerTHMessage msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_ChatRequestMessage) + LobbyMessage lobby = LobbyMessage.newBuilder() + .setMessageType(LobbyMessageType.Type_ChatRequestMessage) .setChatRequestMessage(chatPrivate) .build(); + PokerTHMessage msg = PokerTHMessage.newBuilder() + .setMessageType(PokerTHMessageType.Type_LobbyMessage) + .setLobbyMessage(lobby) + .build(); return msg; } @@ -94,62 +117,47 @@ public class ChatTest extends TestBase { sendMessage(msg); do { msg = receiveMessage(); - } while (msg.hasPlayerListMessage()); - assertTrue(msg.hasChatRejectMessage()); - assertEquals(ChatText + 1, msg.getChatRejectMessage().getChatText()); + } while (msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage()); + assertTrue(msg.hasLobbyMessage() && msg.getLobbyMessage().hasChatRejectMessage()); + assertEquals(ChatText + 1, msg.getLobbyMessage().getChatRejectMessage().getChatText()); // Message as registered user should be sent to other users and guests. msg = createLobbyChatMsg(ChatText + 2); sendMessage(msg, s[0]); msg = receiveMessage(); - assertTrue(msg.hasChatMessage() && msg.getMessageType() == PokerTHMessageType.Type_ChatMessage); - assertEquals(ChatText + 2, msg.getChatMessage().getChatText()); - assertEquals(ChatType.chatTypeLobby, msg.getChatMessage().getChatType()); - assertEquals(playerId[0], msg.getChatMessage().getPlayerId()); + assertTrue(msg.hasLobbyMessage() && msg.getLobbyMessage().hasChatMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_ChatMessage); + assertEquals(ChatText + 2, msg.getLobbyMessage().getChatMessage().getChatText()); + assertEquals(ChatType.chatTypeStandard, msg.getLobbyMessage().getChatMessage().getChatType()); + assertEquals(playerId[0], msg.getLobbyMessage().getChatMessage().getPlayerId()); for (int i = 0; i < 8; i++) { do { msg = receiveMessage(s[i]); - } while (msg.hasPlayerListMessage()); - assertTrue(msg.hasChatMessage() && msg.getMessageType() == PokerTHMessageType.Type_ChatMessage); - assertEquals(ChatText + 2, msg.getChatMessage().getChatText()); - assertEquals(ChatType.chatTypeLobby, msg.getChatMessage().getChatType()); - assertEquals(playerId[0], msg.getChatMessage().getPlayerId()); + } while (msg.hasLobbyMessage() && msg.getLobbyMessage().hasPlayerListMessage()); + assertTrue(msg.hasLobbyMessage() && msg.getLobbyMessage().hasChatMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_ChatMessage); + assertEquals(ChatText + 2, msg.getLobbyMessage().getChatMessage().getChatText()); + assertEquals(ChatType.chatTypeStandard, msg.getLobbyMessage().getChatMessage().getChatType()); + assertEquals(playerId[0], msg.getLobbyMessage().getChatMessage().getPlayerId()); } - // A game chat message, if not within a game, should be rejected. - msg = createGameChatMsg(ChatText + 3, 1); - sendMessage(msg); - - msg = receiveMessage(); - assertTrue(msg.hasChatRejectMessage() && msg.getMessageType() == PokerTHMessageType.Type_ChatRejectMessage); - assertEquals(ChatText + 3, msg.getChatRejectMessage().getChatText()); - - msg = createGameChatMsg(ChatText + 4, 1); - sendMessage(msg, s[0]); - - msg = receiveMessage(s[0]); - assertTrue(msg.hasChatRejectMessage() && msg.getMessageType() == PokerTHMessageType.Type_ChatRejectMessage); - assertEquals(ChatText + 4, msg.getChatRejectMessage().getChatText()); - // Guests are not allowed to send private messages in the lobby. msg = createPrivateChatMsg(ChatText + 5, playerId[1]); sendMessage(msg); msg = receiveMessage(); - assertTrue(msg.hasChatRejectMessage() && msg.getMessageType() == PokerTHMessageType.Type_ChatRejectMessage); - assertEquals(ChatText + 5, msg.getChatRejectMessage().getChatText()); + assertTrue(msg.hasLobbyMessage() && msg.getLobbyMessage().hasChatRejectMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_ChatRejectMessage); + assertEquals(ChatText + 5, msg.getLobbyMessage().getChatRejectMessage().getChatText()); // Registered users are allowed to send private messages in the lobby. msg = createPrivateChatMsg(ChatText + 6, playerId[1]); sendMessage(msg, s[0]); msg = receiveMessage(s[1]); - assertTrue(msg.hasChatMessage() && msg.getMessageType() == PokerTHMessageType.Type_ChatMessage); - assertEquals(ChatText + 6, msg.getChatMessage().getChatText()); - assertEquals(ChatType.chatTypePrivate, msg.getChatMessage().getChatType()); - assertEquals(playerId[0], msg.getChatMessage().getPlayerId()); + assertTrue(msg.hasLobbyMessage() && msg.getLobbyMessage().hasChatMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_ChatMessage); + assertEquals(ChatText + 6, msg.getLobbyMessage().getChatMessage().getChatText()); + assertEquals(ChatType.chatTypePrivate, msg.getLobbyMessage().getChatMessage().getChatType()); + assertEquals(playerId[0], msg.getLobbyMessage().getChatMessage().getPlayerId()); // Game messages can be sent by registered users within a game. Collection l = new ArrayList(); @@ -161,9 +169,10 @@ public class ChatTest extends TestBase { do { msg = receiveMessage(); failOnErrorMessage(msg); - } while (!msg.hasJoinGameAckMessage() && !msg.hasJoinGameFailedMessage()); - assertTrue(msg.hasJoinGameAckMessage() && msg.getMessageType() == PokerTHMessageType.Type_JoinGameAckMessage); - int gameId = msg.getJoinGameAckMessage().getGameId(); + } while (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage()) + && !(msg.hasLobbyMessage() && msg.getLobbyMessage().hasCreateGameFailedMessage())); + assertTrue(msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_JoinGameAckMessage); + int gameId = msg.getLobbyMessage().getJoinGameAckMessage().getGameId(); // Let 8 players join the game, and test game chat. for (int i = 0; i < 8; i++) { @@ -171,34 +180,51 @@ public class ChatTest extends TestBase { do { msg = receiveMessage(s[i]); failOnErrorMessage(msg); - } while (!msg.hasJoinGameAckMessage() && !msg.hasJoinGameFailedMessage()); - assertTrue(msg.hasJoinGameAckMessage() && msg.getMessageType() == PokerTHMessageType.Type_JoinGameAckMessage); + } while (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage()) + && !(msg.hasLobbyMessage() && msg.getLobbyMessage().hasCreateGameFailedMessage())); + assertTrue(msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_JoinGameAckMessage); } StartEventMessage startEvent = StartEventMessage.newBuilder() - .setGameId(gameId) .setFillWithComputerPlayers(false) .setStartEventType(StartEventType.startEvent) .build(); - msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_StartEventMessage) + GameManagementMessage gameManagment = GameManagementMessage.newBuilder() + .setMessageType(GameManagementMessageType.Type_StartEventMessage) .setStartEventMessage(startEvent) .build(); + GameMessage game = GameMessage.newBuilder() + .setMessageType(GameMessageType.Type_GameManagementMessage) + .setGameManagementMessage(gameManagment) + .setGameId(gameId) + .build(); + msg = PokerTHMessage.newBuilder() + .setMessageType(PokerTHMessageType.Type_GameMessage) + .setGameMessage(game) + .build(); sendMessage(msg); // Server should confirm start event. do { msg = receiveMessage(); failOnErrorMessage(msg); - } while (!msg.hasStartEventMessage()); + } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasStartEventMessage())); // Acknowledge start event. StartEventAckMessage startAck = StartEventAckMessage.newBuilder() + .build(); + gameManagment = GameManagementMessage.newBuilder() + .setMessageType(GameManagementMessageType.Type_StartEventAckMessage) + .setStartEventAckMessage(startAck) + .build(); + game = GameMessage.newBuilder() + .setMessageType(GameMessageType.Type_GameManagementMessage) + .setGameManagementMessage(gameManagment) .setGameId(gameId) .build(); msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_StartEventAckMessage) - .setStartEventAckMessage(startAck) + .setMessageType(PokerTHMessageType.Type_GameMessage) + .setGameMessage(game) .build(); sendMessage(msg); @@ -210,8 +236,7 @@ public class ChatTest extends TestBase { do { msg = receiveMessage(); failOnErrorMessage(msg); - } while (!msg.hasGameStartInitialMessage()); - + } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasGameStartInitialMessage())); // Guest user: not allowed. msg = createGameChatMsg(ChatText + 7, gameId); @@ -219,9 +244,9 @@ public class ChatTest extends TestBase { do { msg = receiveMessage(); failOnErrorMessage(msg); - assertFalse(msg.hasChatMessage()); - } while (!msg.hasChatRejectMessage()); - assertEquals(ChatText + 7, msg.getChatRejectMessage().getChatText()); + assertFalse(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasChatMessage()); + } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasChatRejectMessage())); + assertEquals(ChatText + 7, msg.getGameMessage().getGameManagementMessage().getChatRejectMessage().getChatText()); // Other users: allowed. for (int c = 0; c < 8; c++) { @@ -230,25 +255,25 @@ public class ChatTest extends TestBase { do { msg = receiveMessage(s[c]); failOnErrorMessage(msg); - assertFalse(msg.hasChatRejectMessage() || msg.getMessageType() == PokerTHMessageType.Type_ChatRejectMessage); - } while (!msg.hasChatMessage()); + assertFalse(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasChatRejectMessage()); + } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasChatMessage())); - assertEquals(ChatText + "c" + c, msg.getChatMessage().getChatText()); - assertEquals(ChatType.chatTypeGame, msg.getChatMessage().getChatType()); - assertEquals(playerId[c], msg.getChatMessage().getPlayerId()); - assertEquals(gameId, msg.getChatMessage().getGameId()); + assertEquals(ChatText + "c" + c, msg.getGameMessage().getGameManagementMessage().getChatMessage().getChatText()); + assertEquals(ChatType.chatTypeStandard, msg.getGameMessage().getGameManagementMessage().getChatMessage().getChatType()); + assertEquals(playerId[c], msg.getGameMessage().getGameManagementMessage().getChatMessage().getPlayerId()); + assertEquals(gameId, msg.getGameMessage().getGameId()); for (int i = 0; i < 8; i++) { if (i != c) { do { msg = receiveMessage(s[i]); failOnErrorMessage(msg); - assertFalse(msg.hasChatRejectMessage() || msg.getMessageType() == PokerTHMessageType.Type_ChatRejectMessage); - } while (!msg.hasChatMessage()); - assertEquals(ChatText + "c" + c, msg.getChatMessage().getChatText()); - assertEquals(ChatType.chatTypeGame, msg.getChatMessage().getChatType()); - assertEquals(playerId[c], msg.getChatMessage().getPlayerId()); - assertEquals(gameId, msg.getChatMessage().getGameId()); + assertFalse(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasChatRejectMessage()); + } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasChatMessage())); + assertEquals(ChatText + "c" + c, msg.getGameMessage().getGameManagementMessage().getChatMessage().getChatText()); + assertEquals(ChatType.chatTypeStandard, msg.getGameMessage().getGameManagementMessage().getChatMessage().getChatType()); + assertEquals(playerId[c], msg.getGameMessage().getGameManagementMessage().getChatMessage().getPlayerId()); + assertEquals(gameId, msg.getGameMessage().getGameId()); } } } @@ -259,8 +284,23 @@ public class ChatTest extends TestBase { do { msg = receiveMessage(s[0]); failOnErrorMessage(msg); - assertFalse(msg.hasChatMessage() || msg.getMessageType() == PokerTHMessageType.Type_ChatMessage); - } while (!msg.hasChatRejectMessage()); + assertFalse(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasChatMessage()); + } while (!(msg.hasLobbyMessage() && msg.getLobbyMessage().hasChatRejectMessage())); + + // Leave the game. + msg = leaveGameRequestMsg(gameId); + sendMessage(msg, s[0]); + do { + msg = receiveMessage(s[0]); + failOnErrorMessage(msg); + } while (!(msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasRemovedFromGameMessage())); + // A game chat message, if not within a game, should be rejected with error. + msg = createGameChatMsg(ChatText + 9, gameId); + sendMessage(msg, s[0]); + + msg = receiveMessage(s[0]); + assertTrue(msg.hasLobbyMessage() && msg.getLobbyMessage().hasErrorMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_ErrorMessage); + assertEquals(ErrorMessage.ErrorReason.invalidState, msg.getLobbyMessage().getErrorMessage().getErrorReason()); for (int i = 0; i < 8; i++) { s[i].close(); diff --git a/tests/src/de/pokerth/test/CreateGameTest.java b/tests/src/de/pokerth/test/CreateGameTest.java index d674bd9a..965d3ed6 100644 --- a/tests/src/de/pokerth/test/CreateGameTest.java +++ b/tests/src/de/pokerth/test/CreateGameTest.java @@ -25,10 +25,10 @@ import java.util.Iterator; import org.junit.Test; +import de.pokerth.protocol.ProtoBuf.LobbyMessage.LobbyMessageType; import de.pokerth.protocol.ProtoBuf.NetGameInfo; import de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode; import de.pokerth.protocol.ProtoBuf.PokerTHMessage; -import de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType; public class CreateGameTest extends TestBase { @@ -48,22 +48,22 @@ public class CreateGameTest extends TestBase { PokerTHMessage msg; msg = receiveMessage(); - if (!msg.hasPlayerListMessage() || msg.getMessageType() != PokerTHMessageType.Type_PlayerListMessage) { + if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasPlayerListMessage() || msg.getLobbyMessage().getMessageType() != LobbyMessageType.Type_PlayerListMessage) { failOnErrorMessage(msg); fail("Invalid message."); } msg = receiveMessage(); - if (!msg.hasGameListNewMessage() || msg.getMessageType() != PokerTHMessageType.Type_GameListNewMessage) { + if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasGameListNewMessage() || msg.getLobbyMessage().getMessageType() != LobbyMessageType.Type_GameListNewMessage) { failOnErrorMessage(msg); fail("Invalid message."); } msg = receiveMessage(); - if (msg.hasJoinGameAckMessage() && msg.getMessageType() == PokerTHMessageType.Type_JoinGameAckMessage) + if (msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameAckMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_JoinGameAckMessage) { - assertTrue(msg.getJoinGameAckMessage().getGameId() != 0); - NetGameInfo receivedGameInfo = msg.getJoinGameAckMessage().getGameInfo(); + assertTrue(msg.getLobbyMessage().getJoinGameAckMessage().getGameId() != 0); + NetGameInfo receivedGameInfo = msg.getLobbyMessage().getJoinGameAckMessage().getGameInfo(); assertEquals(receivedGameInfo.getDelayBetweenHands(), gameInfo.getDelayBetweenHands()); assertEquals(receivedGameInfo.getEndRaiseMode(), gameInfo.getEndRaiseMode()); assertEquals(receivedGameInfo.getEndRaiseSmallBlindValue(), gameInfo.getEndRaiseSmallBlindValue()); diff --git a/tests/src/de/pokerth/test/CreateRankingGameTest.java b/tests/src/de/pokerth/test/CreateRankingGameTest.java index 3f0059e5..7bb7c626 100644 --- a/tests/src/de/pokerth/test/CreateRankingGameTest.java +++ b/tests/src/de/pokerth/test/CreateRankingGameTest.java @@ -50,7 +50,7 @@ public class CreateRankingGameTest extends TestBase { PokerTHMessage msg; msg = receiveMessage(); - if (!msg.hasPlayerListMessage()) { + if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasPlayerListMessage()) { failOnErrorMessage(msg); fail("Invalid message."); } @@ -58,7 +58,7 @@ public class CreateRankingGameTest extends TestBase { createRankingGame(""); msg = receiveMessage(); - if (!msg.hasJoinGameFailedMessage()) + if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasCreateGameFailedMessage()) { failOnErrorMessage(msg); fail("Guest user could create ranking game!"); @@ -72,7 +72,7 @@ public class CreateRankingGameTest extends TestBase { // Waiting for player list update. PokerTHMessage msg; msg = receiveMessage(); - if (!msg.hasPlayerListMessage()) { + if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasPlayerListMessage()) { failOnErrorMessage(msg); fail("Invalid message."); } @@ -80,10 +80,10 @@ public class CreateRankingGameTest extends TestBase { createRankingGame(""); msg = receiveMessage(); - if (msg.hasGameListNewMessage()) + if (msg.hasLobbyMessage() && msg.getLobbyMessage().hasGameListNewMessage()) { msg = receiveMessage(); - if (msg.hasJoinGameFailedMessage()) + if (msg.hasLobbyMessage() && msg.getLobbyMessage().hasJoinGameFailedMessage()) { fail("Registered user could not join ranking game!"); } @@ -101,7 +101,7 @@ public class CreateRankingGameTest extends TestBase { // Waiting for player list update. PokerTHMessage msg; msg = receiveMessage(); - if (!msg.hasPlayerListMessage()) { + if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasPlayerListMessage()) { failOnErrorMessage(msg); fail("Invalid message."); } @@ -109,7 +109,7 @@ public class CreateRankingGameTest extends TestBase { createRankingGame(GamePassword); msg = receiveMessage(); - if (!msg.hasJoinGameFailedMessage()) + if (!msg.hasLobbyMessage() || !msg.getLobbyMessage().hasCreateGameFailedMessage()) { failOnErrorMessage(msg); fail("Registered user should not be allowed to create ranking game with password!"); diff --git a/tests/src/de/pokerth/test/TestBase.java b/tests/src/de/pokerth/test/TestBase.java index 4e80c327..3e8732a3 100644 --- a/tests/src/de/pokerth/test/TestBase.java +++ b/tests/src/de/pokerth/test/TestBase.java @@ -41,16 +41,25 @@ import javax.xml.parsers.DocumentBuilderFactory; import de.pokerth.protocol.ProtoBuf.AnnounceMessage; import de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType; -import de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage; +import de.pokerth.protocol.ProtoBuf.AuthMessage; +import de.pokerth.protocol.ProtoBuf.AuthMessage.AuthMessageType; import de.pokerth.protocol.ProtoBuf.ErrorMessage; -import de.pokerth.protocol.ProtoBuf.InitAckMessage; -import de.pokerth.protocol.ProtoBuf.InitMessage; -import de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage; -import de.pokerth.protocol.ProtoBuf.JoinNewGameMessage; +import de.pokerth.protocol.ProtoBuf.AuthClientRequestMessage; +import de.pokerth.protocol.ProtoBuf.GameManagementMessage; +import de.pokerth.protocol.ProtoBuf.GameMessage; +import de.pokerth.protocol.ProtoBuf.InitDoneMessage; +import de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage; +import de.pokerth.protocol.ProtoBuf.CreateGameMessage; +import de.pokerth.protocol.ProtoBuf.JoinGameMessage; +import de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage; +import de.pokerth.protocol.ProtoBuf.LobbyMessage; +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.NetGameInfo; import de.pokerth.protocol.ProtoBuf.PokerTHMessage; import de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType; -import de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage; +import de.pokerth.protocol.ProtoBuf.RejoinGameMessage; public abstract class TestBase { @@ -159,24 +168,29 @@ public abstract class TestBase { .setMajorVersion(PROTOCOL_VERSION_MAJOR) .setMinorVersion(PROTOCOL_VERSION_MINOR) .build(); - InitMessage init = InitMessage.newBuilder() + AuthClientRequestMessage init = AuthClientRequestMessage.newBuilder() .setBuildId(0) - .setLogin(InitMessage.LoginType.guestLogin) + .setLogin(AuthClientRequestMessage.LoginType.guestLogin) .setRequestedVersion(requestedVersion) .setNickName(GuestUser) .build(); + AuthMessage auth = AuthMessage.newBuilder() + .setMessageType(AuthMessageType.Type_AuthClientRequestMessage) + .setAuthClientRequestMessage(init) + .build(); msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_InitMessage) - .setInitMessage(init) + .setMessageType(PokerTHMessageType.Type_AuthMessage) + .setAuthMessage(auth) .build(); sendMessage(msg, s); msg = receiveMessage(s); - if (msg.hasInitAckMessage() && msg.getMessageType() == PokerTHMessageType.Type_InitAckMessage) { - InitAckMessage initAck = msg.getInitAckMessage(); - assertTrue(initAck.getYourPlayerId() != 0L); - assertTrue(!initAck.hasYourAvatarHash()); - playerId = initAck.getYourPlayerId(); + if (msg.hasLobbyMessage() && msg.getMessageType() == PokerTHMessageType.Type_LobbyMessage + && msg.getLobbyMessage().hasInitDoneMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_InitDoneMessage) { + InitDoneMessage initDone = msg.getLobbyMessage().getInitDoneMessage(); + assertTrue(initDone.getYourPlayerId() != 0L); + assertTrue(!initDone.hasYourAvatarHash()); + playerId = initDone.getYourPlayerId(); } else { failOnErrorMessage(msg); @@ -210,10 +224,9 @@ public abstract class TestBase { .setMajorVersion(PROTOCOL_VERSION_MAJOR) .setMinorVersion(PROTOCOL_VERSION_MINOR) .build(); - InitMessage.Builder initBuilder = InitMessage.newBuilder(); - initBuilder + AuthClientRequestMessage.Builder initBuilder = AuthClientRequestMessage.newBuilder() .setBuildId(0) - .setLogin(InitMessage.LoginType.authenticatedLogin) + .setLogin(AuthClientRequestMessage.LoginType.authenticatedLogin) .setRequestedVersion(requestedVersion) .setClientUserData(ByteString.copyFromUtf8(scramAuth.executeStep1(user))); if (avatarData != null) { @@ -222,26 +235,37 @@ public abstract class TestBase { if (lastSessionId != null && lastSessionId.value != null) { initBuilder.setMyLastSessionId(ByteString.copyFrom(lastSessionId.value)); } - InitMessage init = initBuilder.build(); + AuthClientRequestMessage init = initBuilder.build(); + + AuthMessage authRequest = AuthMessage.newBuilder() + .setMessageType(AuthMessageType.Type_AuthClientRequestMessage) + .setAuthClientRequestMessage(init) + .build(); msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_InitMessage) - .setInitMessage(init) - .build(); + .setMessageType(PokerTHMessageType.Type_AuthMessage) + .setAuthMessage(authRequest) + .build(); sendMessage(msg, s); msg = receiveMessage(s); - if (msg.hasAuthServerChallengeMessage() && msg.getMessageType() == PokerTHMessageType.Type_AuthServerChallengeMessage) + if (msg.hasAuthMessage() && msg.getMessageType() == PokerTHMessageType.Type_AuthMessage + && msg.getAuthMessage().hasAuthServerChallengeMessage() && msg.getAuthMessage().getMessageType() == AuthMessageType.Type_AuthServerChallengeMessage) { - String serverFirstMessage = new String(msg.getAuthServerChallengeMessage().getServerChallenge().toStringUtf8()); + String serverFirstMessage = new String(msg.getAuthMessage().getAuthServerChallengeMessage().getServerChallenge().toStringUtf8()); AuthClientResponseMessage authClient = AuthClientResponseMessage.newBuilder() .setClientResponse(ByteString.copyFromUtf8(scramAuth.executeStep2(password, serverFirstMessage))) .build(); - msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_AuthClientResponseMessage) + AuthMessage authResponse = AuthMessage.newBuilder() + .setMessageType(AuthMessageType.Type_AuthClientResponseMessage) .setAuthClientResponseMessage(authClient) .build(); + + msg = PokerTHMessage.newBuilder() + .setMessageType(PokerTHMessageType.Type_AuthMessage) + .setAuthMessage(authResponse) + .build(); sendMessage(msg, s); } failOnErrorMessage(msg); @@ -250,16 +274,17 @@ public abstract class TestBase { failOnErrorMessage(msg); msg = receiveMessage(s); - if (msg.hasInitAckMessage() && msg.getMessageType() == PokerTHMessageType.Type_InitAckMessage) { - InitAckMessage initAck = msg.getInitAckMessage(); - assertTrue(initAck.getYourPlayerId() != 0L); - assertTrue(!initAck.hasYourAvatarHash()); - playerId = initAck.getYourPlayerId(); + if (msg.hasLobbyMessage() && msg.getMessageType() == PokerTHMessageType.Type_LobbyMessage + && msg.getLobbyMessage().hasInitDoneMessage() && msg.getLobbyMessage().getMessageType() == LobbyMessageType.Type_InitDoneMessage) { + InitDoneMessage initDone = msg.getLobbyMessage().getInitDoneMessage(); + assertTrue(initDone.getYourPlayerId() != 0L); + assertTrue(!initDone.hasYourAvatarHash()); + playerId = initDone.getYourPlayerId(); if (lastSessionId != null) { - lastSessionId.value = initAck.getYourSessionId().toByteArray(); + lastSessionId.value = initDone.getYourSessionId().toByteArray(); } - if (initAck.hasRejoinGameId()) { - lastRejoinGameId = initAck.getRejoinGameId(); + if (initDone.hasRejoinGameId()) { + lastRejoinGameId = initDone.getRejoinGameId(); } else { lastRejoinGameId = 0; @@ -273,17 +298,23 @@ public abstract class TestBase { } public PokerTHMessage createGameRequestMsg(NetGameInfo gameInfo, String password, boolean autoLeave) { - JoinNewGameMessage.Builder joinBuilder = JoinNewGameMessage.newBuilder(); - joinBuilder.setGameInfo(gameInfo); - joinBuilder.setAutoLeave(autoLeave); + CreateGameMessage.Builder createBuilder = CreateGameMessage.newBuilder(); + createBuilder.setRequestId(1); + createBuilder.setGameInfo(gameInfo); + createBuilder.setAutoLeave(autoLeave); if (!password.isEmpty()) { - joinBuilder.setPassword(password); + createBuilder.setPassword(password); } - JoinNewGameMessage joinNew = joinBuilder.build(); + CreateGameMessage createNew = createBuilder.build(); + LobbyMessage lobby = LobbyMessage.newBuilder() + .setMessageType(LobbyMessageType.Type_CreateGameMessage) + .setCreateGameMessage(createNew) + .build(); + PokerTHMessage msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_JoinNewGameMessage) - .setJoinNewGameMessage(joinNew) + .setMessageType(PokerTHMessageType.Type_LobbyMessage) + .setLobbyMessage(lobby) .build(); return msg; } @@ -293,31 +324,61 @@ public abstract class TestBase { } public PokerTHMessage joinGameRequestMsg(int gameId, String password, boolean autoLeave, boolean spectateOnly) { - JoinExistingGameMessage.Builder joinBuilder = JoinExistingGameMessage.newBuilder(); + JoinGameMessage.Builder joinBuilder = JoinGameMessage.newBuilder(); joinBuilder.setGameId(gameId); joinBuilder.setAutoLeave(autoLeave); joinBuilder.setSpectateOnly(spectateOnly); if (!password.isEmpty()) { joinBuilder.setPassword(password); } - JoinExistingGameMessage joinExisting = joinBuilder.build(); + JoinGameMessage joinExisting = joinBuilder.build(); + + LobbyMessage lobby = LobbyMessage.newBuilder() + .setMessageType(LobbyMessageType.Type_JoinGameMessage) + .setJoinGameMessage(joinExisting) + .build(); PokerTHMessage msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_JoinExistingGameMessage) - .setJoinExistingGameMessage(joinExisting) + .setMessageType(PokerTHMessageType.Type_LobbyMessage) + .setLobbyMessage(lobby) .build(); return msg; } public PokerTHMessage rejoinGameRequestMsg(int gameId, boolean autoLeave) { - RejoinExistingGameMessage rejoinRequest = RejoinExistingGameMessage.newBuilder() + RejoinGameMessage rejoinRequest = RejoinGameMessage.newBuilder() .setGameId(gameId) .setAutoLeave(autoLeave) .build(); + LobbyMessage lobby = LobbyMessage.newBuilder() + .setMessageType(LobbyMessageType.Type_RejoinGameMessage) + .setRejoinGameMessage(rejoinRequest) + .build(); + PokerTHMessage msg = PokerTHMessage.newBuilder() - .setMessageType(PokerTHMessageType.Type_RejoinExistingGameMessage) - .setRejoinExistingGameMessage(rejoinRequest) + .setMessageType(PokerTHMessageType.Type_LobbyMessage) + .setLobbyMessage(lobby) + .build(); + return msg; + } + + public PokerTHMessage leaveGameRequestMsg(int gameId) { + LeaveGameRequestMessage leaveRequest = LeaveGameRequestMessage.newBuilder() + .build(); + GameManagementMessage gameManagment = GameManagementMessage.newBuilder() + .setMessageType(GameManagementMessageType.Type_LeaveGameRequestMessage) + .setLeaveGameRequestMessage(leaveRequest) + .build(); + GameMessage game = GameMessage.newBuilder() + .setMessageType(GameMessageType.Type_GameManagementMessage) + .setGameManagementMessage(gameManagment) + .setGameId(gameId) + .build(); + + PokerTHMessage msg = PokerTHMessage.newBuilder() + .setMessageType(PokerTHMessageType.Type_GameMessage) + .setGameMessage(game) .build(); return msg; } @@ -354,10 +415,15 @@ public abstract class TestBase { } void failOnErrorMessage(PokerTHMessage msg) { - if (msg.hasErrorMessage()) + if (msg.hasLobbyMessage() && msg.getLobbyMessage().hasErrorMessage()) { - ErrorMessage error = msg.getErrorMessage(); - fail("Received error: " + error.getErrorReason().toString()); + ErrorMessage error = msg.getLobbyMessage().getErrorMessage(); + fail("Received lobby error: " + error.getErrorReason().toString()); + } + else if (msg.hasGameMessage() && msg.getGameMessage().hasGameManagementMessage() && msg.getGameMessage().getGameManagementMessage().hasErrorMessage()) + { + ErrorMessage error = msg.getGameMessage().getGameManagementMessage().getErrorMessage(); + fail("Received game error: " + error.getErrorReason().toString()); } }