ClientTransactionCommitCohort extends AbstractTransactionCommitCohort { @Override public ListenableFuture<Void> commit() { final VotingFuture<Void> ret = new VotingFuture<>(null, proxies.size()); for (AbstractProxyTransaction proxy : proxies) { proxy.doCommit(ret); } return addComplete(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 testCommit() throws Exception { testOpSuccess(ClientTransactionCommitCohort::commit, this::expectCommit, this::replyCommitSuccess, null); }