public void McfContextTest_Constructor_Null_Redis_Should_Throw()
        {
            // Arrange
            _redis = null;
            McfContext context = null;

            // Act
            Action action = () => context = CreateMcfContext();

            // Assert
            context.ShouldBeNull();
            action.ShouldThrow <ArgumentNullException>().
            ParamName.ShouldBe("redis");
        }
        public void McfContextTest_Constructor_Null_LoadBalancer_Should_Throw()
        {
            // Arrange
            _loadBalancer = null;
            McfContext context = null;

            // Act
            Action action = () => context = CreateMcfContext();

            // Assert
            context.ShouldBeNull();
            action.ShouldThrow <ArgumentNullException>().
            ParamName.ShouldBe("loadBalancerUri");
        }
        public new async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request)
        {
            if (request.Method == HttpMethod.Post)
            {
                var content = await request.Content.ReadAsStringAsync();

                var response = new HttpResponseMessage();
                if (content.Contains(EligibleAccountId))
                {
                    response.StatusCode = HttpStatusCode.Created;
                    McfContext.InsertContent(EligiblePaymentArrangement, response);
                }
                else if (content.Contains(NonEligibleAccountId))
                {
                    response.StatusCode = HttpStatusCode.Created;
                    McfContext.InsertContent(NonEligiblePaymentArrangement, response);
                }
                else if (content.Contains(ProblematicMarker))
                {
                    response.StatusCode = HttpStatusCode.InternalServerError;
                    McfContext.InsertContent("Error processing request", response);
                }
                return(response);
            }
            if (request.Method == HttpMethod.Get)
            {
                var response = new HttpResponseMessage();
                if (request.RequestUri.AbsoluteUri.Contains(EligibleAccountId))
                {
                    response.StatusCode = HttpStatusCode.OK;
                    McfContext.InsertContent(EligiblePaymentArrangement, response);
                }
                else if (request.RequestUri.AbsoluteUri.Contains(NonEligibleAccountId))
                {
                    response.StatusCode = HttpStatusCode.OK;
                    McfContext.InsertContent(NonEligiblePaymentArrangement, response);
                }
                else if (request.RequestUri.AbsoluteUri.Contains(ProblematicMarker))
                {
                    response.StatusCode = HttpStatusCode.InternalServerError;
                    McfContext.InsertContent("Error processing request", response);
                }
                return(response);
            }
            throw new NotImplementedException();
        }