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 e3bd77d29..488794f87 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 @@ -258,6 +258,25 @@ public class BeanFactoryAwareFunctionRegistryTests { }); } + @Test + public void testCompositionWithOutputConversion() { + FunctionCatalog catalog = this.configureCatalog(); + Function, Flux>> fluxFunction = catalog.lookup("uppercase|reverseFlux", "application/json"); + List> result = fluxFunction.apply(Flux.just("hello", "bye")).collectList().block(); + assertThat(result.get(0).getPayload()).isEqualTo("\"OLLEH\"".getBytes()); + assertThat(result.get(1).getPayload()).isEqualTo("\"EYB\"".getBytes()); + + fluxFunction = catalog.lookup("uppercase|reverse|reverseFlux", "application/json"); + result = fluxFunction.apply(Flux.just("hello", "bye")).collectList().block(); + assertThat(result.get(0).getPayload()).isEqualTo("\"HELLO\"".getBytes()); + assertThat(result.get(1).getPayload()).isEqualTo("\"BYE\"".getBytes()); + + fluxFunction = catalog.lookup("uppercase|reverseFlux|reverse", "application/json"); + result = fluxFunction.apply(Flux.just("hello", "bye")).collectList().block(); + assertThat(result.get(0).getPayload()).isEqualTo("\"HELLO\"".getBytes()); + assertThat(result.get(1).getPayload()).isEqualTo("\"BYE\"".getBytes()); + } + @Test public void testReactiveFunctionWithImperativeInputReactiveOutput() { FunctionCatalog catalog = this.configureCatalog();