예제 #1
0
        public async void LocalhostFilterTesting()
        {
            var logger = new Mock <ILogger <LocalhostFilter> >();
            var next   = new Mock <RequestDelegate>();
            var filter = new LocalhostFilter(next.Object, logger.Object);

            var connectionInfo = new Mock <ConnectionInfo>();

            connectionInfo.Setup(x => x.RemoteIpAddress).Returns(IPAddress.Parse("172.217.4.206"));
            var http = new Mock <HttpContext>();

            http.Setup(x => x.Connection).Returns(connectionInfo.Object);
            var response = new Mock <HttpResponse>();

            http.Setup(x => x.Response).Returns(response.Object);
            response.SetupProperty(x => x.StatusCode);
            var headers = new Mock <IHeaderDictionary>();

            response.Setup(x => x.Headers).Returns(headers.Object);
            var body = new Mock <Stream>();

            response.Setup(x => x.Body).Returns(body.Object);
            response.SetupProperty(x => x.ContentLength);

            await filter.Invoke(http.Object);

            Assert.Equal(403, response.Object.StatusCode);
        }
예제 #2
0
        public async void LocalhostFilterPass()
        {
            var http = new Mock <HttpContext>();
            var cnx  = new Mock <ConnectionInfo>();

            http.Setup(x => x.Connection).Returns(cnx.Object);
            cnx.Setup(x => x.RemoteIpAddress).Returns(IPAddress.Loopback);
            var next   = new Mock <RequestDelegate>();
            var logger = new Mock <ILogger <LocalhostFilter> >();
            var filter = new LocalhostFilter(next.Object, logger.Object);
            await filter.Invoke(http.Object);

            next.Verify(x => x.Invoke(http.Object), Times.Once);
        }