### Question:
ThrottlingSyncSource implements SyncSource { @Override public SafeFuture<Void> disconnectCleanly(final DisconnectReason reason) { return delegate.disconnectCleanly(reason); } ThrottlingSyncSource(
      final AsyncRunner asyncRunner,
      final TimeProvider timeProvider,
      final SyncSource delegate,
      final int maxBlocksPerMinute); @Override SafeFuture<Void> requestBlocksByRange(
      final UInt64 startSlot,
      final UInt64 count,
      final UInt64 step,
      final ResponseStreamListener<SignedBeaconBlock> listener); @Override SafeFuture<Void> disconnectCleanly(final DisconnectReason reason); @Override String toString();  }### Answer:
@Test void shouldDelegateDisconnectImmediately() { final SafeFuture<Void> result = new SafeFuture<>(); when(delegate.disconnectCleanly(DisconnectReason.REMOTE_FAULT)).thenReturn(result); final SafeFuture<Void> actual = source.disconnectCleanly(DisconnectReason.REMOTE_FAULT); ignoreFuture(verify(delegate).disconnectCleanly(DisconnectReason.REMOTE_FAULT)); assertThat(actual).isSameAs(result); }