### Question:
TccLoadBalanceSender extends LoadBalanceSenderAdapter implements TccMessageSender { @Override public AlphaResponse tccTransactionStart(TccStartedEvent tccStartEvent) { do { final TccMessageSender messageSender = pickMessageSender(); Optional<AlphaResponse> response = doGrpcSend(messageSender, tccStartEvent, new SenderExecutor<TccStartedEvent>() { @Override public AlphaResponse apply(TccStartedEvent event) { return messageSender.tccTransactionStart(event); } }); if (response.isPresent()) return response.get(); } while (!Thread.currentThread().isInterrupted()); throw new OmegaException("Failed to send event " + tccStartEvent + " due to interruption"); } TccLoadBalanceSender(LoadBalanceContext loadContext,
      MessageSenderPicker senderPicker); @Override AlphaResponse participationStart(ParticipationStartedEvent participationStartedEvent); @Override AlphaResponse participationEnd(ParticipationEndedEvent participationEndedEvent); @Override AlphaResponse tccTransactionStart(TccStartedEvent tccStartEvent); @Override AlphaResponse tccTransactionStop(TccEndedEvent tccEndEvent); @Override AlphaResponse coordinate(CoordinatedEvent coordinatedEvent);  }### Answer:
@Test public void TccStartSucceed() { TccMessageSender actualSender = tccLoadBalanceSender.pickMessageSender(); AlphaResponse response = tccLoadBalanceSender.tccTransactionStart(tccStartedEvent); assertThat(loadContext.getSenders().get(actualSender), greaterThan(0L)); assertThat(response.aborted(), is(false)); }