예제 #1
0
        protected override async Task <SystemHttpResponseMessage> SendAsync(SystemHttpRequestMessage request, CancellationToken cancellationToken)
        {
            var setups = this.setups.Find(request).ToList();

            // there are no setups that were found successful.
            if (setups.All(x => x.Exception is MockHttpClientException))
            {
                throw MockHttpClientException.Combined(setups.Select(x => x.Exception));
            }

            // there are more than 1 setup that was found.
            if (setups.Count(x => x.Exception is null) > 1)
            {
                throw await MockHttpClientException.MatchedMultipleRequests(request, setups.Count());
            }

            var(setup, exception) = setups.FirstOrDefault(x => x.Exception is null);

            if (setup is null)
            {
                throw await MockHttpClientException.NoSetupAsync(request);
            }

            var result = setup.Results.GetResultNext();

            if (result is null)
            {
                throw await MockHttpClientException.NoMatchingResponses(request);
            }

            result.Matched = true;

            return(result.HttpResponseMessage);
        }
예제 #2
0
파일: Setup.cs 프로젝트: Theorem/MockNet
        private MockHttpClientException TryVerify(Func <Result, MockHttpClientException> verify)
        {
            List <MockHttpClientException> errors = new List <MockHttpClientException>();

            foreach (var result in Results)
            {
                var error = verify(result);
                if (error is MockHttpClientException)
                {
                    errors.Add(error);
                }
            }

            if (errors.Any())
            {
                return(MockHttpClientException.Combined(errors));
            }

            return(null);
        }
예제 #3
0
        private MockHttpClientException TryVerify(Func <Setup, MockHttpClientException> verify)
        {
            List <MockHttpClientException> errors = new List <MockHttpClientException>();

            foreach (var setup in Setups)
            {
                var error = verify(setup);
                if (error is MockHttpClientException)
                {
                    errors.Add(error);
                }
            }

            if (errors.Any())
            {
                return(MockHttpClientException.Combined(errors));
            }

            return(null);
        }