public async Task Then_The_Endpoint_Is_Called_With_Authentication_Header_And_Data_Returned( List <string> testObject, GetTestRequest getTestRequest, FindEpaoApi config) { //Arrange config.BaseUrl = "http://valid-url/"; var configMock = new Mock <IOptions <FindEpaoApi> >(); configMock.Setup(x => x.Value).Returns(config); var response = new HttpResponseMessage { Content = new StringContent(JsonConvert.SerializeObject(testObject)), StatusCode = HttpStatusCode.Accepted }; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, $"{config.BaseUrl}{getTestRequest.GetUrl}", config.Key); var client = new HttpClient(httpMessageHandler.Object); var apiClient = new ApiClient(client, configMock.Object); //Act var actual = await apiClient.Get <List <string> >(getTestRequest); //Assert actual.Should().BeEquivalentTo(testObject); }
public ApiClient( HttpClient httpClient, IOptions <FindEpaoApi> options) { _httpClient = httpClient; _config = options.Value; _httpClient.BaseAddress = new Uri(_config.BaseUrl); }
public void And_Not_Successful_And_Is_404_Then_NotFoundException_Is_Thrown( GetTestRequest getTestRequest, FindEpaoApi config) { //Arrange config.BaseUrl = "http://valid-url/"; var configMock = new Mock <IOptions <FindEpaoApi> >(); configMock.Setup(x => x.Value).Returns(config); var response = new HttpResponseMessage { Content = new StringContent(""), StatusCode = HttpStatusCode.NotFound }; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, $"{config.BaseUrl}{getTestRequest.GetUrl}", config.Key); var client = new HttpClient(httpMessageHandler.Object); var apiClient = new ApiClient(client, configMock.Object); //Act Assert Assert.ThrowsAsync <NotFoundException <List <string> > >(() => apiClient.Get <List <string> >(getTestRequest)); }
public async Task Then_The_Endpoint_Is_Called_And_The_Status_is_Returned( FindEpaoApi config) { //Arrange config.PingUrl = "https://test.local/"; config.BaseUrl = "http://valid-url/"; var configMock = new Mock <IOptions <FindEpaoApi> >(); configMock.Setup(x => x.Value).Returns(config); var response = new HttpResponseMessage { Content = new StringContent(""), StatusCode = HttpStatusCode.Accepted }; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, $"{config.PingUrl}ping", config.Key); var client = new HttpClient(httpMessageHandler.Object); var apiClient = new ApiClient(client, configMock.Object); //Act var actual = await apiClient.Ping(); //Assert actual.Should().Be((int)HttpStatusCode.Accepted); }