Browse Source

Include WebFilter beans in WebFluxTest slice

See gh-17601
pull/17611/head
Dmytro Nosan 7 years ago committed by Madhura Bhave
parent
commit
9d052bbe5e
  1. 2
      spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilter.java
  2. 18
      spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilterTests.java

2
spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilter.java

@ -31,6 +31,7 @@ import org.springframework.util.ObjectUtils; @@ -31,6 +31,7 @@ import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.reactive.config.WebFluxConfigurer;
import org.springframework.web.server.WebExceptionHandler;
import org.springframework.web.server.WebFilter;
/**
* {@link TypeExcludeFilter} for {@link WebFluxTest @WebFluxTest}.
@ -51,6 +52,7 @@ class WebFluxTypeExcludeFilter extends StandardAnnotationCustomizableTypeExclude @@ -51,6 +52,7 @@ class WebFluxTypeExcludeFilter extends StandardAnnotationCustomizableTypeExclude
includes.add(Converter.class);
includes.add(GenericConverter.class);
includes.add(WebExceptionHandler.class);
includes.add(WebFilter.class);
DEFAULT_INCLUDES = Collections.unmodifiableSet(includes);
}

18
spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilterTests.java

@ -19,6 +19,7 @@ package org.springframework.boot.test.autoconfigure.web.reactive; @@ -19,6 +19,7 @@ package org.springframework.boot.test.autoconfigure.web.reactive;
import java.io.IOException;
import org.junit.jupiter.api.Test;
import reactor.core.publisher.Mono;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.FilterType;
@ -30,6 +31,9 @@ import org.springframework.stereotype.Repository; @@ -30,6 +31,9 @@ import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.reactive.config.WebFluxConfigurer;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
import static org.assertj.core.api.Assertions.assertThat;
@ -52,6 +56,7 @@ class WebFluxTypeExcludeFilterTests { @@ -52,6 +56,7 @@ class WebFluxTypeExcludeFilterTests {
assertThat(excludes(filter, ExampleWeb.class)).isFalse();
assertThat(excludes(filter, ExampleService.class)).isTrue();
assertThat(excludes(filter, ExampleRepository.class)).isTrue();
assertThat(excludes(filter, ExampleWebFilter.class)).isFalse();
}
@Test
@ -63,6 +68,7 @@ class WebFluxTypeExcludeFilterTests { @@ -63,6 +68,7 @@ class WebFluxTypeExcludeFilterTests {
assertThat(excludes(filter, ExampleWeb.class)).isFalse();
assertThat(excludes(filter, ExampleService.class)).isTrue();
assertThat(excludes(filter, ExampleRepository.class)).isTrue();
assertThat(excludes(filter, ExampleWebFilter.class)).isFalse();
}
@Test
@ -74,6 +80,7 @@ class WebFluxTypeExcludeFilterTests { @@ -74,6 +80,7 @@ class WebFluxTypeExcludeFilterTests {
assertThat(excludes(filter, ExampleWeb.class)).isTrue();
assertThat(excludes(filter, ExampleService.class)).isTrue();
assertThat(excludes(filter, ExampleRepository.class)).isTrue();
assertThat(excludes(filter, ExampleWebFilter.class)).isTrue();
}
@Test
@ -85,6 +92,7 @@ class WebFluxTypeExcludeFilterTests { @@ -85,6 +92,7 @@ class WebFluxTypeExcludeFilterTests {
assertThat(excludes(filter, ExampleWeb.class)).isFalse();
assertThat(excludes(filter, ExampleService.class)).isTrue();
assertThat(excludes(filter, ExampleRepository.class)).isFalse();
assertThat(excludes(filter, ExampleWebFilter.class)).isFalse();
}
@Test
@ -96,6 +104,7 @@ class WebFluxTypeExcludeFilterTests { @@ -96,6 +104,7 @@ class WebFluxTypeExcludeFilterTests {
assertThat(excludes(filter, ExampleWeb.class)).isFalse();
assertThat(excludes(filter, ExampleService.class)).isTrue();
assertThat(excludes(filter, ExampleRepository.class)).isTrue();
assertThat(excludes(filter, ExampleWebFilter.class)).isFalse();
}
private boolean excludes(WebFluxTypeExcludeFilter filter, Class<?> type) throws IOException {
@ -157,4 +166,13 @@ class WebFluxTypeExcludeFilterTests { @@ -157,4 +166,13 @@ class WebFluxTypeExcludeFilterTests {
}
static class ExampleWebFilter implements WebFilter {
@Override
public Mono<Void> filter(ServerWebExchange serverWebExchange, WebFilterChain webFilterChain) {
return null;
}
}
}

Loading…
Cancel
Save