Beispiel #1
0
        public async Task GetCountriesAsync_ThrowsExceptionWithUnsuccessfulGet()
        {
            _appSettings.SetupGet(a => a.CurrentValue)
            .Returns(new AppSettingsOptions {
                CountryApiUrl = "http://mytest.com/?id={0}"
            });
            var testHandler =
                new TestHttpClientMessageHandler(HttpStatusCode.InternalServerError, "something happened");

            using (var httpClient = new HttpClient(testHandler))
            {
                var client = new CountryApiClient(httpClient, _appSettings.Object);
                await client.GetCountriesAsync("Wales");
            }
        }
Beispiel #2
0
        public async Task GetCountriesAsync_ReturnsDeserializedData()
        {
            _appSettings.SetupGet(a => a.CurrentValue)
            .Returns(new AppSettingsOptions {
                CountryApiUrl = "http://mytest.com/?id={0}"
            });
            var testHandler =
                new TestHttpClientMessageHandler(HttpStatusCode.OK, TestResponses.ValidCountryResponse);

            using (var httpClient = new HttpClient(testHandler))
            {
                var client = new CountryApiClient(httpClient, _appSettings.Object);
                var result = await client.GetCountriesAsync("United Kingdom");

                Assert.AreEqual(1, result.Count);
                Assert.AreEqual("GBR", result.First().Alpha3Code);

                //TODO: Perhaps not ideal to test output and behaviour in the same
                //test but it saves a lot of code!
                _appSettings.VerifyGet(a => a.CurrentValue, Times.Once);
            }
        }