use of com.couchbase.client.core.deps.io.netty.channel.ChannelOutboundHandlerAdapter in project couchbase-jvm-clients by couchbase.
the class BaseEndpointTest method emitsEventOnFailedDisconnect.
/**
* If the disconnect failed for some reason, make sure the proper warning event
* is raised and captured.
*/
@Test
void emitsEventOnFailedDisconnect() {
final Throwable expectedCause = new Exception("something failed");
EmbeddedChannel channel = new EmbeddedChannel(new ChannelOutboundHandlerAdapter() {
@Override
public void close(ChannelHandlerContext ctx, ChannelPromise promise) {
promise.tryFailure(expectedCause);
}
});
InstrumentedEndpoint endpoint = connectSuccessfully(channel);
endpoint.disconnect();
waitUntilCondition(() -> endpoint.state() == EndpointState.DISCONNECTED);
assertEquals(2, eventBus.publishedEvents().size());
assertTrue(eventBus.publishedEvents().get(0) instanceof EndpointConnectedEvent);
EndpointDisconnectionFailedEvent event = (EndpointDisconnectionFailedEvent) eventBus.publishedEvents().get(1);
assertEquals(expectedCause, event.cause());
assertEquals(Event.Severity.WARN, event.severity());
}
Aggregations