コード例 #1
0
        public void SendRequest_ShouldRequestANewTokenIfExpired()
        {
            Task.Run(async() =>
            {
                string expired   = readMockDataFromFile($"/../../../MockData/expiredTokenMock.json");
                string valid     = readMockDataFromFile($"/../../../MockData/tokenMock.json");
                var expectedDict = JsonConvert.DeserializeObject <Dictionary <string, string> >(valid);

                var client   = new Mock <IWebClient>();
                var response = new Mock <IApiResponse>();
                response.Setup(i => i.IsSuccessful()).Returns(true);
                response.Setup(i => i.ReadContentAsync()).ReturnsAsync(expired);

                client.Setup(i => i.RequestAccessTokenAsync()).ReturnsAsync(response.Object);
                client.Setup(i => i.MakeApiRequestAsync(It.IsAny <string>())).ReturnsAsync(response.Object);

                var reader = new ApiReader(defaultConfig, client.Object);
                try
                {
                    await reader.GetAsync <Dictionary <string, string> >("anything");
                    response.Setup(i => i.ReadContentAsync()).ReturnsAsync(valid);
                    var answer = await reader.GetAsync <Dictionary <string, string> >("anything");
                    answer.Should().BeEquivalentTo(expectedDict);
                }
                catch
                {
                    Assert.Fail();
                }
            }).GetAwaiter().GetResult();
        }
コード例 #2
0
        public void GetAsync_ShouldThrowIfInvalidTest()
        {
            Task.Run(async() =>
            {
                try
                {
                    var reader = new ApiReader();
                    // reader has no configuration nor token

                    await reader.GetAsync <object>("anyquery");
                    Assert.Fail();
                }
                catch
                {
                }
            }).GetAwaiter().GetResult();
        }
コード例 #3
0
        public async Task <Static> GetStaticAsync(int regionID)
        {
            string query = $"/sc2/static/profile/{regionID}";

            return(await reader.GetAsync <Static>(query));
        }
コード例 #4
0
        public async Task <BattleAccount> GetApiAccountAsync(string battleTag)
        {
            string query = $"/d3/profile/{battleTag}/";

            return(await reader.GetAsync <BattleAccount>(query));
        }
コード例 #5
0
        public async Task <Achievement> GetAchievementAsync(int achievementId)
        {
            string query = $"/wow/achievement/{achievementId}";

            return(await reader.GetAsync <Achievement>(query));
        }
コード例 #6
0
        public async Task <Card> GetCardAsync(string idOrSlug)
        {
            string query = $"/hearhstone/cards/{idOrSlug}";

            return(await reader.GetAsync <Card>(query));
        }