public void DoesNotRegisterNewGameMaster() { var server = A.Fake <CommunicationServer.Connection>(); var receiver = A.Fake <CommunicationServer.Receiver>(); var game = A.Fake <Messages.CommunicationServer.IGameState>(); game.GameName = gameName; server.Games.Add(1, game); var msg = new Xsd2.RegisterGame(new Xsd2.GameInfo() { blueTeamPlayers = 1, redTeamPlayers = 1, gameName = gameName }); msg.HandleOnCommunicationServer(server, receiver); var xmlSerializer = new XmlSerializer(typeof(Xsd2.RejectGameRegistration)); //removing special character from message string string message = receiver.MessageList[0]; message = message.Substring(0, message.Length - 1); using (var reader = new StringReader(message)) { var obj = xmlSerializer.Deserialize(reader) as Xsd2.RejectGameRegistration; Assert.AreNotEqual(null, obj); } }
//[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(); }
//[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 GameState(IReceiver gameMaster, ulong gameId, Xsd2.RegisterGame msg) { _players = new List <IReceiver>(); _gameId = gameId; _gameMaster = gameMaster; _blueTeamMax = msg.NewGameInfo.blueTeamPlayers; _redTeamMax = msg.NewGameInfo.redTeamPlayers; _blueTeamCount = 0; _redTeamCount = 0; _gameName = msg.NewGameInfo.gameName; }
public void RegistersNewGameMaster() { var server = A.Fake <CommunicationServer.Connection>(); var receiver = A.Fake <CommunicationServer.Receiver>(); var msg = new Xsd2.RegisterGame(new Xsd2.GameInfo() { gameName = gameName, redTeamPlayers = 1, blueTeamPlayers = 1 }); msg.HandleOnCommunicationServer(server, receiver); Assert.AreEqual(receiver, server.Games[1].GameMaster); Assert.AreEqual(true, receiver.IsGameMaster); }
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(); }
static void Main(string[] args) { foreach (var s in args) { Console.WriteLine("args: {0}", s); } _parametersReader = new Messages.ParametersReader(args); Tuple <string, int> endPoint = _parametersReader.Validate(); _parametersReader.ReadGameMasterInputSettings(); var gameState = new GameState(_parametersReader); Console.WriteLine(_parametersReader.ConfigurationFilePath); Connection connection = new Connection(endPoint.Item1, endPoint.Item2, _parametersReader); try { connection.Connect(); } catch (Exception e) { Console.WriteLine("{0} has encountered exception: {1} while trying to connect", nameof(Program), e.Message); Console.WriteLine("{0} will now exit", nameof(Program)); } var gameMessage = new Xsd2.RegisterGame(new Xsd2.GameInfo(connection.GameState)); var serializer = new Serializer(gameMessage); string gameMsg = serializer.Serialize(); Console.WriteLine(gameMsg); connection.SendMessage(gameMsg); Task.WaitAll(); Cleanup(); Console.ReadLine(); }
public IGameState CreateGame(IReceiver gameMaster, Xsd2.RegisterGame msg) { var gameWithSameName = _games.FirstOrDefault(g => g.Value.GameName == msg.NewGameInfo.gameName).Value; if (gameWithSameName != null) { return(null); } ulong gameId = 0; lock (_gameCountLock) { _gameCount++; gameId = _gameCount; } gameMaster.IsGameMaster = true; gameMaster.GameId = gameId; var game = new GameState(gameMaster, gameId, msg); _games.Add(gameId, game); return(game); }