public override async Task RunServer(IAsyncStreamReader <ServerArgs> requestStream, IServerStreamWriter <ServerStatus> responseStream, ServerCallContext context) { if (!await requestStream.MoveNext()) { throw new InvalidOperationException(); } var serverConfig = requestStream.Current.Setup; var runner = ServerRunner.Start(_loggerFactory, serverConfig); try { await responseStream.WriteAsync(new ServerStatus { Stats = runner.GetStats(false), Port = runner.BoundPort, Cores = Environment.ProcessorCount, }); while (await requestStream.MoveNext()) { var reset = requestStream.Current.Mark.Reset; await responseStream.WriteAsync(new ServerStatus { Stats = runner.GetStats(reset) }); } } finally { _logger.LogInformation("Exiting RunServer."); await runner.StopAsync(); } }
/* * helper: If you dont like duplicationg code. Use this */ private static (ServerRunner serverRunner, Player playerInit, ClientRunner clientRunner) InitiateServer() { var server = new ServerRunner(); server.Start(); var client = new ClientRunner("127.0.0.1", 32123); client.Start(); client.JoinServer("player"); return(server, server.GetPlayer("player"), client); }
public void TestGetPlayerShouldNotBeNull() { var server = new ServerRunner(); server.Start(); var client = new ClientRunner("127.0.0.1", 32123); client.Start(); client.JoinServer("player"); server.GetPlayer("player").Should().NotBeNull(); server.Stop(); }
public void TestLeavePlayer() { var server = new ServerRunner(); server.Start(); var client = new ClientRunner("127.0.0.1", 32123); client.Start(); client.JoinServer("player"); Thread.Sleep(1000); var player = server.GetPlayer("player"); server.LeavePlayer(server.GetPlayerInfo(player.Pseudo)).Should().Be(true); server.Stop(); }
public void TestGetPlayerPosition() { var server = new ServerRunner(); server.Start(); var client = new ClientRunner("127.0.0.1", 32123); client.Start(); client.JoinServer("player"); Thread.Sleep(1000); var player = server.GetPlayer("player"); Thread.Sleep(1000); server.Invoking(o => o.GetPlayerPosition(player)).ShouldNotThrow <NullReferenceException>(); server.Stop(); }