Example #1
0
        public async void Invoked_WithMinimumRequest_OutputsCurlString()
        {
            var curlString        = $"curl https://tempurl.com:12345/path1/path2/path3?x=1&y=2&z=3" + Environment.NewLine;
            var mockCurlExtractor = new Mock <ICurlExtractor>();

            mockCurlExtractor.Setup(m => m.ExtractRequestAsync(It.IsAny <HttpContext>())).ReturnsAsync(curlString);

            var mockLogger = new Mock <ILogger <RequestToCurlMiddleware> >();

            var middlewareInstance = new RequestToCurlMiddleware((innerHttpContext) => Task.FromResult(0), mockLogger.Object, mockCurlExtractor.Object);

            var mockHttpResponse = new Mock <HttpResponse>();

            mockHttpResponse.SetupGet(p => p.HasStarted).Returns(true);
            mockHttpResponse.SetupGet(p => p.StatusCode).Returns(200);

            var mockHttpContext = new Mock <HttpContext>();

            mockHttpContext.SetupGet(p => p.Response).Returns(mockHttpResponse.Object);

            await middlewareInstance.InvokeAsync(mockHttpContext.Object);

            mockLogger.Verify(x => x.Log(LogLevel.Information,
                                         It.IsAny <EventId>(),
                                         new FormattedLogValues(curlString),
                                         null,
                                         It.IsAny <Func <object, Exception, string> >()),
                              Times.Once);
        }
Example #2
0
        public async void NotInvoked_WhenResponseHasStarted_IsFalse()
        {
            var mockLogger = new Mock <ILogger <RequestToCurlMiddleware> >();

            var middlewareInstance = new RequestToCurlMiddleware((innerHttpContext) => Task.FromResult(0), mockLogger.Object, Mock.Of <ICurlExtractor>());

            var mockHttpResponse = new Mock <HttpResponse>();

            mockHttpResponse.SetupGet(p => p.HasStarted).Returns(false);

            var mockHttpContext = new Mock <HttpContext>();

            mockHttpContext.SetupGet(p => p.Response).Returns(mockHttpResponse.Object);

            await middlewareInstance.InvokeAsync(mockHttpContext.Object);

            mockLogger.Verify(x => x.Log(LogLevel.Information,
                                         It.IsAny <EventId>(),
                                         It.IsAny <FormattedLogValues>(),
                                         null,
                                         It.IsAny <Func <object, Exception, string> >()),
                              Times.Never);
        }