From 324a978dab116182bedc0a5359db96faf3f17843 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 7 Apr 2021 11:53:17 +0200 Subject: [PATCH] GH-679 Add test to validate output conversion for composed functions Resolves #679 --- ...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 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();