/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { StopServerResponse response = new StopServerResponse(); return(response); }
public async Task StartAndShutdownServerWithGameMod() { ClientWebSocket webSocket = new ClientWebSocket(); WebSocketHandler webSocketHandler = new WebSocketHandler(webSocket); await webSocket.ConnectAsync(new Uri("ws://localhost:80/ws"), CancellationToken.None); await TestHelper.Login("User", "Passwort1$", webSocket, webSocketHandler); ServerSetting serverSettings = TestHelper.GenerateNewServerSetting(); serverSettings.GameMod = "FastProgress"; Command command = new Command("AddServerSetting", serverSettings); await TestHelper.ExecuteCommandAndAwaitResponse(webSocket, webSocketHandler, command); ModifySettingsResponse modifyResponse = JsonConvert.DeserializeObject <ModifySettingsResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(modifyResponse, ModifySettingsResult.SETTING_ADDED); command = new Command("GetServerSettingsOfLoggedInUser", null); await TestHelper.ExecuteCommandAndAwaitResponse(webSocket, webSocketHandler, command); GetSettingsResponse getResponse = JsonConvert.DeserializeObject <GetSettingsResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(getResponse, GetSettingsResult.OK); bool foundServerSetting = false; foreach (var item in getResponse.ServerSettings) { if (serverSettings.WorldGenSeed == item.WorldGenSeed) { serverSettings = item; foundServerSetting = true; } } if (!foundServerSetting) { Assert.Fail("Added ServerSettingsId not found in response"); } command = new Command("StartServer", serverSettings); await TestHelper.ExecuteCommandAndAwaitResponse(webSocket, webSocketHandler, command); StartServerResponse startResponse = JsonConvert.DeserializeObject <StartServerResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(startResponse, StartServerResult.SERVER_STARTED); command = new Command("StopServer", serverSettings); await TestHelper.ExecuteCommandAndAwaitResponse(webSocket, webSocketHandler, command); StopServerResponse stopResponse = JsonConvert.DeserializeObject <StopServerResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(stopResponse, StopServerResult.SERVER_STOPPED); }
public async Task StartTwoServers() { ClientWebSocket webSocket = new ClientWebSocket(); WebSocketHandler webSocketHandler = new WebSocketHandler(webSocket); await webSocket.ConnectAsync(new Uri("ws://localhost:80/ws"), CancellationToken.None); await TestHelper.Login("User", "Passwort1$", webSocket, webSocketHandler); ServerSetting serverSettingOne = new ServerSetting { GameName = "MyGameStartTwoServesOne", GameWorld = Beste.GameServer.SDaysTDie.Modules.Types.GameWorld.Navezgane.ToString(), ServerConfigFilepath = "MyGameConfigFilePath" + TestHelper.RandomString(8) + ".xml", ServerDescription = "My Server Desc", ServerName = "MyServerStartTwoServesOne", ServerPassword = "******", ServerPort = 50001, TelnetPassword = "******", TelnetPort = 8089, TerminalWindowEnabled = false, WorldGenSeed = "MyGameStartTwoServesOne" }; Command command = new Command("AddServerSetting", serverSettingOne); await TestHelper.ExecuteCommandAndAwaitResponse(webSocket, webSocketHandler, command); ModifySettingsResponse modifyResponse = JsonConvert.DeserializeObject <ModifySettingsResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(modifyResponse, ModifySettingsResult.SETTING_ADDED); command = new Command("GetServerSettingsOfLoggedInUser", null); await TestHelper.ExecuteCommandAndAwaitResponse(webSocket, webSocketHandler, command); GetSettingsResponse getResponse = JsonConvert.DeserializeObject <GetSettingsResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(getResponse, GetSettingsResult.OK); bool foundServerSetting = false; foreach (var item in getResponse.ServerSettings) { if (serverSettingOne.WorldGenSeed == item.WorldGenSeed) { serverSettingOne = item; foundServerSetting = true; break; } } if (!foundServerSetting) { Assert.Fail("Added ServerSettingsId not found in response"); } command = new Command("StartServer", serverSettingOne); await TestHelper.ExecuteCommandAndAwaitResponse(webSocket, webSocketHandler, command); StartServerResponse startResponse = JsonConvert.DeserializeObject <StartServerResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(startResponse, StartServerResult.SERVER_STARTED); ClientWebSocket webSocketTwo = new ClientWebSocket(); WebSocketHandler webSocketHandlerTwo = new WebSocketHandler(webSocketTwo); await webSocketTwo.ConnectAsync(new Uri("ws://localhost:80/ws"), CancellationToken.None); await TestHelper.Login("Admin", "Passwort1$", webSocketTwo, webSocketHandlerTwo); ServerSetting serverSettingTwo = new ServerSetting { GameName = "MyGameStartTwoServesTwo", GameWorld = Beste.GameServer.SDaysTDie.Modules.Types.GameWorld.Navezgane.ToString(), ServerConfigFilepath = "MyGameConfigFilePath" + TestHelper.RandomString(8) + ".xml", ServerDescription = "My Server Desc", ServerName = "MyServerNameStartTwoServesTwo", ServerPassword = "******", ServerPort = 50001, TelnetPassword = "******", TelnetPort = 8089, TerminalWindowEnabled = false, WorldGenSeed = "MyGameStartTwoServesTwo" }; command = new Command("AddServerSetting", serverSettingTwo); await TestHelper.ExecuteCommandAndAwaitResponse(webSocketTwo, webSocketHandlerTwo, command); modifyResponse = JsonConvert.DeserializeObject <ModifySettingsResponse>(webSocketHandlerTwo.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(modifyResponse, ModifySettingsResult.SETTING_ADDED); command = new Command("GetServerSettingsOfLoggedInUser", null); await TestHelper.ExecuteCommandAndAwaitResponse(webSocketTwo, webSocketHandlerTwo, command); getResponse = JsonConvert.DeserializeObject <GetSettingsResponse>(webSocketHandlerTwo.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(getResponse, GetSettingsResult.OK); foundServerSetting = false; foreach (var item in getResponse.ServerSettings) { if (serverSettingTwo.WorldGenSeed == item.WorldGenSeed) { serverSettingTwo = item; foundServerSetting = true; break; } } if (!foundServerSetting) { Assert.Fail("Added ServerSettingsId not found in response"); } command = new Command("StartServer", serverSettingTwo); await TestHelper.ExecuteCommandAndAwaitResponse(webSocketTwo, webSocketHandlerTwo, command); startResponse = JsonConvert.DeserializeObject <StartServerResponse>(webSocketHandlerTwo.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(startResponse, StartServerResult.SERVER_STARTED); await Task.Delay(10000); int processCount = 0; foreach (var process in Process.GetProcessesByName("7DaysToDie")) { processCount++; } if (processCount != 2) { Assert.Fail("processCount != 2"); } command = new Command("StopServer", serverSettingOne); await TestHelper.ExecuteCommandAndAwaitCommandResponse(webSocket, webSocketHandler, command, "StopServerResponse"); StopServerResponse stopResponse = JsonConvert.DeserializeObject <StopServerResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(stopResponse, new StopServerResult[] { StopServerResult.SERVER_STOPPED, StopServerResult.SERVER_KILLED }); command = new Command("StopServer", serverSettingTwo); await TestHelper.ExecuteCommandAndAwaitCommandResponse(webSocketTwo, webSocketHandlerTwo, command, "StopServerResponse"); stopResponse = JsonConvert.DeserializeObject <StopServerResponse>(webSocketHandlerTwo.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(stopResponse, new StopServerResult[] { StopServerResult.SERVER_STOPPED, StopServerResult.SERVER_KILLED }); }
public async Task StartServerAndConnectToTelnet() { ClientWebSocket webSocket = new ClientWebSocket(); WebSocketHandler webSocketHandler = new WebSocketHandler(webSocket); await webSocket.ConnectAsync(new Uri("ws://localhost:80/ws"), CancellationToken.None); await TestHelper.Login("User", "Passwort1$", webSocket, webSocketHandler); ServerSetting serverSettings = TestHelper.GenerateNewServerSetting(); Command command = new Command("AddServerSetting", serverSettings); await TestHelper.ExecuteCommandAndAwaitResponse(webSocket, webSocketHandler, command); ModifySettingsResponse modifyResponse = JsonConvert.DeserializeObject <ModifySettingsResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(modifyResponse, ModifySettingsResult.SETTING_ADDED); command = new Command("GetServerSettingsOfLoggedInUser", null); await TestHelper.ExecuteCommandAndAwaitResponse(webSocket, webSocketHandler, command); GetSettingsResponse getResponse = JsonConvert.DeserializeObject <GetSettingsResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(getResponse, GetSettingsResult.OK); bool foundServerSetting = false; foreach (var item in getResponse.ServerSettings) { if (serverSettings.WorldGenSeed == item.WorldGenSeed) { serverSettings = item; foundServerSetting = true; break; } } if (!foundServerSetting) { Assert.Fail("Added ServerSettingsId not found in response"); } command = new Command("StartServer", serverSettings); await TestHelper.ExecuteCommandAndAwaitResponse(webSocket, webSocketHandler, command); StartServerResponse startResponse = JsonConvert.DeserializeObject <StartServerResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(startResponse, StartServerResult.SERVER_STARTED); command = new Command("ConnectTelnet", serverSettings); await TestHelper.ExecuteCommandAndAwaitResponse(webSocket, webSocketHandler, command); ConnectTelnetResponse connectResponse = JsonConvert.DeserializeObject <ConnectTelnetResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(connectResponse, ConnectTelnetResult.OK); byte[] buffer = new byte[1024 * 4]; int receivedTelnetMessages = 0; for (int i = 0; receivedTelnetMessages < 1; i++) { await webSocketHandler.ExtractCompleteMessage(buffer); if (webSocketHandler.ReceivedCommand.CommandName == "OnTelnetReceived") { Console.WriteLine(webSocketHandler.ReceivedCommand.CommandData.ToString()); Trace.Write(webSocketHandler.ReceivedCommand.CommandData.ToString()); receivedTelnetMessages++; } else { Console.WriteLine("*** NO TELNET MESSAGE ***"); } } command = new Command("StopServer", serverSettings); await TestHelper.ExecuteCommandAndAwaitCommandResponse(webSocket, webSocketHandler, command, "StopServerResponse"); StopServerResponse stopResponse = JsonConvert.DeserializeObject <StopServerResponse>(webSocketHandler.ReceivedCommand.CommandData.ToString()); TestHelper.ValiateResponse(stopResponse, new StopServerResult[] { StopServerResult.SERVER_STOPPED, StopServerResult.SERVER_KILLED }); }