public void GetGrpcWebMode_ContentTypes_Matched(string contentType, string expectedGrpcWebMode)
        {
            // Arrange
            var httpContext = new DefaultHttpContext();

            httpContext.Request.Method      = HttpMethods.Post;
            httpContext.Request.ContentType = contentType;

            // Act
            var grpcWebMode = GrpcWebMiddleware.GetGrpcWebMode(httpContext);

            // Assert
            Assert.AreEqual(Enum.Parse <ServerGrpcWebMode>(expectedGrpcWebMode), grpcWebMode);
        }
Exemplo n.º 2
0
        public void GetGrpcWebMode_NonPost_NotMatched()
        {
            // Arrange
            var httpContext = new DefaultHttpContext();

            httpContext.Request.Method      = HttpMethods.Options;
            httpContext.Request.ContentType = GrpcWebProtocolConstants.GrpcWebContentType;

            // Act
            var grpcWebContext = GrpcWebMiddleware.GetGrpcWebContext(httpContext);

            // Assert
            Assert.AreEqual(ServerGrpcWebMode.None, grpcWebContext.Request);
            Assert.AreEqual(ServerGrpcWebMode.None, grpcWebContext.Response);
        }
Exemplo n.º 3
0
        public void GetGrpcWebMode_Accept_Matched(
            string?contentType, string?accept,
            string expectedRequestGrpcWebMode, string expectedResponseGrpcWebMode)
        {
            // Arrange
            var httpContext = new DefaultHttpContext();

            httpContext.Request.Method            = HttpMethods.Post;
            httpContext.Request.ContentType       = contentType !;
            httpContext.Request.Headers["Accept"] = accept;

            // Act
            var grpcWebContext = GrpcWebMiddleware.GetGrpcWebContext(httpContext);

            // Assert
            Assert.AreEqual(Enum.Parse <ServerGrpcWebMode>(expectedRequestGrpcWebMode), grpcWebContext.Request);
            Assert.AreEqual(Enum.Parse <ServerGrpcWebMode>(expectedResponseGrpcWebMode), grpcWebContext.Response);
        }
        public void Setup()
        {
            var input = new Pipe();

            _inputPipe = input;
            var output = new Pipe();

            _outputPipe = output;

            _context = new DefaultHttpContext {
                RequestServices = Services
            };
            _context.Request.Path = "/Service/Method";
            Services.GetRequiredService <IHttpContextAccessor>().HttpContext = _context;
            _redirector = new BodyRedirector(_context, input, output);

            var logger           = Services.GetRequiredService <ILogger <GrpcWebMiddleware> >();
            var base64Transcoder = Services.GetRequiredService <Base64Transcoder>();
            var binaryTranscoder = Services.GetRequiredService <BinaryTranscoder>();

            _middleware = new GrpcWebMiddleware(Forward, logger, binaryTranscoder, base64Transcoder);
        }