public async Task<TestDto> Get([FromUri] string id) { var request = new GetTestRequest { Id = id }; return await _mediator.ExecuteAsync(request).ConfigureAwait(false); }
public async Task Then_If_It_Is_Not_Found_Default_Is_Returned( ApprovalsOuterApiConfiguration config) { //Arrange config.BaseUrl = "https://test.local"; var getTestRequest = new GetTestRequest(); 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, config); //Act Assert var actual = await apiClient.Get <List <string> >(getTestRequest); actual.Should().BeNull(); }
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( string authToken, int id, TestInternalApiConfiguration config) { //Arrange var azureClientCredentialHelper = new Mock <IAzureClientCredentialHelper>(); azureClientCredentialHelper.Setup(x => x.GetAccessTokenAsync(config.Identifier)).ReturnsAsync(authToken); config.Url = "https://test.local"; var response = new HttpResponseMessage { Content = new StringContent(""), StatusCode = HttpStatusCode.Accepted }; var getTestRequest = new GetTestRequest(id); var expectedUrl = $"{config.Url}/{getTestRequest.GetUrl}"; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, expectedUrl); var client = new HttpClient(httpMessageHandler.Object); var clientFactory = new Mock <IHttpClientFactory>(); clientFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client); var actual = new InternalApiClient <TestInternalApiConfiguration>(clientFactory.Object, config, azureClientCredentialHelper.Object); //Act await actual.Get <string>(getTestRequest); //Assert httpMessageHandler.Protected() .Verify <Task <HttpResponseMessage> >( "SendAsync", Times.Once(), ItExpr.Is <HttpRequestMessage>(c => c.Method.Equals(HttpMethod.Get) && c.RequestUri.AbsoluteUri.Equals(expectedUrl) && c.Headers.Authorization.Scheme.Equals("Bearer") && c.Headers.FirstOrDefault(h => h.Key.Equals("X-Version")).Value.FirstOrDefault() == "2.0" && c.Headers.Authorization.Parameter.Equals(authToken)), ItExpr.IsAny <CancellationToken>() ); }
public async Task Then_The_Bearer_Token_Is_Not_Added_If_Local_And_Default_Version_If_Not_Specified( int id, TestInternalApiConfiguration config) { //Arrange config.Url = "https://test.local"; var configuration = config; var response = new HttpResponseMessage { Content = new StringContent(""), StatusCode = HttpStatusCode.Accepted }; var getTestRequest = new GetTestRequest(id); var expectedUrl = $"{config.Url}{getTestRequest.GetUrl}"; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, expectedUrl); var client = new HttpClient(httpMessageHandler.Object); var hostingEnvironment = new Mock <IWebHostEnvironment>(); var clientFactory = new Mock <IHttpClientFactory>(); clientFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client); hostingEnvironment.Setup(x => x.EnvironmentName).Returns("Development"); var actual = new InternalApiClient <TestInternalApiConfiguration>(clientFactory.Object, configuration, hostingEnvironment.Object, Mock.Of <IAzureClientCredentialHelper>()); //Act await actual.GetResponseCode(getTestRequest); //Assert httpMessageHandler.Protected() .Verify <Task <HttpResponseMessage> >( "SendAsync", Times.Once(), ItExpr.Is <HttpRequestMessage>(c => c.Method.Equals(HttpMethod.Get) && c.Headers.FirstOrDefault(h => h.Key.Equals("X-Version")).Value.FirstOrDefault() == "2.0" && c.RequestUri.AbsoluteUri.Equals(expectedUrl) && c.Headers.Authorization == null), ItExpr.IsAny <CancellationToken>() ); }
public async Task Then_The_Endpoint_Is_Called( int id, TestCustomerEngagementApiConfiguration config) { //Arrange config.Url = "https://test.local"; var response = new HttpResponseMessage { Content = new StringContent(""), StatusCode = HttpStatusCode.Accepted }; var getTestRequest = new GetTestRequest(config.Url, id) { BaseUrl = config.Url }; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, getTestRequest.GetUrl); var client = new HttpClient(httpMessageHandler.Object); var hostingEnvironment = new Mock <IWebHostEnvironment>(); var clientFactory = new Mock <IHttpClientFactory>(); clientFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client); hostingEnvironment.Setup(x => x.EnvironmentName).Returns("Staging"); var actual = new CustomerEngagementApiClient <TestCustomerEngagementApiConfiguration>(clientFactory.Object, config, hostingEnvironment.Object); //Act await actual.Get <string>(getTestRequest); //Assert httpMessageHandler.Protected() .Verify <Task <HttpResponseMessage> >( "SendAsync", Times.Once(), ItExpr.Is <HttpRequestMessage>(c => c.Method.Equals(HttpMethod.Get) && c.RequestUri.AbsoluteUri.Equals(getTestRequest.GetUrl) && c.Headers.FirstOrDefault(h => h.Key.Equals("Ocp-Apim-Subscription-Key")).Value.FirstOrDefault() == config.SubscriptionKey), ItExpr.IsAny <CancellationToken>() ); }
public void Then_If_It_Is_Not_Successful_An_Exception_Is_Thrown( OuterApiConfiguration config, Mock <IEnumerable <ICmsPageConverter> > converters) { //Arrange var configMock = new Mock <IOptions <CampaignConfiguration> >(); config.BaseUrl = "https://test.local/"; configMock.Setup(x => x.Value.OuterApi).Returns(config); var getTestRequest = new GetTestRequest(); var response = new HttpResponseMessage { Content = new StringContent(""), StatusCode = HttpStatusCode.BadRequest }; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, config.BaseUrl + getTestRequest.GetUrl, config.Key); var client = new HttpClient(httpMessageHandler.Object); var apiClient = new ApiClient(client, configMock.Object, converters.Object); //Act Assert Assert.ThrowsAsync <HttpRequestException>(() => apiClient.Get <List <string> >(getTestRequest)); }
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_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 async Task Then_The_Endpoint_Is_Called_With_Authentication_Header_And_Data_Returned( List <string> testObject, ApprovalsOuterApiConfiguration config) { //Arrange config.BaseUrl = "https://test.local"; var getTestRequest = new GetTestRequest(); 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, config); //Act var actual = await apiClient.Get <List <string> >(getTestRequest); //Assert actual.Should().BeEquivalentTo(testObject); }
public void Then_If_It_Is_Not_Successful_An_Exception_Is_Thrown() { //Arrange var key = "123-abc-567"; var getTestRequest = new GetTestRequest(); var config = new OuterApiConfiguration { BaseUrl = "http://valid-url/", Key = key }; var mockConfig = new Mock <IOptions <OuterApiConfiguration> >(); mockConfig.Setup(x => x.Value).Returns(config); var response = new HttpResponseMessage { Content = new StringContent(""), StatusCode = HttpStatusCode.BadRequest }; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, $"{config.BaseUrl}{getTestRequest.GetUrl}", config.Key); var client = new HttpClient(httpMessageHandler.Object); var apiClient = new OuterApiClient(client, mockConfig.Object); //Act Assert Assert.ThrowsAsync <HttpRequestException>(() => apiClient.Get <List <string> >(getTestRequest)); }
public async Task Then_If_It_Is_Not_Found_Default_Is_Returned( OuterApiConfiguration config, Mock <IEnumerable <ICmsPageConverter> > converters) { //Arrange var configMock = new Mock <IOptions <CampaignConfiguration> >(); config.BaseUrl = "https://test.local/"; configMock.Setup(x => x.Value.OuterApi).Returns(config); var getTestRequest = new GetTestRequest(); 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, converters.Object); //Act Assert var actual = await apiClient.Get <List <string> >(getTestRequest); actual.Should().BeNull(); }
public IActionResult Get([FromQuery][FromServices] GetTestRequest request) => request.Handle();
public GetTestResponse GetTestList(GetTestRequest request) { return(dal.PRC_GET_TESTS(request)); }