From 2c82cf91f88ce4bc31b2a987fec61d8c7407da55 Mon Sep 17 00:00:00 2001 From: Taras Danylchuk Date: Fri, 9 Apr 2021 12:37:35 -0400 Subject: [PATCH] gh-608 issue --- ...BeanFactoryAwareFunctionRegistryTests.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistryTests.java b/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistryTests.java index f7156eb14..e7079ae03 100644 --- a/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistryTests.java +++ b/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistryTests.java @@ -563,6 +563,20 @@ public class BeanFactoryAwareFunctionRegistryTests { assertThat(f.get().getHeaders().get(MessageHeaders.CONTENT_TYPE)).isEqualTo(MimeTypeUtils.parseMimeType("text/*")); } + @Test + public void testGH_608_C() { + ApplicationContext context = new SpringApplicationBuilder(MessageFunctionConfiguration.class) + .run("--logging.level.org.springframework.cloud.function=DEBUG", + "--spring.main.lazy-initialization=true"); + FunctionCatalog catalog = context.getBean(FunctionCatalog.class); + + String productJson = "{\"key\":\"someKey\",\"data\": {\"name\":\"bike\"}}"; + + FunctionInvocationWrapper function = catalog.lookup("echoGenericObjectFlux", "application/json"); + Message result = ((Flux>) function.apply(productJson)).blockFirst(); + assertThat(new String(result.getPayload())).isEqualTo("\"bike\""); + } + @Test public void testGH_609() { FunctionCatalog catalog = this.configureCatalog(SampleFunctionConfiguration.class); @@ -822,6 +836,11 @@ public class BeanFactoryAwareFunctionRegistryTests { } }; } + + @Bean + public Function>>, Flux> echoGenericObjectFlux() { + return x -> x.map(eventMessage -> eventMessage.getPayload().getData().getName()); + } } @EnableAutoConfiguration