Fixing some of the java test cases. Still incomplete.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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<Integer> l = new ArrayList<Integer>();
|
||||
@@ -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();
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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!");
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user