From 210d9ad431cfc16880f055fcf3720226a7886396 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Mon, 1 Apr 2019 14:30:11 +0200 Subject: [PATCH] Added additional test and polished HybridFunctionalRegistrationTests --- .../HybridFunctionalRegistrationTests.java | 40 +++++++++++++++---- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/HybridFunctionalRegistrationTests.java b/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/HybridFunctionalRegistrationTests.java index 50b7d9418..c7077f1fb 100644 --- a/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/HybridFunctionalRegistrationTests.java +++ b/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/HybridFunctionalRegistrationTests.java @@ -19,13 +19,13 @@ package org.springframework.cloud.function.context; import java.util.function.Function; import org.junit.Test; +import reactor.core.publisher.Flux; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration; import org.springframework.cloud.function.context.config.ContextFunctionCatalogAutoConfiguration; import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.Bean; import static org.assertj.core.api.Assertions.assertThat; @@ -41,8 +41,24 @@ public class HybridFunctionalRegistrationTests { public void testNoDoubleRegistrationInHybridMode() { ConfigurableApplicationContext context = FunctionalSpringApplication .run(UppercaseFunction.class, "--spring.functional.enabled=false"); + + FunctionCatalog catalog = context.getBean(FunctionCatalog.class); + assertThat(context.containsBean("function")).isTrue(); assertThat(context.getBeansOfType(UppercaseFunction.class).size()).isEqualTo(1); + assertThat((Object) catalog.lookup(Function.class, "hybridFunctionalRegistrationTests.UppercaseFunction")).isNotNull(); + } + + @Test + public void testNoDoubleRegistrationInHybridModeFluxedFunction() { + ConfigurableApplicationContext context = FunctionalSpringApplication + .run(UppercaseFluxFunction.class, "--spring.functional.enabled=false"); + + FunctionCatalog catalog = context.getBean(FunctionCatalog.class); + + assertThat(context.containsBean("function")).isTrue(); + assertThat(context.getBeansOfType(UppercaseFluxFunction.class).size()).isEqualTo(1); + assertThat((Object) catalog.lookup(Function.class, "hybridFunctionalRegistrationTests.UppercaseFluxFunction")).isNotNull(); } @SpringBootConfiguration @@ -54,14 +70,22 @@ public class HybridFunctionalRegistrationTests { @Override public String apply(String t) { - System.out.println("Receoved " + t); - return t; - } - - @Bean - public Function foo() { - return x -> x; + return t.toUpperCase(); } } + @SpringBootConfiguration + @ImportAutoConfiguration({ + ContextFunctionCatalogAutoConfiguration.class, + JacksonAutoConfiguration.class } + ) + public static class UppercaseFluxFunction implements Function, Flux> { + + @Override + public Flux apply(Flux flux) { + return flux.map(v -> v.toUpperCase()); + } + + + } }