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));
        }