public static void Main(string[] args) { Log.Logger.Information("GameMaster started"); GMConfiguration config = GMConfiguration.ReadConfiguration(args); CreateLogger(config.LoggingMode); GameMaster gameMaster = new GameMaster(new GuiMantainer(), config, new ProxyMessageHandler()); gameMaster.Start(); gameMaster.WaitForEnd(); Log.CloseAndFlush(); gameMaster.Dispose(); }
public void TestReceiveRequest() { StubGuiMaintainer guiMantainer = new StubGuiMaintainer(); GMConfiguration config = new GMConfiguration() { BoardX = 40, BoardY = 40, CsIP = "127.0.0.1", CsPort = 8081, MovePenalty = 1500, DiscoveryPenalty = 700, PutPenalty = 500, CheckForShamPenalty = 700, InformationExchangePenalty = 1000, GoalAreaHeight = 5, NumberOfGoals = 5, NumberOfPieces = 10, ShamPieceProbability = 20 }; TcpListener serverSideListener = new TcpListener(IPAddress.Any, config.CsPort); serverSideListener.Start(); TcpClient serverSide = null; var task = new Task(() => serverSide = serverSideListener.AcceptTcpClient()); task.Start(); GameMaster.GameMaster gm = new GameMaster.GameMaster(guiMantainer, config, new ProxyMessageHandler()); gm.Start(); guiMantainer.StartGame(); var gmTask = new Task(() => gm.WaitForEnd()); gmTask.Start(); task.Wait(); serverSideListener.Stop(); IMessageSenderReceiver senderReceiver = new StreamMessageSenderReceiver(serverSide.GetStream(), new Parser()); var message = new Message <DiscoveryRequest>() { AgentId = 1, MessagePayload = new DiscoveryRequest() }; senderReceiver.Send(message); senderReceiver.StartReceiving(m => { Assert.AreEqual(m.MessageId, MessageType.DiscoveryResponse); }); }