public void verify() throws InterruptedException {
  conditionLatch.await(5,TimeUnit.SECONDS);
  for (  AsyncCountableCondition condition : allConditions) {
    condition.verify();
  }
}

public void verify ( ) throws InterruptedException { conditionLatch . await ( 5 , TimeUnit . SECONDS ) ; for ( AsyncCountableCondition condition : allConditions ) { condition . verify ( ) ; } }
this method should be called in the main thread . it waits for all the conditions to occur in the other threads and then verifies that they were in fact satisfied .
