public async Task MinRequestBodyDataRateFeature_ClientStreaming_DisablesRequestBodyDataRate() { // Arrange var httpContext = CreateContext(); var method = new Method <TestMessage, TestMessage>(MethodType.ClientStreaming, "test", "test", _marshaller, _marshaller); var call = new ClientStreamingServerCallHandler <TestService, TestMessage, TestMessage>( method, (service, reader, context) => Task.FromResult(new TestMessage()), new GrpcServiceOptions(), NullLoggerFactory.Instance); // Act await call.HandleCallAsync(httpContext); // Assert Assert.Null(httpContext.Features.Get <IHttpMinRequestBodyDataRateFeature>().MinDataRate); }
public void AddClientStreamingMethod <TRequestHeader, TRequest, TResponse>( Method <Message <TRequest>, TResponse> method, Func <MethodInfo> resolveContractMethodDefinition, Marshaller <TRequestHeader>?requestHeaderMarshaller, IList <object> metadata, Func <TService, TRequestHeader?, IAsyncEnumerable <TRequest>, ServerCallContext, Task <TResponse> > handler) where TRequestHeader : class where TResponse : class { var filterHandlerFactory = _filterRegistration.CreateHandlerFactory(metadata, resolveContractMethodDefinition); var invoker = new ClientStreamingServerCallHandler <TService, TRequestHeader, TRequest, TResponse>(handler, requestHeaderMarshaller, filterHandlerFactory); if (_requiresGrpcMarker) { metadata = AddServiceModelGrpcMarker(metadata, filterHandlerFactory?.ContractMethodDefinition ?? resolveContractMethodDefinition()); } _context.AddClientStreamingMethod(method, metadata, invoker.Handle); }