ClientTransactionCommitCohort extends AbstractTransactionCommitCohort { @Override public ListenableFuture<Boolean> canCommit() { final VotingFuture<Boolean> ret = new VotingFuture<>(Boolean.TRUE, proxies.size()); for (AbstractProxyTransaction proxy : proxies) { proxy.canCommit(ret); } return ret; } ClientTransactionCommitCohort(final AbstractClientHistory parent, final TransactionIdentifier txId,
            final Collection<AbstractProxyTransaction> proxies); @Override ListenableFuture<Boolean> canCommit(); @Override ListenableFuture<Void> preCommit(); @Override ListenableFuture<Void> commit(); @Override ListenableFuture<Void> abort();  }
@Test public void testCanCommit() throws Exception { testOpSuccess(ClientTransactionCommitCohort::canCommit, this::expectCanCommit, this::replyCanCommitSuccess, Boolean.TRUE); }