GH-2054 Add test to validate regression with reactive functions
Resolves #2054
This commit is contained in:
@@ -384,7 +384,8 @@ public class ImplicitFunctionBindingTests {
|
||||
System.clearProperty("spring.cloud.function.definition");
|
||||
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(
|
||||
TestChannelBinderConfiguration.getCompleteConfiguration(ReactiveFunctionConfiguration.class))
|
||||
.web(WebApplicationType.NONE).run("--spring.jmx.enabled=false")) {
|
||||
.web(WebApplicationType.NONE).run("--spring.jmx.enabled=false",
|
||||
"--spring.cloud.function.definition=echo")) {
|
||||
|
||||
InputDestination inputDestination = context.getBean(InputDestination.class);
|
||||
OutputDestination outputDestination = context.getBean(OutputDestination.class);
|
||||
@@ -872,6 +873,27 @@ public class ImplicitFunctionBindingTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGh2054() {
|
||||
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=reactivePojoMessage")) {
|
||||
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<byte[]> result = outputDestination.receive(2000);
|
||||
assertThat(new String(result.getPayload())).isEqualTo("{\"name\":\"RICKY\",\"id\":1}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Test
|
||||
public void testWithNativeEncodingImperative() {
|
||||
@@ -1197,6 +1219,15 @@ public class ImplicitFunctionBindingTests {
|
||||
return value;
|
||||
});
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Function<Flux<Message<Person>>, Flux<Message<Person>>> reactivePojoMessage() {
|
||||
return flux -> flux.map(message -> {
|
||||
Person p = message.getPayload();
|
||||
p.setName(p.getName().toUpperCase());
|
||||
return MessageBuilder.withPayload(p).copyHeaders(message.getHeaders()).build();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@EnableAutoConfiguration
|
||||
|
||||
Reference in New Issue
Block a user