public async Task ForNotAllowedIp_AndLearningModeTurnedOff_ThenReturnProperStatusCode(
            string requestPath,
            int failedStatusCode)
        {
            // Given
            var fixture = new IpFilteringMiddlewareTestsFixture(requestPath);

            fixture.CacheMock.Setup(x => x.AllowAddress(It.IsAny <IPAddress>()))
            .ReturnsAsync(false);

            fixture.AddressValidatorMock.Setup(x => x.AllowAccess(It.IsAny <IPAddress>()))
            .ReturnsAsync(false);

            fixture.OptionsMock.SetupGet(x => x.FailureHttpStatusCode)
            .Returns(failedStatusCode);

            fixture.OptionsMock.SetupGet(x => x.LearningMode)
            .Returns(false);

            // When
            await fixture.Sut.Invoke(fixture.HttpContext);

            // Then
            Assert.Equal(failedStatusCode, fixture.HttpContext.Response.StatusCode);
        }
예제 #2
0
        public async Task ForNotAllowedIp_ThenReturnProperFailureMessage(
            string requestPath,
            string failureMessage)
        {
            // Given
            var fixture = new IpFilteringMiddlewareTestsFixture(requestPath);

            fixture.CacheMock.Setup(x => x.AllowAddress(It.IsAny <IPAddress>()))
            .ReturnsAsync(false);

            fixture.AddressValidatorMock.Setup(x => x.AllowAccess(It.IsAny <IPAddress>()))
            .ReturnsAsync(false);

            fixture.OptionsMock.SetupGet(x => x.FailureMessage)
            .Returns(failureMessage);

            // When
            await fixture.Sut.Invoke(fixture.HttpContext);

            // Then
            string body;

            fixture.HttpContext.Response.Body.Position = 0;
            using (var sr = new StreamReader(fixture.HttpContext.Response.Body))
            {
                body = sr.ReadToEnd();
            }

            Assert.Equal(failureMessage, body);
        }
예제 #3
0
        public async Task ForAllowedIp_ThenReturnProperStatusCode(
            string requestPath)
        {
            // Given
            var fixture = new IpFilteringMiddlewareTestsFixture(requestPath);

            fixture.CacheMock.Setup(x => x.AllowAddress(It.IsAny <IPAddress>()))
            .ReturnsAsync(true);

            fixture.AddressValidatorMock.Setup(x => x.AllowAccess(It.IsAny <IPAddress>()))
            .ReturnsAsync(true);

            // When
            await fixture.Sut.Invoke(fixture.HttpContext);

            // Then
            Assert.Equal(200, fixture.HttpContext.Response.StatusCode);
        }