public void SetsMaxRequestBodySize() { // Arrange var requestSizeLimitResourceFilter = new RequestSizeLimitResourceFilter(NullLoggerFactory.Instance); requestSizeLimitResourceFilter.Bytes = 12345; var resourceExecutingContext = CreateResourceExecutingContext(new IFilterMetadata[] { requestSizeLimitResourceFilter }); var httpMaxRequestBodySize = new TestHttpMaxRequestBodySizeFeature(); resourceExecutingContext.HttpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(httpMaxRequestBodySize); // Act requestSizeLimitResourceFilter.OnResourceExecuting(resourceExecutingContext); // Assert Assert.Equal(12345, httpMaxRequestBodySize.MaxRequestBodySize); }
public void LogsFeatureNotFound() { // Arrange var sink = new TestSink(); var loggerFactory = new TestLoggerFactory(sink, enabled: true); var requestSizeLimitResourceFilter = new RequestSizeLimitResourceFilter(loggerFactory); requestSizeLimitResourceFilter.Bytes = 12345; var resourceExecutingContext = CreateResourceExecutingContext(new IFilterMetadata[] { requestSizeLimitResourceFilter }); // Act requestSizeLimitResourceFilter.OnResourceExecuting(resourceExecutingContext); // Assert var write = Assert.Single(sink.Writes); Assert.Equal($"A request body size limit could not be applied. This server does not support the IHttpRequestBodySizeFeature.", write.State.ToString()); }
public void SkipsWhenOverridden() { // Arrange var requestSizeLimitResourceFilter = new RequestSizeLimitResourceFilter(NullLoggerFactory.Instance); requestSizeLimitResourceFilter.Bytes = 12345; var requestSizeLimitResourceFilterFinal = new RequestSizeLimitResourceFilter(NullLoggerFactory.Instance); requestSizeLimitResourceFilterFinal.Bytes = 0; var resourceExecutingContext = CreateResourceExecutingContext(new IFilterMetadata[] { requestSizeLimitResourceFilter, requestSizeLimitResourceFilterFinal }); var httpMaxRequestBodySize = new TestHttpMaxRequestBodySizeFeature(); resourceExecutingContext.HttpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(httpMaxRequestBodySize); // Act requestSizeLimitResourceFilter.OnResourceExecuting(resourceExecutingContext); requestSizeLimitResourceFilterFinal.OnResourceExecuting(resourceExecutingContext); // Assert Assert.Equal(0, httpMaxRequestBodySize.MaxRequestBodySize); Assert.Equal(1, httpMaxRequestBodySize.Count); }
public void LogsMaxRequestBodySizeSet() { // Arrange var sink = new TestSink(); var loggerFactory = new TestLoggerFactory(sink, enabled: true); var requestSizeLimitResourceFilter = new RequestSizeLimitResourceFilter(loggerFactory); requestSizeLimitResourceFilter.Bytes = 12345; var resourceExecutingContext = CreateResourceExecutingContext(new IFilterMetadata[] { requestSizeLimitResourceFilter }); var httpMaxRequestBodySize = new TestHttpMaxRequestBodySizeFeature(); resourceExecutingContext.HttpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(httpMaxRequestBodySize); // Act requestSizeLimitResourceFilter.OnResourceExecuting(resourceExecutingContext); // Assert var write = Assert.Single(sink.Writes); Assert.Equal($"The maximum request body size has been set to 12345.", write.State.ToString()); }
public void LogsFeatureIsReadOnly() { // Arrange var sink = new TestSink(); var loggerFactory = new TestLoggerFactory(sink, enabled: true); var requestSizeLimitResourceFilter = new RequestSizeLimitResourceFilter(loggerFactory); requestSizeLimitResourceFilter.Bytes = 12345; var resourceExecutingContext = CreateResourceExecutingContext(new IFilterMetadata[] { requestSizeLimitResourceFilter }); var httpMaxRequestBodySize = new TestHttpMaxRequestBodySizeFeature(); httpMaxRequestBodySize.IsReadOnly = true; resourceExecutingContext.HttpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(httpMaxRequestBodySize); // Act requestSizeLimitResourceFilter.OnResourceExecuting(resourceExecutingContext); // Assert var write = Assert.Single(sink.Writes); Assert.Equal($"A request body size limit could not be applied. The IHttpRequestBodySizeFeature for the server is read-only.", write.State.ToString()); }