Ad initial support for propagating metadata as Message headers

This commit is contained in:
Oleg Zhurakousky
2020-08-26 15:19:23 +02:00
parent 91661c3887
commit 9a1827d291
4 changed files with 73 additions and 53 deletions

View File

@@ -34,9 +34,9 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.messaging.rsocket.RSocketRequester;
import org.springframework.util.Assert;
import org.springframework.util.SocketUtils;
/**
*
* @author Oleg Zhurakousky
@@ -61,6 +61,28 @@ public class RSocketAutoConfigurationTests {
.verify();
}
@Test
public void testImperativeFunctionAsRequestReplyWithMetadata() throws Exception {
int port = SocketUtils.findAvailableTcpPort();
ApplicationContext context = new SpringApplicationBuilder(SampleFunctionConfiguration.class).web(WebApplicationType.NONE).run(
"--logging.level.org.springframework.cloud.function=DEBUG",
"--spring.cloud.function.definition=uppercase",
"--spring.rsocket.server.port=" + port);
RSocketRequester requester = context.getBean(RSocketRequester.class);
Mono<String> result = requester.rsocket().requestResponse(DefaultPayload.create("\"hello\"", "{\"name\":\"bob\", \"age\":23}"))
.map(payload -> {
Assert.hasText(payload.getMetadataUtf8(), "Metadata must not be null");
return payload.getDataUtf8();
});
StepVerifier
.create(result)
.expectNext("\"HELLO\"")
.expectComplete()
.verify();
}
@Test
public void testImperativeFunctionAsRequestStream() throws Exception {
int port = SocketUtils.findAvailableTcpPort();