@Override
  protected void route(List<SendingMailbox> destinations, TransferableBlock block)
      throws Exception {
    for (SendingMailbox mailbox : destinations) {
      sendBlock(mailbox, block);
    }
  }
@Test
  public void shouldBroadcast()
      throws Exception {
    // Given:
    ImmutableList<SendingMailbox> destinations = ImmutableList.of(_mailbox1, _mailbox2);

    // When:
    new BroadcastExchange(destinations, TransferableBlockUtils::splitBlock).route(destinations, _block);

    ArgumentCaptor<TransferableBlock> captor = ArgumentCaptor.forClass(TransferableBlock.class);

    Mockito.verify(_mailbox1, Mockito.times(1)).send(captor.capture());
    Assert.assertEquals(captor.getValue(), _block);

    Mockito.verify(_mailbox2, Mockito.times(1)).send(captor.capture());
    Assert.assertEquals(captor.getValue(), _block);
  }