Fixing some of the java test cases. Still incomplete.

This commit is contained in:
lotodore
2015-01-06 00:37:23 +01:00
parent c24e8a3fa9
commit fa4df857e4
5 changed files with 254 additions and 142 deletions
@@ -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
+110 -70
View File
@@ -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!");
+117 -51
View File
@@ -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());
}
}