diff --git a/tests/src/pokerth_test/RejoinGameTest.java b/tests/src/pokerth_test/RejoinGameTest.java index 53a6adcd..70e17f1c 100644 --- a/tests/src/pokerth_test/RejoinGameTest.java +++ b/tests/src/pokerth_test/RejoinGameTest.java @@ -55,7 +55,7 @@ public class RejoinGameTest extends TestBase { NetGameInfo gameInfo = createGameInfo(5, EndRaiseModeEnumType.EnumType.doubleBlinds, 0, 50, gameName, l, 10, 0, 11, 10000); sendMessage(createGameRequestMsg( gameInfo, - NetGameTypeEnumType.EnumType.rankingGame, + NetGameTypeEnumType.EnumType.normalGame, 5, 7, "", diff --git a/tests/src/pokerth_test/RejoinMultiGameTest.java b/tests/src/pokerth_test/RejoinMultiGameTest.java index b9b163a5..8551fba0 100644 --- a/tests/src/pokerth_test/RejoinMultiGameTest.java +++ b/tests/src/pokerth_test/RejoinMultiGameTest.java @@ -21,6 +21,8 @@ import java.net.Socket; import static org.junit.Assert.*; +import java.sql.ResultSet; +import java.sql.Statement; import java.util.ArrayList; import java.util.Collection; @@ -39,6 +41,11 @@ public class RejoinMultiGameTest extends TestBase { @Test public void testRejoinMultiGame() throws Exception { + Statement dbStatement = dbConn.createStatement(); + ResultSet countBeforeResult = dbStatement.executeQuery("SELECT COUNT(idgame) FROM game"); + countBeforeResult.first(); + long countBefore = countBeforeResult.getLong(1); + userInit(); // Waiting for player list update. @@ -293,8 +300,41 @@ public class RejoinMultiGameTest extends TestBase { } while (!msg.isHandStartMessageSelected()); } + // The game should continue to the end. + do { + msg = receiveMessage(); + failOnErrorMessage(msg); + } while (!msg.isEndOfGameMessageSelected()); + for (int i = 0; i < 9; i++) { s[i].close(); } + Thread.sleep(2000); + + // Check database entry for the game. + ResultSet countAfterResult = dbStatement.executeQuery("SELECT COUNT(idgame) FROM game"); + countAfterResult.first(); + long countAfter = countAfterResult.getLong(1); + assertEquals(countBefore + 1, countAfter); + + // Select the latest game. + ResultSet gameResult = dbStatement.executeQuery("SELECT idgame, name, start_time, end_time FROM game WHERE start_time = (SELECT MAX(start_time) from game)"); + gameResult.first(); + long idgame = gameResult.getLong(1); + + // Check database entries for the players in the game. + // There should be exactly 10 entries, just as + ResultSet gamePlayerResult = dbStatement.executeQuery("SELECT COUNT(*) FROM game_has_player WHERE game_idgame = " + idgame); + gamePlayerResult.first(); + assertEquals(10, gamePlayerResult.getLong(1)); + // Each player should have a place in the range 1..10 + ResultSet winnerResult = dbStatement.executeQuery( + "SELECT place FROM game_has_player LEFT JOIN player_login on (game_has_player.player_idplayer = player_login.id) WHERE game_idgame = " + idgame); + winnerResult.first(); + for (int i = 0; i < 9; i++) { + assertTrue(winnerResult.getLong(1) >= 1); + assertTrue(winnerResult.getLong(1) <= 10); + winnerResult.next(); + } } } diff --git a/tests/src/pokerth_test/RunRankingGameTest.java b/tests/src/pokerth_test/RunRankingGameTest.java index d3f390c2..976a89fe 100644 --- a/tests/src/pokerth_test/RunRankingGameTest.java +++ b/tests/src/pokerth_test/RunRankingGameTest.java @@ -294,7 +294,7 @@ public class RunRankingGameTest extends TestBase { assertTrue(gameDurationMsec < 60 * 60 * 1000); // game duration should be smaller than 1 hour. // Check database entries for the players in the game. - ResultSet gamePlayerResult = dbStatement.executeQuery("SELECT COUNT(DISTINCT player_idplayer) FROM game_has_player WHERE game_idgame = " + idgame); + ResultSet gamePlayerResult = dbStatement.executeQuery("SELECT COUNT(*) FROM game_has_player WHERE game_idgame = " + idgame); gamePlayerResult.first(); assertEquals(10, gamePlayerResult.getLong(1)); // The one who always went all in should have won!