Skip to content

Commit 4ae566f

Browse files
committed
Another commit to keep my CAN streak going. (C) whatthecommit.com
1 parent 04513da commit 4ae566f

File tree

1 file changed

+41
-20
lines changed

1 file changed

+41
-20
lines changed

rsocket-plain-java-api/src/test/java/daggerok/SimpleTest.java

+41-20
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@
77
import io.rsocket.transport.netty.client.TcpClientTransport;
88
import io.rsocket.transport.netty.server.TcpServerTransport;
99
import io.rsocket.util.DefaultPayload;
10+
import io.vavr.control.Try;
1011
import lombok.extern.slf4j.Slf4j;
12+
import org.junit.jupiter.api.AfterEach;
13+
import org.junit.jupiter.api.BeforeEach;
1114
import org.junit.jupiter.api.Test;
1215
import reactor.core.Disposable;
1316
import reactor.core.publisher.Flux;
@@ -38,10 +41,10 @@ public Flux<Payload> requestStream(Payload payload) {
3841
class MyServer {
3942
final Disposable listener;
4043

41-
MyServer() {
44+
MyServer(int port) {
4245
listener = RSocketFactory.receive()
4346
.acceptor((setup, sendingSocket) -> Mono.just(new MyRequestStream()))
44-
.transport(TcpServerTransport.create(7000))
47+
.transport(TcpServerTransport.create(port))
4548
.start()
4649
.subscribe();
4750
}
@@ -50,10 +53,10 @@ class MyServer {
5053
class MyClient {
5154
final Mono<RSocket> requester;
5255

53-
MyClient() {
56+
MyClient(int port) {
5457
requester = RSocketFactory.connect()
5558
.keepAliveAckTimeout(Duration.ofSeconds(3))
56-
.transport(TcpClientTransport.create(7000))
59+
.transport(TcpClientTransport.create(port))
5760
.start();
5861
}
5962
}
@@ -63,34 +66,52 @@ class SimpleTest {
6366

6467
@Test
6568
void test() {
66-
MyServer server = new MyServer();
67-
MyClient client = new MyClient();
68-
String payload = "Hello";
69+
MyServer server = new MyServer(7001);
70+
MyClient client = new MyClient(7001);
71+
String payload = "Привет";
6972

70-
// no back pressure:
7173
StepVerifier.create(client.requester.flatMapMany(rr -> rr.requestStream(DefaultPayload.create(payload)))
72-
.map(Payload::getDataUtf8))
73-
// .expectNextMatches(s -> s.contains("Hello-"))
74-
.expectNextCount(5)
74+
.map(Payload::getDataUtf8)
75+
.doOnEach(stringSignal -> log.info("client 1: {}", stringSignal.get())))
76+
.expectNextCount(payload.length())
7577
.verifyComplete();
7678

79+
server.listener.dispose();
80+
}
81+
82+
@Test
83+
void test_back_pressure() {
84+
MyServer server = new MyServer(7002);
85+
MyClient client = new MyClient(7002);
86+
String payload = "Hello";
87+
7788
// back-pressure: request only 2 items...
7889
StepVerifier.create(client.requester.flatMapMany(rr -> rr.requestStream(DefaultPayload.create(payload))
7990
.take(2)) // back-pressure
80-
.map(Payload::getDataUtf8))
91+
.map(Payload::getDataUtf8)
92+
.doOnEach(stringSignal -> log.info("client 2: {}", stringSignal.get())))
8193
.expectNextMatches(s -> s.contains("Hello-0"))
8294
.expectNextMatches(s -> s.endsWith("Hello-1"))
8395
// .expectNextCount(2)
8496
.verifyComplete();
8597

86-
// client.requester.flatMapMany(rr -> rr.requestStream(DefaultPayload.create(payload))
87-
// .take(2)) // back-pressure
88-
// .map(Payload::getDataUtf8)
89-
// .map(res -> assertThat(res).containsIgnoringCase("hello-"))
90-
// .subscribe(s -> log.info("client: {}", s));
91-
//
92-
// io.vavr.control.Try.run(() -> Thread.sleep(payload.length() * 1234))
93-
// .andFinally(server.listener::dispose);
9498
server.listener.dispose();
9599
}
100+
101+
@Test
102+
void yet_another() {
103+
MyServer server = new MyServer(7003);
104+
MyClient client = new MyClient(7003);
105+
String payload = "Hola";
106+
107+
client.requester.flatMapMany(rr -> rr.requestStream(DefaultPayload.create(payload))
108+
.take(2)) // back-pressure
109+
.map(Payload::getDataUtf8)
110+
.map(res -> assertThat(res).containsIgnoringCase("hola-"))
111+
.subscribe(s -> log.info("client 3: {}", s));
112+
113+
Try.run(() -> Thread.sleep(payload.length() * 1234))
114+
.andFinally(server.listener::dispose)
115+
.onFailure(throwable -> log.info("oops: {}", throwable.getLocalizedMessage()));
116+
}
96117
}

0 commit comments

Comments
 (0)