public void CommunicationServerSendsConfirmJoiningGameMessageToCorrectPlayer() { var server = new CommunicationServer.Connection(8001); var playerOne = A.Fake <CommunicationServer.Receiver>(); //var gm= FakeItEasy.A.Fake<Messages.GameMaster.IConnection>(o => o.WithArgumentsForConstructor( //new object[] { "127.0.0.1", 8001, new string[] { "placeholder" } })); var gm = A.Fake <CommunicationServer.Receiver>(); server.Receivers = new List <Messages.CommunicationServer.IReceiver>(); server.CreateGame(gm, new Xsd2.RegisterGame(new Xsd2.GameInfo() { redTeamPlayers = 1, blueTeamPlayers = 1, gameName = "gameName" })); server.Receivers.Add(playerOne); server.Receivers.Add(gm); playerOne.Id = 1; gm.Id = 2; server.Receivers[1].IsGameMaster = true; var msg = new Xsd2.ConfirmJoiningGame(); msg.playerId = 1; msg.HandleOnCommunicationServer(server, gm); Assert.AreEqual(1, playerOne.MessageList.Count); }
//[TestMethod] public void KeepAliveFromGameMasterDoesNotInteractWithNormalMessages() { CommunicationServer.Connection server = new CommunicationServer.Connection(8004); server.StartServer(); GameMaster.Connection gameMaster = new GameMaster.Connection(IPADDRESS, PORT + 4, parameters); gameMaster.Connect(); Thread.Sleep(1500); var gameMessage = new Xsd2.RegisterGame(new Xsd2.GameInfo() { gameName = gameName, redTeamPlayers = 1, blueTeamPlayers = 1 }); var xmlSerializer = new XmlSerializer(typeof(Xsd2.RegisterGame)); using (var writer = new StringWriter()) { xmlSerializer.Serialize(writer, gameMessage); gameMaster.SendMessage(writer.ToString()); } Thread.Sleep(SLEEPTIME); // Checks if IsGameMaster property is set to true Assert.AreEqual(true, server.Receivers[0].IsGameMaster); gameMaster.Disconnect(); server.StopServer(); Task.WaitAll(); }
public void ChecksIfNPlayersCanConnect() { int n = 64; List <Player.Connection> players = new List <Player.Connection>(); CommunicationServer.Connection serv = new CommunicationServer.Connection(8002); serv.StartServer(); for (int i = 0; i < n; i++) { var player = FakeItEasy.A.Fake <Player.Connection>(o => o.WithArgumentsForConstructor( new object[] { "127.0.0.1", 8002, gameName, playerParameters, new object() })); player.Connect(); players.Add(player); } Thread.Sleep(SLEEPTIME); // Checks if N players connected to the server Assert.AreEqual(n, serv.Receivers.Count); foreach (var player in players) { player.Disconnect(); } Thread.Sleep(SLEEPTIME); serv.StopServer(); Thread.Sleep(SLEEPTIME); Task.WaitAll(); }
//[TestMethod] // TO FIX public void GameMasterDoesntStartGame() { CommunicationServer.Connection serv = new CommunicationServer.Connection(8004); serv.StartServer(); GameMaster.Connection gameMaster = new GameMaster.Connection(IPADDRESS, PORT + 4, parameters); gameMaster.Connect(); Thread.Sleep(SLEEPTIME); // Checks if IsGameMaster property is set to false Assert.AreEqual(false, serv.Receivers[0].IsGameMaster); var gameMessage = new Xsd2.RegisterGame(); var xmlSerializer = new XmlSerializer(typeof(Xsd2.RegisterGame)); using (var writer = new StringWriter()) { xmlSerializer.Serialize(writer, gameMessage); gameMaster.SendMessage(writer.ToString()); } Thread.Sleep(SLEEPTIME); // Checks if IsGameMaster property is set to true Assert.AreEqual(true, serv.Receivers[0].IsGameMaster); gameMaster.Disconnect(); serv.StopServer(); Task.WaitAll(); }
public void CommunicationServerReceivesKeepAliveMessageFromGameMaster() { CommunicationServer.Connection server = new CommunicationServer.Connection(8004); server.StartServer(); GameMaster.Connection gameMaster = new GameMaster.Connection(IPADDRESS, PORT + 4, parameters); gameMaster.Connect(); Thread.Sleep(4 * SLEEPTIME); Assert.AreEqual(1, server.Receivers.Count); gameMaster.Disconnect(); server.StopServer(); Task.WaitAll(); }
public void ChecksIfGameMasterCanConnectToCommunicationServer() { CommunicationServer.Connection serv = new CommunicationServer.Connection(PORT); serv.StartServer(); GameMaster.Connection gameMaster = new GameMaster.Connection(IPADDRESS, PORT, parameters); gameMaster.Connect(); Thread.Sleep(SLEEPTIME); // Checking if gamemaster connected Assert.AreEqual(1, serv.Receivers.Count); gameMaster.Disconnect(); Thread.Sleep(SLEEPTIME); serv.StopServer(); Thread.Sleep(SLEEPTIME); Task.WaitAll(); }
public void ChecksIfPlayerAndGameMasterCanConnectToCommunicationServer() { CommunicationServer.Connection serv = new CommunicationServer.Connection(PORT + 1); serv.StartServer(); GameMaster.Connection gameMaster = new GameMaster.Connection(IPADDRESS, PORT + 1, parameters); gameMaster.Connect(); var gameMessage = new Xsd2.RegisterGame(new Xsd2.GameInfo() { redTeamPlayers = 1, blueTeamPlayers = 1, gameName = gameName }); var xmlSerializer = new XmlSerializer(typeof(Xsd2.RegisterGame)); using (var writer = new StringWriter()) { xmlSerializer.Serialize(writer, gameMessage); gameMaster.SendMessage(writer.ToString()); } var player = FakeItEasy.A.Fake <Player.Connection>(o => o.WithArgumentsForConstructor( new object[] { "127.0.0.1", 8001, gameName, playerParameters, new object() })); player.Connect(); Thread.Sleep(SLEEPTIME); int gmCount = 0; foreach (var reciever in serv.Receivers) { if (reciever.IsGameMaster) { gmCount++; } } // Checking if there is only one gamemaster Assert.AreEqual(1, gmCount); // Checking if gamemaster and player properly connected Assert.AreEqual(2, serv.Receivers.Count); player.Disconnect(); Thread.Sleep(SLEEPTIME); gameMaster.Disconnect(); Thread.Sleep(SLEEPTIME); serv.StopServer(); Thread.Sleep(SLEEPTIME); Task.WaitAll(); }
// [TestMethod] // TODO Get it working ( Communication server doesn't delete reciver from the _recivers list ) public void ChecksIfPlayerCanDisconnect() { CommunicationServer.Connection serv = new CommunicationServer.Connection(8003); serv.StartServer(); Player.Connection player = new Player.Connection(IPADDRESS, PORT + 3, gameName, null); player.Connect(); Thread.Sleep(SLEEPTIME + 10000); player.Disconnect(); Thread.Sleep(2000 + 10000); // Checks if no players still connected to the communication server Assert.AreEqual(0, serv.Receivers.Count); serv.StopServer(); Thread.Sleep(SLEEPTIME); Task.WaitAll(); }