From 897c47a7574ca7678389a240db76d2facf794531 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 3 Dec 2020 16:59:22 +0100 Subject: [PATCH] GH-2056 Add additional test to validate the issue --- .../ImplicitFunctionBindingTests.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/ImplicitFunctionBindingTests.java b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/ImplicitFunctionBindingTests.java index 90e0162e6..573c1c483 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/ImplicitFunctionBindingTests.java +++ b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/ImplicitFunctionBindingTests.java @@ -889,6 +889,25 @@ public class ImplicitFunctionBindingTests { } } + @Test + public void testGh2054B() { + System.clearProperty("spring.cloud.function.definition"); + try (ConfigurableApplicationContext context = new SpringApplicationBuilder( + TestChannelBinderConfiguration.getCompleteConfiguration(ReactiveFunctionConfiguration.class)) + .web(WebApplicationType.NONE).run("--spring.jmx.enabled=false", + "--spring.cloud.function.definition=reactivePojo")) { + InputDestination inputDestination = context.getBean(InputDestination.class); + OutputDestination outputDestination = context.getBean(OutputDestination.class); + + String jsonPerson = "{\"name\":\"Ricky\",\"id\":1}"; + + inputDestination.send(MessageBuilder.withPayload(jsonPerson.getBytes()).build()); + + Message result = outputDestination.receive(2000); + assertThat(new String(result.getPayload())).isEqualTo("{\"name\":\"RICKY\",\"id\":1}"); + } + } + @SuppressWarnings("rawtypes") @@ -1174,6 +1193,14 @@ public class ImplicitFunctionBindingTests { return MessageBuilder.withPayload(p).copyHeaders(message.getHeaders()).build(); }); } + + @Bean + public Function, Flux> reactivePojo() { + return flux -> flux.map(p -> { + p.setName(p.getName().toUpperCase()); + return p; + }); + } } @EnableAutoConfiguration