ServerTransport extends Transport<T, CONF> { public final DisposableServer bindNow() { return bindNow(Duration.ofSeconds(45)); }  Mono<? extends DisposableServer> bind(); final DisposableServer bindNow(); final DisposableServer bindNow(Duration timeout); final void bindUntilJavaShutdown(Duration timeout, @Nullable Consumer<DisposableServer> onStart); T childAttr(AttributeKey<A> key, @Nullable A value); T childObserve(ConnectionObserver observer); @SuppressWarnings("ReferenceEquality") T childOption(ChannelOption<A> key, @Nullable A value); T doOnBind(Consumer<? super CONF> doOnBind); T doOnBound(Consumer<? super DisposableServer> doOnBound); T doOnConnection(Consumer<? super Connection> doOnConnection); T doOnUnbound(Consumer<? super DisposableServer> doOnUnbound); T host(String host); T port(int port);  }
@Test(expected = NullPointerException.class) public void testBindMonoEmpty() { new TestServerTransport(Mono.empty()).bindNow(Duration.ofMillis(Long.MAX_VALUE)); }
@Test(expected = IllegalStateException.class) public void testBindTimeout() { new TestServerTransport(Mono.never()).bindNow(Duration.ofMillis(1)); }
@Test(expected = ArithmeticException.class) public void testBindTimeoutLongOverflow() { new TestServerTransport(Mono.never()).bindNow(Duration.ofMillis(Long.MAX_VALUE)); }
@Test(expected = IllegalStateException.class) public void testDisposeTimeout() { new TestServerTransport(Mono.just(EmbeddedChannel::new)).bindNow().disposeNow(Duration.ofMillis(1)); }
@Test(expected = ArithmeticException.class) public void testDisposeTimeoutLongOverflow() { new TestServerTransport(Mono.just(EmbeddedChannel::new)).bindNow().disposeNow(Duration.ofMillis(Long.MAX_VALUE)); }