/// <summary> /// Create an <see cref="HttpMessageHandler"/>. /// </summary> /// <param name="resources">Instance where faked responses are stored</param> /// <param name="callbacks"></param> /// <returns>A <see cref="HttpMessageHandler"/> appropriate for the current <see cref="Mode"/></returns> /// <exception cref="InvalidOperationException">If <see cref="Mode"/> is <see cref="MessageHandlerMode.Capture"/> /// or <see cref="MessageHandlerMode.Automatic"/></exception> /// <exception cref="ArgumentNullException"/> public static HttpMessageHandler CreateMessageHandler(IReadOnlyResources resources, IResponseCallbacks callbacks) { if (resources == null) { throw new ArgumentNullException("resources"); } if (callbacks == null) { throw new ArgumentNullException("callbacks"); } if (Mode == MessageHandlerMode.Fake) { return(new FakeHttpMessageHandler(new ReadOnlyResponseStore(resources, callbacks))); } if (Mode == MessageHandlerMode.Capture || Mode == MessageHandlerMode.Automatic) { throw new InvalidOperationException("Cannot use Capture or Automatic mode with an IReadOnlyResources"); } // else online var clientHandler = new HttpClientHandler(); if (clientHandler.SupportsAutomaticDecompression) { clientHandler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; } return(clientHandler); }
/// <summary> /// ctor /// </summary> /// <param name="resources">An object that can access stored response</param> /// <exception cref="ArgumentNullException"/> public FakeHttpMessageHandler(IReadOnlyResources resources) : this(new ReadOnlyResponseStore(resources)) { }
/// <summary> /// /// </summary> /// <param name="resources">An instance that manages the underlying storage of response resources</param> /// <param name="callbacks">Object used to allow client code to modify responses during load and storage</param> /// <exception cref="ArgumentNullException"/> public ReadOnlyResponseStore(IReadOnlyResources resources, IResponseCallbacks callbacks) { _resources = resources ?? throw new ArgumentNullException("loader"); _formatter = new MessageFormatter(callbacks); }
/// <summary> /// /// </summary> /// <param name="resources">An instance that manages the underlying storage of response resources</param> /// <exception cref="ArgumentNullException"/> public ReadOnlyResponseStore(IReadOnlyResources resources) : this(resources, new ResponseCallbacks()) { }
/// <summary> /// Create an <see cref="System.Net.Http.HttpMessageHandler"/>. /// </summary> /// <param name="resources">Instance where faked responses are stored</param> /// <returns>A <see cref="System.Net.Http.HttpMessageHandler"/></returns> /// <exception cref="ArgumentNullException"/> public static HttpMessageHandler CreateMessageHandler(IReadOnlyResources resources) { return(CreateMessageHandler(resources, new ResponseCallbacks())); }