In the following configuration the message will go straight to consume-in-0 because input is bound to testQueue and hence to consume-in-0. which is confusing. . .
StreamBridge bridge = context.getBean(StreamBridge.class);
bridge.send("input", "foo");
spring.cloud.stream.bindings.consume-in-0.destination=testQueue
spring.cloud.stream.bindings.consume-in-0.group=myGroup
spring.cloud.stream.function.bindings.uppercase|concat-out-0=input
spring.cloud.stream.bindings.input.destination=testQueue