From 41ab7abc51b7d3d265a2192d821b46d464cded86 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Mon, 27 Jan 2020 17:56:42 +0100 Subject: [PATCH] GH-1894 Added test to demonstrate testing with explicit bindings Resolves #1894 --- .../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 780cd80af..52e6c79e5 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 @@ -443,6 +443,33 @@ public class ImplicitFunctionBindingTests { } } + @Test + public void testWithExplicitBindingInstructions() { + System.clearProperty("spring.cloud.function.definition"); + try (ConfigurableApplicationContext context = new SpringApplicationBuilder(TestChannelBinderConfiguration + .getCompleteConfiguration(SplittableTypesConfiguration.class)) + .web(WebApplicationType.NONE).run("--spring.cloud.function.definition=funcArrayOfMessages", + "--spring.cloud.stream.function.bindings.funcArrayOfMessages-in-0=input", + "--spring.cloud.stream.function.bindings.funcArrayOfMessages-out-0=output", + "--spring.cloud.stream.bindings.input.destination=myInput", + "--spring.cloud.stream.bindings.output.destination=myOutput", + "--spring.jmx.enabled=false")) { + + InputDestination inputDestination = context.getBean(InputDestination.class); + OutputDestination outputDestination = context.getBean(OutputDestination.class); + + Message inputMessage = MessageBuilder.withPayload("aa,bb,cc,dd".getBytes()).build(); + + inputDestination.send(inputMessage, "myInput"); + + assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("aa"); + assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("bb"); + assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("cc"); + assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("dd"); + assertThat(outputDestination.receive(100)).isNull(); + } + } + @EnableAutoConfiguration public static class NoEnableBindingConfiguration {