Follow up on SCF GH-985, test to validate PassThruFunction

This commit is contained in:
Oleg Zhurakousky
2023-01-11 16:45:15 +01:00
parent 8b0fbe122f
commit 9fe6db2e56

View File

@@ -17,6 +17,7 @@
package org.springframework.cloud.stream.function;
import java.lang.reflect.Field;
import java.net.URI;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
@@ -39,6 +40,7 @@ import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.function.cloudevent.CloudEventMessageBuilder;
import org.springframework.cloud.function.cloudevent.CloudEventMessageUtils;
import org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry.FunctionInvocationWrapper;
import org.springframework.cloud.function.context.message.MessageUtils;
import org.springframework.cloud.stream.binder.test.InputDestination;
@@ -84,6 +86,28 @@ public class StreamBridgeTests {
public static void before() {
System.clearProperty("spring.cloud.function.definition");
}
@Test // see SCF-985
void ensurePassThruFunctionIsNotPrePostProcessed() {
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(
TestChannelBinderConfiguration.getCompleteConfiguration(EmptyConfiguration.class))
.web(WebApplicationType.NONE).run("--spring.jmx.enabled=false")) {
StreamBridge streamBridge = context.getBean(StreamBridge.class);
OutputDestination outputDestination = context.getBean(OutputDestination.class);
Message<String> message = CloudEventMessageBuilder.withData("foo") // cloud event
.setType("CustomType")
.setSource("CustomSource")
.setSubject("CustomSubject")
.build();
streamBridge.send("fooDestination", message);
Message<byte[]> messageReceived = outputDestination.receive(1000, "fooDestination");
assertThat(CloudEventMessageUtils.getSource(messageReceived)).isEqualTo(URI.create("CustomSource"));
assertThat(CloudEventMessageUtils.getSubject(messageReceived)).isEqualTo("CustomSubject");
assertThat(CloudEventMessageUtils.getType(messageReceived)).isEqualTo("CustomType");
}
}
@Test
void extractStreamBridgeAsStreamOperations() {