@Override public Mono<DuplexConnection> connect() { return Mono.defer( () -> { ServerDuplexConnectionAcceptor server = LocalServerTransport.findServer(name); if (server == null) { return Mono.error(new IllegalArgumentException("Could not find server: " + name)); } UnicastProcessor<Frame> in = UnicastProcessor.create(); UnicastProcessor<Frame> out = UnicastProcessor.create(); MonoProcessor<Void> closeNotifier = MonoProcessor.create(); server.accept(new LocalDuplexConnection(out, in, closeNotifier)); return Mono.just((DuplexConnection) new LocalDuplexConnection(in, out, closeNotifier)); }); } }
@DisplayName("returns null if server hasn't been started") @Test void findServerMissingName() { assertThat(LocalServerTransport.findServer("test-name")).isNull(); }
@DisplayName("returns the server by name") @Test void findServer() { LocalServerTransport serverTransport = LocalServerTransport.createEphemeral(); serverTransport .start(duplexConnection -> Mono.empty()) .as(StepVerifier::create) .expectNextCount(1) .verifyComplete(); assertThat(LocalServerTransport.findServer(serverTransport.getName())).isNotNull(); }
@DisplayName("findServer throws NullPointerException with null name") @Test void findServerNullName() { assertThatNullPointerException() .isThrownBy(() -> LocalServerTransport.findServer(null)) .withMessage("name must not be null"); }
@Override public Mono<DuplexConnection> connect() { return Mono.defer( () -> { ServerDuplexConnectionAcceptor server = LocalServerTransport.findServer(name); if (server == null) { return Mono.error(new IllegalArgumentException("Could not find server: " + name)); } UnicastProcessor<Frame> in = UnicastProcessor.create(); UnicastProcessor<Frame> out = UnicastProcessor.create(); MonoProcessor<Void> closeNotifier = MonoProcessor.create(); server.accept(new LocalDuplexConnection(out, in, closeNotifier)); return Mono.just((DuplexConnection) new LocalDuplexConnection(in, out, closeNotifier)); }); } }