Fix empty payload handling in RSocketRequester
Closes gh-24088
This commit is contained in:
@@ -145,15 +145,6 @@ public class DefaultRSocketRequesterTests {
|
||||
assertThat(this.rsocket.getSavedPayload().getDataUtf8()).isEqualTo("");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendMonoWithoutData() {
|
||||
this.requester.route("toA").retrieveMono(String.class).block(Duration.ofSeconds(5));
|
||||
|
||||
assertThat(this.rsocket.getSavedMethodName()).isEqualTo("requestResponse");
|
||||
assertThat(this.rsocket.getSavedPayload().getMetadataUtf8()).isEqualTo("toA");
|
||||
assertThat(this.rsocket.getSavedPayload().getDataUtf8()).isEqualTo("");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSendWithAsyncMetadata() {
|
||||
|
||||
@@ -205,6 +196,15 @@ public class DefaultRSocketRequesterTests {
|
||||
assertThat(this.rsocket.getSavedMethodName()).isEqualTo("requestResponse");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void retrieveMonoWithoutData() {
|
||||
this.requester.route("toA").retrieveMono(String.class).block(Duration.ofSeconds(5));
|
||||
|
||||
assertThat(this.rsocket.getSavedMethodName()).isEqualTo("requestResponse");
|
||||
assertThat(this.rsocket.getSavedPayload().getMetadataUtf8()).isEqualTo("toA");
|
||||
assertThat(this.rsocket.getSavedPayload().getDataUtf8()).isEqualTo("");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void retrieveFlux() {
|
||||
String[] values = new String[] {"bodyA", "bodyB", "bodyC"};
|
||||
@@ -227,11 +227,20 @@ public class DefaultRSocketRequesterTests {
|
||||
assertThat(this.rsocket.getSavedMethodName()).isEqualTo("requestStream");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void retrieveFluxWithoutData() {
|
||||
this.requester.route("toA").retrieveFlux(String.class).blockLast(Duration.ofSeconds(5));
|
||||
|
||||
assertThat(this.rsocket.getSavedMethodName()).isEqualTo("requestStream");
|
||||
assertThat(this.rsocket.getSavedPayload().getMetadataUtf8()).isEqualTo("toA");
|
||||
assertThat(this.rsocket.getSavedPayload().getDataUtf8()).isEqualTo("");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fluxToMonoIsRejected() {
|
||||
assertThatIllegalStateException()
|
||||
.isThrownBy(() -> this.requester.route("").data(Flux.just("a", "b")).retrieveMono(String.class))
|
||||
.withMessage("No RSocket interaction model for Flux request to Mono response.");
|
||||
.withMessage("No RSocket interaction with Flux request and Mono response.");
|
||||
}
|
||||
|
||||
private Payload toPayload(String value) {
|
||||
|
||||
Reference in New Issue
Block a user