Exemplo n.º 1
0
        public async Task AgentMiddlewareCallsNextDelegateOnInvalidHttpMethod()
        {
            var mockedContext = new Mock <IAgentProvider>();
            var nextInvoked   = false;

            // Arrange
            var middleware = new AgentMiddleware(next =>
            {
                nextInvoked = true;
                return(Task.CompletedTask);
            });

            var context = new DefaultHttpContext();

            context.Request.Body   = new MemoryStream();
            context.Request.Method = HttpMethod.Put.Method;

            await context.Response.Body.WriteAsync(new ReadOnlyMemory <byte>(new { dummy = "dummy" }.ToJson().GetUTF8Bytes()));

            //Act
            Func <Task> act = async() => await middleware.Invoke(context, mockedContext.Object);

            await act.Should().NotThrowAsync();

            nextInvoked.Should().BeTrue();
        }
Exemplo n.º 2
0
        public async Task AgentMiddlewareExecutedSuccessfully()
        {
            var mockedContext = new Mock <IAgentProvider>();
            var agentMock     = new Mock <IAgent>();

            mockedContext.Setup(x => x.GetAgentAsync())
            .ReturnsAsync(agentMock.Object);
            agentMock.Setup(x => x.ProcessAsync(It.IsAny <IAgentContext>(), It.IsAny <MessageContext>()))
            .Returns(Task.FromResult <MessageContext>(null));

            // Arrange
            var middleware = new AgentMiddleware(next => Task.CompletedTask);

            var context = new DefaultHttpContext();

            context.Request.Body          = new MemoryStream();
            context.Request.Method        = HttpMethod.Post.Method;
            context.Request.ContentType   = DefaultMessageService.AgentWireMessageMimeType;
            context.Request.ContentLength = 1;

            await context.Request.Body.WriteAsync(new ReadOnlyMemory <byte>(new { dummy = "dummy" }.ToJson().GetUTF8Bytes()));

            context.Request.Body.Seek(0, SeekOrigin.Begin);

            //Act
            await middleware.Invoke(context, mockedContext.Object);

            //Assert
            context.Response.StatusCode
            .Should()
            .Be((int)HttpStatusCode.OK);
        }