private static HttpContext CreateContext( bool isMaxRequestBodySizeFeatureReadOnly = false, bool skipTrailerFeatureSet = false, string?protocol = null, string?contentType = null) { var httpContext = new DefaultHttpContext(); var responseFeature = new TestHttpResponseFeature(); var responseBodyFeature = new TestHttpResponseBodyFeature(httpContext.Features.Get <IHttpResponseBodyFeature>(), responseFeature); httpContext.Request.Protocol = protocol ?? GrpcProtocolConstants.Http2Protocol; httpContext.Request.ContentType = contentType ?? GrpcProtocolConstants.GrpcContentType; httpContext.Features.Set <IHttpMinRequestBodyDataRateFeature>(new TestMinRequestBodyDataRateFeature()); httpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(new TestMaxRequestBodySizeFeature(isMaxRequestBodySizeFeatureReadOnly, 100)); httpContext.Features.Set <IHttpResponseFeature>(responseFeature); httpContext.Features.Set <IHttpResponseBodyFeature>(responseBodyFeature); if (!skipTrailerFeatureSet) { httpContext.Features.Set <IHttpResponseTrailersFeature>(new TestHttpResponseTrailersFeature()); } return(httpContext); }
public TestHttpResponseBodyFeature(IHttpResponseBodyFeature innerResponseBodyFeature, TestHttpResponseFeature responseFeature) { _innerResponseBodyFeature = innerResponseBodyFeature ?? throw new ArgumentNullException(nameof(innerResponseBodyFeature)); _responseFeature = responseFeature ?? throw new ArgumentNullException(nameof(responseFeature)); }