Switch to using RoutingMetadata API
Closes gh-23137
This commit is contained in:
@@ -23,6 +23,7 @@ import java.util.Map;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.ByteBufAllocator;
|
||||
import io.rsocket.metadata.CompositeMetadata;
|
||||
import io.rsocket.metadata.RoutingMetadata;
|
||||
import io.rsocket.metadata.WellKnownMimeType;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -63,8 +64,7 @@ public class MetadataEncoderTests {
|
||||
assertThat(iterator.hasNext()).isTrue();
|
||||
CompositeMetadata.Entry entry = iterator.next();
|
||||
assertThat(entry.getMimeType()).isEqualTo(WellKnownMimeType.MESSAGE_RSOCKET_ROUTING.getString());
|
||||
assertThat(entry.getContent().toString(StandardCharsets.UTF_8)).isEqualTo("toA");
|
||||
|
||||
assertRoute("toA", entry.getContent());
|
||||
assertThat(iterator.hasNext()).isFalse();
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ public class MetadataEncoderTests {
|
||||
assertThat(iterator.hasNext()).isTrue();
|
||||
CompositeMetadata.Entry entry = iterator.next();
|
||||
assertThat(entry.getMimeType()).isEqualTo(WellKnownMimeType.MESSAGE_RSOCKET_ROUTING.getString());
|
||||
assertThat(entry.getContent().toString(StandardCharsets.UTF_8)).isEqualTo("toA");
|
||||
assertRoute("toA", entry.getContent());
|
||||
|
||||
assertThat(iterator.hasNext()).isTrue();
|
||||
entry = iterator.next();
|
||||
@@ -102,7 +102,7 @@ public class MetadataEncoderTests {
|
||||
.route("toA")
|
||||
.encode();
|
||||
|
||||
assertThat(dumpString(buffer)).isEqualTo("toA");
|
||||
assertRoute("toA", ((NettyDataBuffer) buffer).getNativeBuffer());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -196,12 +196,19 @@ public class MetadataEncoderTests {
|
||||
assertThat(iterator.hasNext()).isTrue();
|
||||
CompositeMetadata.Entry entry = iterator.next();
|
||||
assertThat(entry.getMimeType()).isEqualTo(WellKnownMimeType.MESSAGE_RSOCKET_ROUTING.getString());
|
||||
assertThat(entry.getContent().toString(StandardCharsets.UTF_8)).isEqualTo("toA");
|
||||
assertRoute("toA", entry.getContent());
|
||||
|
||||
assertThat(iterator.hasNext()).isFalse();
|
||||
}
|
||||
|
||||
|
||||
private void assertRoute(String route, ByteBuf metadata) {
|
||||
Iterator<String> tags = new RoutingMetadata(metadata).iterator();
|
||||
assertThat(tags.hasNext()).isTrue();
|
||||
assertThat(tags.next()).isEqualTo(route);
|
||||
assertThat(tags.hasNext()).isFalse();
|
||||
}
|
||||
|
||||
private String dumpString(DataBuffer buffer) {
|
||||
return DataBufferTestUtils.dumpString(buffer, StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import java.time.Duration;
|
||||
import io.rsocket.RSocketFactory;
|
||||
import io.rsocket.SocketAcceptor;
|
||||
import io.rsocket.frame.decoder.PayloadDecoder;
|
||||
import io.rsocket.metadata.WellKnownMimeType;
|
||||
import io.rsocket.transport.netty.server.CloseableChannel;
|
||||
import io.rsocket.transport.netty.server.TcpServerTransport;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -38,6 +39,8 @@ import org.springframework.messaging.handler.annotation.MessageExceptionHandler;
|
||||
import org.springframework.messaging.handler.annotation.MessageMapping;
|
||||
import org.springframework.messaging.rsocket.annotation.support.RSocketMessageHandler;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.util.MimeType;
|
||||
import org.springframework.util.MimeTypeUtils;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -61,6 +64,9 @@ public class RSocketClientToServerIntegrationTests {
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public static void setupOnce() {
|
||||
|
||||
MimeType metadataMimeType = MimeTypeUtils.parseMimeType(
|
||||
WellKnownMimeType.MESSAGE_RSOCKET_ROUTING.getString());
|
||||
|
||||
context = new AnnotationConfigApplicationContext(ServerConfig.class);
|
||||
RSocketMessageHandler messageHandler = context.getBean(RSocketMessageHandler.class);
|
||||
SocketAcceptor responder = messageHandler.responder();
|
||||
@@ -74,6 +80,7 @@ public class RSocketClientToServerIntegrationTests {
|
||||
.block();
|
||||
|
||||
requester = RSocketRequester.builder()
|
||||
.metadataMimeType(metadataMimeType)
|
||||
.rsocketStrategies(context.getBean(RSocketStrategies.class))
|
||||
.connectTcp("localhost", 7000)
|
||||
.block();
|
||||
|
||||
Reference in New Issue
Block a user