public void Then_If_It_Is_Not_Successful_An_Exception_Is_Thrown( PostData postContent, int id, FindApprenticeshipTrainingApi config) { //Arrange var configMock = new Mock <IOptions <FindApprenticeshipTrainingApi> >(); configMock.Setup(x => x.Value).Returns(config); var response = new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest }; var postTestRequest = new PostTestRequest(id, "https://test.local") { Data = postContent }; var expectedUrl = postTestRequest.PostUrl; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, expectedUrl, config.Key, HttpMethod.Post); var client = new HttpClient(httpMessageHandler.Object); var apiClient = new ApiClient(client, configMock.Object); //Act Assert Assert.ThrowsAsync <HttpRequestException>(() => apiClient.Post <Guid, PostData>(postTestRequest)); }
public async Task Then_The_Endpoint_Is_Called_With_Authentication_Header_And_Data_Returned( List <string> testObject, FindApprenticeshipTrainingApi config) { //Arrange var configMock = new Mock <IOptions <FindApprenticeshipTrainingApi> >(); configMock.Setup(x => x.Value).Returns(config); var getTestRequest = new GetTestRequest("https://test.local"); var response = new HttpResponseMessage { Content = new StringContent(JsonConvert.SerializeObject(testObject)), StatusCode = HttpStatusCode.Accepted }; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, getTestRequest.GetUrl, config.Key, HttpMethod.Get); 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 async Task Then_The_Endpoint_Is_Called( int id, FindApprenticeshipTrainingApi config) { //Arrange var configMock = new Mock <IOptions <FindApprenticeshipTrainingApi> >(); configMock.Setup(x => x.Value).Returns(config); var response = new HttpResponseMessage { StatusCode = HttpStatusCode.Accepted }; var deleteTestRequest = new DeleteTestRequest(id, "https://test.local"); var expectedUrl = deleteTestRequest.DeleteUrl; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, expectedUrl, config.Key, HttpMethod.Delete); var client = new HttpClient(httpMessageHandler.Object); var apiClient = new ApiClient(client, configMock.Object); //Act await apiClient.Delete(deleteTestRequest); //Assert httpMessageHandler.Protected() .Verify <Task <HttpResponseMessage> >( "SendAsync", Times.Once(), ItExpr.Is <HttpRequestMessage>(c => c.Method.Equals(HttpMethod.Delete) && c.RequestUri.AbsoluteUri.Equals(expectedUrl)), ItExpr.IsAny <CancellationToken>() ); }
public void Then_If_It_Is_Not_Successful_An_Exception_Is_Thrown( FindApprenticeshipTrainingApi config) { //Arrange var configMock = new Mock <IOptions <FindApprenticeshipTrainingApi> >(); configMock.Setup(x => x.Value).Returns(config); var getTestRequest = new GetTestRequest("https://test.local"); var response = new HttpResponseMessage { Content = new StringContent(""), StatusCode = HttpStatusCode.BadRequest }; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, getTestRequest.GetUrl, config.Key, HttpMethod.Get); var client = new HttpClient(httpMessageHandler.Object); var apiClient = new ApiClient(client, configMock.Object); //Act Assert Assert.ThrowsAsync <HttpRequestException>(() => apiClient.Get <List <string> >(getTestRequest)); }
public async Task Then_The_Endpoint_Is_Called_And_The_Status_is_Returned( FindApprenticeshipTrainingApi config) { //Arrange config.PingUrl = "https://test.local/"; var configMock = new Mock <IOptions <FindApprenticeshipTrainingApi> >(); 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, HttpMethod.Get); 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); }
public async Task Then_The_Endpoint_Is_Called( Guid responseId, PostData postContent, int id, FindApprenticeshipTrainingApi config) { //Arrange var configMock = new Mock <IOptions <FindApprenticeshipTrainingApi> >(); configMock.Setup(x => x.Value).Returns(config); var response = new HttpResponseMessage { Content = new StringContent($"'{responseId}'"), StatusCode = HttpStatusCode.Accepted }; var postTestRequest = new PostTestRequest(id, "https://test.local") { Data = postContent }; var expectedUrl = postTestRequest.PostUrl; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, expectedUrl, config.Key, HttpMethod.Post); var client = new HttpClient(httpMessageHandler.Object); var apiClient = new ApiClient(client, configMock.Object); //Act var actual = await apiClient.Post <string, PostData>(postTestRequest); //Assert httpMessageHandler.Protected() .Verify <Task <HttpResponseMessage> >( "SendAsync", Times.Once(), ItExpr.Is <HttpRequestMessage>(c => c.Method.Equals(HttpMethod.Post) && c.RequestUri.AbsoluteUri.Equals(expectedUrl)), ItExpr.IsAny <CancellationToken>() ); Guid.Parse(actual).Should().Be(responseId); }
public async Task Then_If_It_Is_Not_Found_Default_Is_Returned( FindApprenticeshipTrainingApi config) { //Arrange var configMock = new Mock <IOptions <FindApprenticeshipTrainingApi> >(); configMock.Setup(x => x.Value).Returns(config); var getTestRequest = new GetTestRequest("https://test.local"); var response = new HttpResponseMessage { Content = new StringContent(""), StatusCode = HttpStatusCode.NotFound }; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, getTestRequest.GetUrl, config.Key, HttpMethod.Get); var client = new HttpClient(httpMessageHandler.Object); var apiClient = new ApiClient(client, configMock.Object); //Act Assert var actual = await apiClient.Get <List <string> >(getTestRequest); actual.Should().BeNull(); }
public ApiClient(HttpClient httpClient, IOptions <FindApprenticeshipTrainingApi> config) { _httpClient = httpClient; _config = config.Value; }
public CourseService(IApiClient apiClient, IOptions <FindApprenticeshipTrainingApi> config) { _apiClient = apiClient; _config = config.Value; }
public LocationService(IApiClient client, IOptions <FindApprenticeshipTrainingApi> config) { _client = client; _config = config.Value; }
public ShortlistService(IApiClient apiClient, IOptions <FindApprenticeshipTrainingApi> config) { _apiClient = apiClient; _configValue = config.Value; }