예제 #1
0
        public async Task Posting_new_score_updates_default_leaderboard()
        {
            var client = await GetClientAsync(username : "******");

            LeaderboardGetResponse leaderboardBefore = await GetLeaderboardAsync(client);

            List <LeaderboardGetResponse.LeaderboardEntry> entries =
                leaderboardBefore.Entries.Where(e => e.Gamertag == "testuser").ToList();

            //check that there is only one or less (if score wasn't posted yet) entry per user
            Assert.True(entries.Count <= 1);
            int oldScore = entries.Count == 0 ? 0 : entries.First().Score;

            //update the score posting a different (higher) result
            int newScore = oldScore + 1;

            await PostScoreAsync(client, newScore);

            //check that leaderboard has the updated score
            LeaderboardGetResponse leaderboardAfter = await GetLeaderboardAsync(client);

            int newFreshScore = leaderboardAfter.Entries.Where(e => e.Gamertag == "testuser").Select(e => e.Score).First();

            Assert.Equal(newFreshScore, newScore);
        }
예제 #2
0
        public async Task Limiting_top_scores_returns_limited_numer_of_rows()
        {
            var client = await GetClientAsync();

            LeaderboardGetResponse response = await GetLeaderboardAsync(client, "Top-5", HttpStatusCode.OK);

            Assert.True(response.Entries.Length <= 5);
        }