public void DisconnectAndReconnectTest() { FrontEndAccess.UserToken.Token = Token; var game = GameAccess.CreateGame(DefaultGame); try { //Other player FrontEndAccess.UserToken.Token = OtherUserToken; GameAccess.JoinGame(game.HashId); // Since the game is not starter should not be puit disconnect GameAccess.QuitGame(game.HashId); game = GameAccess.GetGameInfo(game.HashId); Assert.AreEqual(1, game.CurrentPlayerCount); Assert.AreEqual(1, game.ParticipantsHashId.Count); Assert.AreEqual(0, game.DisconnectedHashId.Count); //Other player join again GameAccess.JoinGame(game.HashId); // Host start the game FrontEndAccess.UserToken.Token = Token; GameAccess.StartGame(game.HashId); //Other player disconnect FrontEndAccess.UserToken.Token = OtherUserToken; GameAccess.QuitGame(game.HashId); // Should be in the disconnect list game = GameAccess.GetGameInfo(game.HashId); Assert.AreEqual(1, game.CurrentPlayerCount); Assert.AreEqual(1, game.ParticipantsHashId.Count); Assert.AreEqual(1, game.DisconnectedHashId.Count); // SHould be able to reconnect GameAccess.ReconnectGame(game.HashId); game = GameAccess.GetGameInfo(game.HashId); Assert.AreEqual(2, game.CurrentPlayerCount); Assert.AreEqual(2, game.ParticipantsHashId.Count); Assert.AreEqual(0, game.DisconnectedHashId.Count); } catch (Exception) { } finally { FrontEndAccess.UserToken.Token = Token; GameAccess.DeleteGame(game.HashId); } }