Exemple #1
0
        public async Task SetUp()
        {
            _controllerRequest = new ServerInfoRequest
            {
                IpAddress = "192.168.201.201",
                Port      = 7778
            };
            _expectedResponse = new ServerInfoDetails
            {
                HostName = "test server name"
            };

            var gameType = GameType.UnrealTournament99;

            var managerRequest = new ServerRequest
            {
                IpAddress = _controllerRequest.IpAddress,
                Port      = _controllerRequest.Port,
                GameType  = gameType
            };

            _mockServerInfoRequestMapper = new Mock <IServerInfoRequestMapper>();
            _mockServerInfoRequestMapper.Setup(m => m.Map(_controllerRequest, gameType)).Returns(managerRequest);

            _mockUnrealTournament99Manager = new Mock <IUnrealTournament99Manager>();

            _mockUnrealTournament99Manager.Setup(x => x.GetInfo(managerRequest)).Returns(Task.FromResult(_expectedResponse));

            var controller = new UnrealTournament99Controller(_mockUnrealTournament99Manager.Object, _mockServerInfoRequestMapper.Object);

            var response = await controller.GetInfo(_controllerRequest);

            var content = response as OkObjectResult;

            _actualResponse = JsonConvert.SerializeObject(content.Value);
        }
Exemple #2
0
        public async Task SetUp()
        {
            _serverRequest = new ServerRequest
            {
                IpAddress = "192.168.200.201",
                Port      = 7778,
                GameType  = GameType.UnrealTournament99
            };

            _serverResponse = new ServerResponse
            {
                Data    = @"\hostname\test server name\hostport\7777\maptitle\CTF-Bolt_HE (High End Systems)\mapname\CTF-Bolt_HE\gametype\ACLCTFGame\numplayers\11\maxplayers\13\gamemode\openplaying\gamever\451\minnetver\432\worldlog\false\wantworldlog\false\queryid\12.1\final\",
                Success = true,
                Error   = string.Empty
            };

            _pingResponse = new PingResponse
            {
                Milliseconds = 50,
                Success      = true
            };

            _mockUnrealTournament99GameClient = new Mock <IUnrealTournament99GameClient>();
            _mockPingClient         = new Mock <IPingClient>();
            _mockInfoResponseMapper = new Mock <IInfoResponseMapper>();

            _mockPingClient.Setup(c => c.Ping(_serverRequest.IpAddress)).ReturnsAsync(_pingResponse);
            _mockUnrealTournament99GameClient.Setup(c => c.GetInfo(_serverRequest.IpAddress, _serverRequest.Port)).ReturnsAsync(_serverResponse);
            _mockInfoResponseMapper.Setup(c => c.Map(_serverResponse.Data)).Returns(new ServerInfoDetails {
                HostName = "test server name"
            });

            _manager = new UnrealTournament99Manager(_mockUnrealTournament99GameClient.Object, _mockPingClient.Object, _mockInfoResponseMapper.Object);

            _result = await _manager.GetInfo(_serverRequest);
        }
Exemple #3
0
        public ServerInfoDetails Map(string payload)
        {
            if (string.IsNullOrWhiteSpace(payload))
            {
                return(BuildNullResponse());
            }

            var data = payload.Substring(1).Split('\\');
            var info = new ServerInfoDetails();

            for (int index = 0; index < data.Length; index += 2)
            {
                switch (data[index])
                {
                case "hostname":
                    info.HostName = data[index + 1];
                    break;

                case "hostport":
                    info.HostPort = Convert.ToInt32(data[index + 1]);
                    break;

                case "maptitle":
                    info.MapTitle = data[index + 1];
                    break;

                case "mapname":
                    info.MapName = data[index + 1];
                    break;

                case "gametype":
                    info.GameType = data[index + 1];
                    break;

                case "numplayers":
                    info.PlayerCount = Convert.ToInt32(data[index + 1]);
                    break;

                case "maxplayers":
                    info.MaxPlayers = Convert.ToInt32(data[index + 1]);
                    break;

                case "gamemode":
                    info.GameMode = data[index + 1];
                    break;

                case "gamever":
                    info.GameVersion = data[index + 1];
                    break;

                case "minnetver":
                    info.MinNetVersion = data[index + 1];
                    break;

                case "worldlog":
                    info.WorldLog = Convert.ToBoolean(data[index + 1]);
                    break;

                case "wantworldlog":
                    info.WantWorldLog = Convert.ToBoolean(data[index + 1]);
                    break;

                case "queryid":
                    info.QueryId = data[index + 1];
                    break;

                default:
                    break;
                }
            }

            return(info);
        }
        public void SetUp()
        {
            var payload = @"\hostname\test server name\hostport\7777\maptitle\CTF-Bolt_HE (High End Systems)\mapname\CTF-Bolt_HE\gametype\ACLCTFGame\numplayers\11\maxplayers\13\gamemode\openplaying\gamever\451\minnetver\432\worldlog\false\wantworldlog\false\queryid\12.1\final\";

            _result = new InfoResponseMapper().Map(payload);
        }