private Frame rejectedSetupErrorFrame(Throwable err) { String msg = err.getMessage(); return Frame.Error.from( 0, new RejectedSetupException(msg == null ? "rejected by server acceptor" : msg)); } }
@Override public RejectedSetupException getException(String message, Throwable cause) { return new RejectedSetupException(message, cause); }
@Override public RejectedSetupException getException(String message) { return new RejectedSetupException(message); }
@Test(timeout = 2_000) public void testHandleSetupException() { rule.connection.addToReceivedBuffer(Frame.Error.from(0, new RejectedSetupException("boom"))); assertThat("Unexpected errors.", rule.errors, hasSize(1)); assertThat( "Unexpected error received.", rule.errors, contains(instanceOf(RejectedSetupException.class))); }
return new RejectedResumeException(message); case REJECTED_SETUP: return new RejectedSetupException(message); case UNSUPPORTED_SETUP: return new UnsupportedSetupException(message);
@Test void requesterStreamsTerminatedOnZeroErrorFrame() { TestDuplexConnection conn = new TestDuplexConnection(); List<Throwable> errors = new ArrayList<>(); RSocketClient rSocket = new RSocketClient( conn, DefaultPayload::create, errors::add, StreamIdSupplier.clientSupplier()); String errorMsg = "error"; Mono.delay(Duration.ofMillis(100)) .doOnTerminate( () -> conn.addToReceivedBuffer(Frame.Error.from(0, new RejectedSetupException(errorMsg)))) .subscribe(); StepVerifier.create(rSocket.requestResponse(DefaultPayload.create("test"))) .expectErrorMatches( err -> err instanceof RejectedSetupException && errorMsg.equals(err.getMessage())) .verify(Duration.ofSeconds(5)); assertThat(errors).hasSize(1); assertThat(rSocket.isDisposed()).isTrue(); }
@Test void requesterNewStreamsTerminatedAfterZeroErrorFrame() { TestDuplexConnection conn = new TestDuplexConnection(); RSocketClient rSocket = new RSocketClient( conn, DefaultPayload::create, err -> {}, StreamIdSupplier.clientSupplier()); conn.addToReceivedBuffer(Frame.Error.from(0, new RejectedSetupException("error"))); StepVerifier.create( rSocket .requestResponse(DefaultPayload.create("test")) .delaySubscription(Duration.ofMillis(100))) .expectErrorMatches( err -> err instanceof RejectedSetupException && "error".equals(err.getMessage())) .verify(Duration.ofSeconds(5)); }
private Frame rejectedSetupErrorFrame(Throwable err) { String msg = err.getMessage(); return Frame.Error.from( 0, new RejectedSetupException(msg == null ? "rejected by server acceptor" : msg)); } }
return new RejectedResumeException(message); case REJECTED_SETUP: return new RejectedSetupException(message); case UNSUPPORTED_SETUP: return new UnsupportedSetupException(message);