Exemplo n.º 1
0
        protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            string url = request.RequestUri.AbsoluteUri;

            if (!CallToTheAPIIndex.ContainsKey(url))
            {
                CallToTheAPIIndex.Add(url, 0);
            }
            else
            {
                CallToTheAPIIndex[url]++;
            }
            var              batchIdParameter = request.Content?.Headers?.ContentType?.Parameters.FirstOrDefault(param => param.Name == "boundary");
            Regex            batchGuidRegex   = new Regex("batchresponse_([0-9A-Fa-f]{8}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{12})");
            MockHttpResponse response         = Responses.Where(resp => resp.Url == url).ToList()[CallToTheAPIIndex[url]];

            if (response != null)
            {
#pragma warning disable CA2000 // Dispose objects before losing scope
                HttpResponseMessage result = new HttpResponseMessage(System.Net.HttpStatusCode.OK);
#pragma warning restore CA2000 // Dispose objects before losing scope
                if (batchIdParameter != null)
                {
                    response.Content = batchGuidRegex.Replace(response.Content, batchIdParameter.Value.Replace("batch", "batchresponse"));
                }
                result.Content = new StringContent(response.Content);
                return(Task.FromResult(result));
            }
            return(Task.FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.NotFound)));
        }
Exemplo n.º 2
0
        protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            string url = request.RequestUri.AbsoluteUri;

            if (!CallToTheAPIIndex.ContainsKey(url))
            {
                CallToTheAPIIndex.Add(url, 0);
            }
            else
            {
                CallToTheAPIIndex[url]++;
            }
            MockHttpResponse response = Responses.Where(resp => resp.Url == url).ToList()[CallToTheAPIIndex[url]];

            if (response != null)
            {
#pragma warning disable CA2000 // Dispose objects before losing scope
                HttpResponseMessage result = new HttpResponseMessage(System.Net.HttpStatusCode.OK);
#pragma warning restore CA2000 // Dispose objects before losing scope
                result.Content = new StringContent(response.Content);
                return(Task.FromResult(result));
            }
            return(Task.FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.NotFound)));
        }