public async Task GetAsyncReturnsRobotTextWhenApiReturnsRobotText() { const string ExpectedResponseText = "SomeResponseText"; var httpResponse = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(ExpectedResponseText), }; var fakeHttpRequestSender = A.Fake <IFakeHttpRequestSender>(); A.CallTo(() => fakeHttpRequestSender.Send(A <HttpRequestMessage> .Ignored)).Returns(httpResponse); var fakeHttpMessageHandler = new FakeHttpMessageHandler(fakeHttpRequestSender); var httpClient = new HttpClient(fakeHttpMessageHandler) { BaseAddress = new Uri("http://SomeDummyCDNUrl") }; var robotService = new ApplicationRobotService(httpClient); var model = new ApplicationRobotModel { BearerToken = "SomeBearerToken" }; var result = await robotService.GetAsync(model); Assert.Equal(ExpectedResponseText, result); httpResponse.Dispose(); httpClient.Dispose(); fakeHttpMessageHandler.Dispose(); }
public async Task GetAsyncReturnsNullIfModelIsNull() { var robotService = new ApplicationRobotService(defaultHttpClient); var result = await robotService.GetAsync(null); Assert.Null(result); }
public async Task GetAsyncReturnsExceptionIfNoRobotsTextFound() { var robotService = new ApplicationRobotService(defaultHttpClient); var model = new ApplicationRobotModel { BearerToken = "SomeBearerToken" }; var exceptionResult = await Assert.ThrowsAsync <InvalidOperationException>(async() => await robotService.GetAsync(model)); Assert.StartsWith("An invalid request URI was provided.", exceptionResult.Message, StringComparison.OrdinalIgnoreCase); }