diff --git a/src/test/java/org/springframework/data/spel/ReactiveExtensionAwareEvaluationContextProviderUnitTests.java b/src/test/java/org/springframework/data/spel/ReactiveExtensionAwareEvaluationContextProviderUnitTests.java index 01282374c..a540379b2 100644 --- a/src/test/java/org/springframework/data/spel/ReactiveExtensionAwareEvaluationContextProviderUnitTests.java +++ b/src/test/java/org/springframework/data/spel/ReactiveExtensionAwareEvaluationContextProviderUnitTests.java @@ -21,6 +21,7 @@ import reactor.core.publisher.Mono; import reactor.test.StepVerifier; import java.util.Arrays; +import java.util.Collections; import java.util.concurrent.atomic.AtomicInteger; import org.junit.jupiter.api.BeforeEach; @@ -65,6 +66,32 @@ class ReactiveExtensionAwareEvaluationContextProviderUnitTests { assertThat(SecurityExpressionRoot.creationCounter).hasValue(1); } + @Test // GH-2392 + void shouldFilterImperativeExtensionCorrectly() { + + Expression expression = PARSER.parseExpression("unknownMethod('FOO')"); + ExpressionDependencies dependencies = ExpressionDependencies.discover(expression); + + ReactiveExtensionAwareEvaluationContextProvider provider = new ReactiveExtensionAwareEvaluationContextProvider( + Collections.singletonList(ExpressiveExtension.INSTANCE)); + + provider.getEvaluationContextLater(new Object[0], dependencies).as(StepVerifier::create) // + .expectNextCount(1).verifyComplete(); + } + + @Test // GH-2392 + void shouldFilterReactiveExtensionCorrectly() { + + Expression expression = PARSER.parseExpression("unknownMethod('FOO')"); + ExpressionDependencies dependencies = ExpressionDependencies.discover(expression); + + ReactiveExtensionAwareEvaluationContextProvider provider = new ReactiveExtensionAwareEvaluationContextProvider( + Collections.singletonList(SampleReactiveExtension.INSTANCE)); + + provider.getEvaluationContextLater(new Object[0], dependencies).as(StepVerifier::create) // + .expectNextCount(1).verifyComplete(); + } + @Test // DATACMNS-1108 void shouldLoadGenericExtensionOnly() {