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 858003f9d..f0a951446 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 @@ -943,6 +943,23 @@ public class ImplicitFunctionBindingTests { } } + @Test + public void testHeaderPropagation() { + System.clearProperty("spring.cloud.function.definition"); + try (ConfigurableApplicationContext context = new SpringApplicationBuilder( + TestChannelBinderConfiguration.getCompleteConfiguration(SingleFunctionConfiguration.class)) + .web(WebApplicationType.NONE).run("--spring.jmx.enabled=false", + "--spring.cloud.function.definition=func")) { + + InputDestination inputDestination = context.getBean(InputDestination.class); + OutputDestination outputDestination = context.getBean(OutputDestination.class); + + inputDestination.send(MessageBuilder.withPayload("hello").setHeader("foo", "bar").build()); + + assertThat(outputDestination.receive(1000).getHeaders().get("foo")).isEqualTo("bar"); + } + } + @EnableAutoConfiguration public static class SupplierAndPojoConfiguration { @Bean