public void RoomFlags_SuppressRoomEvents([Values("UseFlag", "UseFlags", "Conflict")] string testCase) { UnifiedTestClient client1 = null; UnifiedTestClient client2 = null; try { var roomName = this.GenerateRandomizedRoomName("SuppressRoomEvents_"); client1 = this.CreateMasterClientAndAuthenticate(Player1); client2 = this.CreateMasterClientAndAuthenticate(Player2); var createGameResponse = client1.CreateGame(roomName, true, true, 4); // switch client 1 to GS this.ConnectAndAuthenticate(client1, createGameResponse.Address, client1.UserId); var createRequest = new OperationRequest { OperationCode = OperationCode.CreateGame, Parameters = new Dictionary <byte, object>() }; createRequest.Parameters.Add(ParameterCode.RoomName, createGameResponse.GameId); if (testCase == "UseFlags") { createRequest.Parameters.Add((byte)ParameterKey.RoomOptionFlags, RoomOptionFlags.SuppressRoomEvents); } else if (testCase == "UseFlag") { createRequest.Parameters.Add((byte)Operations.ParameterCode.SuppressRoomEvents, true); } else { createRequest.Parameters.Add((byte)ParameterKey.RoomOptionFlags, RoomOptionFlags.SuppressRoomEvents); createRequest.Parameters.Add((byte)Operations.ParameterCode.SuppressRoomEvents, false); } client1.SendRequestAndWaitForResponse(createRequest); this.ConnectAndAuthenticate(client2, createGameResponse.Address, client1.UserId); client2.JoinGame(roomName); EventData eventData; Assert.IsFalse(client1.TryWaitForEvent(EventCode.Join, ConnectPolicy.WaitTime, out eventData)); client1.Dispose(); Assert.IsFalse(client2.TryWaitForEvent(EventCode.Leave, ConnectPolicy.WaitTime, out eventData)); } finally { DisposeClients(client1, client2); } }
public void A_Group_PluginHttpCallSyncAfterContinueTests() { const string config = "HttpCallSyncAfterContinue"; UnifiedTestClient client = null; UnifiedTestClient client2 = null; var GameName = RandomizeString(MethodBase.GetCurrentMethod().Name); try { client = this.CreateMasterClientAndAuthenticate("User1"); var request = new OperationRequest { OperationCode = OperationCode.CreateGame, Parameters = new Dictionary <byte, object> { { ParameterCode.RoomName, GameName }, { ParameterCode.EmptyRoomTTL, 0 }, { ParameterCode.PlayerTTL, 0 }, { ParameterCode.CheckUserOnJoin, false }, { ParameterCode.CleanupCacheOnLeave, false }, { ParameterCode.SuppressRoomEvents, false }, { ParameterCode.LobbyName, "Default" }, { ParameterCode.LobbyType, (byte)0 }, { ParameterCode.GameProperties, new Hashtable { { "config", config } } }, { ParameterCode.Plugins, new string[] { "AllMethosCallHttpTestPlugin" } }, } }; var response = client.SendRequestAndWaitForResponse(request); this.ConnectAndAuthenticate(client, (string)response[ParameterCode.Address], client.UserId); client.SendRequestAndWaitForResponse(request); client.CheckThereIsEvent(123, this.WaitTimeout); client.SendRequestAndWaitForResponse(new OperationRequest { OperationCode = OperationCode.SetProperties, Parameters = new Dictionary <byte, object> { { ParameterCode.Properties, new Hashtable { { GamePropertyKey.IsOpen, true } } } } }); client.CheckThereIsErrorInfoEvent(this.WaitTimeout); client.CheckThereIsEvent(123, this.WaitTimeout); request = new OperationRequest { OperationCode = OperationCode.JoinGame, Parameters = new Dictionary <byte, object> { { ParameterCode.RoomName, GameName }, { ParameterCode.PlayerProperties, new Hashtable { { "Actor2Property", "Actor2PropertyValue" } } }, { ParameterCode.GameProperties, new Hashtable() }, { ParameterCode.UserId, "User2" }, { ParameterCode.LobbyName, "Default" }, }, }; client2 = this.CreateMasterClientAndAuthenticate("User2"); response = client2.SendRequestAndWaitForResponse(request); this.ConnectAndAuthenticate(client2, (string)response[ParameterCode.Address], client2.UserId); client2.SendRequestAndWaitForResponse(request); client.CheckThereIsErrorInfoEvent(this.WaitTimeout); client.CheckThereIsEvent(123, this.WaitTimeout); request = new OperationRequest { OperationCode = OperationCode.RaiseEvent, Parameters = new Dictionary <byte, object> { { ParameterCode.Code, (byte)1 }, } }; client.SendRequest(request); client.CheckThereIsEvent(123, this.WaitTimeout); client2.SendRequestAndWaitForResponse(new OperationRequest { OperationCode = OperationCode.Leave, Parameters = new Dictionary <byte, object> { { ParameterCode.IsInactive, true } } }); client2.Disconnect(); client.CheckThereIsNoErrorInfoEvent(); client.Disconnect(); } finally { if (client != null && client.Connected) { client.Disconnect(); client.Dispose(); } if (client2 != null && client2.Connected) { client2.Disconnect(); client2.Dispose(); } this.CheckGameIsClosed(GameName, this.WaitTimeout); } }