GH-679 Add test to validate output conversion for composed functions

Resolves #679
This commit is contained in:
Oleg Zhurakousky
2021-04-07 11:53:17 +02:00
parent ba8dd58db6
commit 324a978dab

View File

@@ -258,6 +258,25 @@ public class BeanFactoryAwareFunctionRegistryTests {
});
}
@Test
public void testCompositionWithOutputConversion() {
FunctionCatalog catalog = this.configureCatalog();
Function<Flux<String>, Flux<Message<byte[]>>> fluxFunction = catalog.lookup("uppercase|reverseFlux", "application/json");
List<Message<byte[]>> 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();