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();
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 9
0
        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();
        }
Esempio n. 10
0
        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();
Esempio n. 14
0
 public GetTestResponse GetTestList(GetTestRequest request)
 {
     return(dal.PRC_GET_TESTS(request));
 }