@Inject public DefaultCassandraSession(Cluster.Builder clusterBuilder, CassandraConfigurator configurator, Vertx vertx) { this.clusterBuilder = clusterBuilder; this.configurator = configurator; this.vertx = vertx; this.metrics = new Metrics(this); configurator.onReady(result -> { if (result.failed()) { initResult = result; runOnReadyCallbacks(initResult); return; } try { init(configurator); } catch (Throwable t) { initResult = Future.failedFuture(t); runOnReadyCallbacks(initResult); } }); }
@Inject public DefaultCassandraSession(Cluster.Builder clusterBuilder, CassandraConfigurator configurator, Vertx vertx) { this.clusterBuilder = clusterBuilder; this.configurator = configurator; this.vertx = vertx; this.metrics = new Metrics(this); configurator.onReady(result -> { if (result.failed()) { initResult = result; runOnReadyCallbacks(initResult); return; } try { init(configurator); } catch (Throwable t) { initResult = Future.failedFuture(t); runOnReadyCallbacks(initResult); } }); }
@Inject public DefaultCassandraSession(Cluster.Builder clusterBuilder, CassandraConfigurator configurator, Vertx vertx) { this.clusterBuilder = clusterBuilder; this.configurator = configurator; this.vertx = vertx; this.metrics = new Metrics(this); configurator.onReady(result -> { if (result.failed()) { runOnReadyCallbacks(result); return; } init(configurator); }); }
@Test public void testCtorReadyFail() throws Exception { reset(configurator); DefaultCassandraSession cassandraSession = new DefaultCassandraSession(clusterBuilder, configurator, vertx); CompletableFuture<Void> future = new CompletableFuture<>(); onReadyFail.accept(cassandraSession, future); verify(configurator).onReady(onReadyCaptor.capture()); onReadyCaptor.getValue().handle(Future.failedFuture("Test fail")); future.get(); future = new CompletableFuture<>(); onReadyFail.accept(cassandraSession, future); future.get(); }
@Test public void testCtorInitFail() throws Exception { seeds.clear(); reset(configurator); DefaultCassandraSession cassandraSession = new DefaultCassandraSession(clusterBuilder, configurator, vertx); CompletableFuture<Void> future = new CompletableFuture<>(); onReadyFail.accept(cassandraSession, future); verify(configurator).onReady(onReadyCaptor.capture()); onReadyCaptor.getValue().handle(Future.succeededFuture()); future.get(); future = new CompletableFuture<>(); onReadyFail.accept(cassandraSession, future); future.get(); }
@Before public void setUp() { SettableFuture<Session> sessionFuture = SettableFuture.create(); when(vertx.getOrCreateContext()).thenReturn(context); doAnswer(invocation -> { Handler<Void> handler = (Handler<Void>) invocation.getArguments()[0]; handler.handle(null); return null; }).when(context).runOnContext(any()); when(clusterBuilder.build()).thenReturn(cluster); when(cluster.getConfiguration()).thenReturn(configuration); when(cluster.connectAsync()).thenReturn(sessionFuture); when(cluster.getMetadata()).thenReturn(metadata); when(cluster.closeAsync()).thenReturn(closeFuture); when(closeFuture.force()).thenReturn(closeFuture); when(configurator.getSeeds()).thenReturn(seeds); seeds.add("127.0.0.1"); when(session.getCluster()).thenReturn(cluster); when(session.prepareAsync(any(RegularStatement.class))).thenReturn(preparedStatementFuture); when(session.prepareAsync(anyString())).thenReturn(preparedStatementFuture); cassandraSession = new DefaultCassandraSession(clusterBuilder, configurator, vertx); verify(configurator).onReady(onReadyCaptor.capture()); onReadyCaptor.getValue().handle(Future.succeededFuture()); sessionFuture.set(session); }