コード例 #1
0
        public void AfterClientSendingGetPopularServersRequest()
        {
            SendServer2Info();
            SendServer3Info();
            var match = Test.CreateGameMatchStats();

            for (var i = 0; i < 5; i++)
            {
                client.SendRequest().PutMatchStats(match, Test.Server1Endpoint, Test.Timestamp1);
            }
            for (var i = 0; i < 3; i++)
            {
                client.SendRequest().PutMatchStats(match, Test.Server2Endpoint, Test.Timestamp1);
            }
            for (var i = 0; i < 2; i++)
            {
                client.SendRequest().PutMatchStats(match, Test.Server3Endpoint, Test.Timestamp1);
            }
            var response = client.GetPopularServers(3);

            server.ClearDatabaseAndCache();
            var server1        = new GameServerStats(Test.Server1Endpoint, Test.Server1Name, 5);
            var server2        = new GameServerStats(Test.Server2Endpoint, Test.Server2Name, 3);
            var server3        = new GameServerStats(Test.Server3Endpoint, Test.Server3Name, 2);
            var servers        = new[] { server1, server2, server3 };
            var json           = Extensions.SerializePopularServers(servers);
            var popularServers = JsonConvert.DeserializeObject <GameServerStats[]>(json);
            var result         = JsonConvert.DeserializeObject <GameServerStats[]>(response.Message);

            result.ShouldBeEquivalentTo(popularServers);
        }
コード例 #2
0
        public void AfterClientSendingGetRecentMatchesRequest()
        {
            var match      = Test.CreateGameMatchStats();
            var count      = 3;
            var timestamps = new DateTime[count];

            for (var i = 0; i < count; i++)
            {
                timestamps[i] = new DateTime(2017, 3, i + 1, 10, 10, 0);
                client.SendRequest().PutMatchStats(match, Test.Server1Endpoint, timestamps[i]);
            }
            var neededCount = 2;
            var matches     = new GameMatchResult[neededCount];

            for (var i = 0; i < neededCount; i++)
            {
                matches[i] = new GameMatchResult(Test.Server1Endpoint, timestamps[i + neededCount - 1])
                {
                    Results = match
                }
            }
            ;
            var response = client.GetRecentMatches(neededCount);

            server.ClearDatabaseAndCache();
            var result = JsonConvert.DeserializeObject <GameMatchResult[]>(response.Message);

            result.ShouldAllBeEquivalentTo(matches);
        }
コード例 #3
0
        public void AfterClientSendingPutAndGetMatchStatsRequest()
        {
            SendGameMatch();
            var response = client.SendRequest().GetMatchStats(Test.Server1Endpoint, Test.Timestamp1);

            server.ClearDatabaseAndCache();
            var gameMatch = JsonConvert.DeserializeObject <GameMatchStats>(response.Message);

            gameMatch.ShouldBeEquivalentTo(Test.CreateGameMatchStats());
        }
コード例 #4
0
        public void AfterClientSendingGetBestPlayersRequest()
        {
            var match      = Test.CreateGameMatchStats();
            var count      = 10;
            var timestamps = new DateTime[count];

            for (var i = 0; i < count; i++)
            {
                timestamps[i] = new DateTime(2017, 3, i + 1, 10, 10, 0);
                client.SendRequest().PutMatchStats(match, Test.Server1Endpoint, timestamps[i]);
            }
            var response = client.SendRequest().GetBestPlayers(3);

            server.ClearDatabaseAndCache();
            var result        = JsonConvert.DeserializeObject <PlayerStats[]>(response.Message);
            var playerQoter   = new PlayerStats(Test.PlayerQoter, match.Scoreboard[0].Kills / (double)match.Scoreboard[0].Deaths);
            var playerSnoward = new PlayerStats(Test.PlayerSnoward, match.Scoreboard[2].Kills / (double)match.Scoreboard[2].Deaths);
            var playerNameOff = new PlayerStats(Test.PlayerNameOff, match.Scoreboard[1].Kills / (double)match.Scoreboard[1].Deaths);
            var playersStats  = new[] { playerQoter, playerSnoward, playerNameOff };
            var json          = Extensions.SerializeTopPlayers(playersStats);
            var bestPlayers   = JsonConvert.DeserializeObject <PlayerStats[]>(json);

            result.ShouldBeEquivalentTo(bestPlayers);
        }
コード例 #5
0
        private void SendGameMatch()
        {
            var matchStats = Test.CreateGameMatchStats();

            client.SendRequest().PutMatchStats(matchStats, Test.Server1Endpoint, Test.Timestamp1);
        }