예제 #1
0
 public Task <HttpResponseMessage> ProduceResponseAsync(MockHttpRequestContext requestContext, CancellationToken cancellationToken)
 {
     // It is somewhat unintuitive to throw TaskCanceledException but this is what HttpClient does atm,
     // so we simulate same behavior.
     // https://github.com/dotnet/corefx/issues/20296
     return(Task.Delay(_timeoutAfter, cancellationToken)
            .ContinueWith(_ =>
     {
         var tcs = new TaskCompletionSource <HttpResponseMessage>();
         tcs.TrySetCanceled();
         return tcs.Task;
     }, TaskScheduler.Current)
            .Unwrap());
 }
예제 #2
0
        public Task <HttpResponseMessage> ProduceResponseAsync(MockHttpRequestContext requestContext, CancellationToken cancellationToken)
        {
            Stream stream = _content();

            if (!stream.CanRead)
            {
                throw new IOException("Cannot read from stream.");
            }

            return(Task.FromResult(new HttpResponseMessage(_statusCode)
            {
                Content = new StreamContent(stream)
                {
                    Headers =
                    {
                        ContentType = _mediaType
                    }
                }
            }));
        }
예제 #3
0
 public Task <HttpResponseMessage> ProduceResponseAsync(MockHttpRequestContext requestContext, CancellationToken cancellationToken)
 {
     return(_responseFunc?.Invoke(requestContext.Request, cancellationToken) ?? Task.FromResult <HttpResponseMessage>(null));
 }
예제 #4
0
 public Task <HttpResponseMessage> ProduceResponseAsync(MockHttpRequestContext requestContext, CancellationToken cancellationToken)
 {
     throw _exceptionFactory() ?? new HttpMockException("The configured exception cannot be null.");
 }
예제 #5
0
 /// <inheritdoc />
 public abstract Task <HttpResponseMessage> ProduceResponseAsync(MockHttpRequestContext requestContext, CancellationToken cancellationToken);