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"); } }
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); } }