示例#1
0
        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));
        }
示例#2
0
        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>()
                );
        }
示例#4
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));
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }
示例#7
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();
        }
 public ApiClient(HttpClient httpClient, IOptions <FindApprenticeshipTrainingApi> config)
 {
     _httpClient = httpClient;
     _config     = config.Value;
 }
示例#9
0
 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;
 }