public async Task Then_The_Endpoint_Is_Called( WhenCallingPostOnTheApiClient.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.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( WhenCallingPostOnTheApiClient.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 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 Assert Assert.ThrowsAsync <HttpRequestException>(() => apiClient.Delete(deleteTestRequest)); }