GH-2054 Add test to validate regression with reactive functions
Resolves #2054
This commit is contained in:
@@ -382,7 +382,8 @@ public class ImplicitFunctionBindingTests {
|
|||||||
System.clearProperty("spring.cloud.function.definition");
|
System.clearProperty("spring.cloud.function.definition");
|
||||||
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(
|
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(
|
||||||
TestChannelBinderConfiguration.getCompleteConfiguration(ReactiveFunctionConfiguration.class))
|
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);
|
InputDestination inputDestination = context.getBean(InputDestination.class);
|
||||||
OutputDestination outputDestination = context.getBean(OutputDestination.class);
|
OutputDestination outputDestination = context.getBean(OutputDestination.class);
|
||||||
@@ -869,6 +870,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")
|
@SuppressWarnings("rawtypes")
|
||||||
@Test
|
@Test
|
||||||
public void testWithNativeEncodingImperative() {
|
public void testWithNativeEncodingImperative() {
|
||||||
@@ -1143,6 +1165,15 @@ public class ImplicitFunctionBindingTests {
|
|||||||
return value;
|
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
|
@EnableAutoConfiguration
|
||||||
|
|||||||
Reference in New Issue
Block a user