Switch to using RoutingMetadata API

Closes gh-23137
This commit is contained in:
Rossen Stoyanchev
2019-09-02 12:09:43 +01:00
parent 702dad6cec
commit 71f3498a26
5 changed files with 57 additions and 27 deletions

View File

@@ -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);
}

View File

@@ -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();