### Question:
ProgressTrackerImpl implements ProgressTracker { @Override public Progress start( DistributedOperation operation ) { assert operation.globalSession().equals( myGlobalSession ); Progress progress = new Progress(); tracker.put( operation.operationId(), progress ); return progress; } ProgressTrackerImpl( GlobalSession myGlobalSession ); @Override Progress start( DistributedOperation operation ); @Override void trackReplication( DistributedOperation operation ); @Override void trackResult( DistributedOperation operation, Result result ); @Override void abort( DistributedOperation operation ); @Override void triggerReplicationEvent(); @Override int inProgressCount();  }### Answer:
@Test public void shouldReportThatOperationIsNotReplicatedInitially() { Progress progress = tracker.start( operationA ); assertFalse( progress.isReplicated() ); }
@Test public void shouldWaitForReplication() throws Exception { Progress progress = tracker.start( operationA ); long time = System.currentTimeMillis(); progress.awaitReplication( 10L ); time = System.currentTimeMillis() - time ; assertThat( time, greaterThanOrEqualTo( 10L ) ); }