//[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();
        }
Пример #3
0
        public void DelayMessage(Connection connection, Messages.XmlHandling.Serializer serializer, uint timeToWait)
        {
            Task delay = new Task(() => {
                System.Threading.Thread.Sleep((int)timeToWait);
                connection.SendMessage(serializer.Serialize());
                // TO BE DELETED
                Console.WriteLine("I have waited for: " + (int)connection.GameState.ActionCosts.MoveDelay);
            });

            delay.Start();
        }
        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();
        }
Пример #5
0
        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();
        }