### Question:
AsyncEventStoreCommitNotifier extends AbstractEventStoreCommitNotifier implements EventStoreCommitNotifier, TimedObject, Serializable { @Override @Lock(LockType.READ) public void notifyListeners(ChangeSet changeSet) { if (changeSet == null) throw new IllegalArgumentException("changeSet must not be null"); TimerConfig config = new TimerConfig(changeSet, false); timerService.createIntervalTimer(0, retryInterval, config); }  @Override @Lock(LockType.READ) void notifyListeners(ChangeSet changeSet); @Timeout @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) @Override void ejbTimeout(Timer timer);  }### Answer:
@Test public void test_asynchronous_delivery() { this.clear(); EventStoreCommitNotifier instance = this.instance(); instance.addListener(DEFAULT_BUCKET, this); String id = UUID.randomUUID().toString(); ChangeSet cs = changeSet(id); this.waitTime = WAIT_TIME * 2; instance.notifyListeners(cs); this.sleep(WAIT_TIME); assertEquals(caught, false); this.sleep(WAIT_TIME * 3); assertEquals(caught, true); assertEquals(caughtCS.streamId(), id); }