title: Guava's AsyncEventBus in tests
body: <p>In our code messages travelling on guava's <code>AsyncEventBus</code> are frequently used. Now, in some of the tests some message traffic needs to finish, before assert on the state of the testee (say, some loads are scheduled on the <code>EventBus</code>, and these need to finish, so that we can test if things were loaded correctly). </p>
  
  <p>Unfortunately, at the moment this is handled by the horrible <code>Thread.sleep(delay);</code> approach; very fragile and making tests flaky. </p>
  
  <p>What would be the proper way to test code depending on completion of operations on common <code>AsyncEventBus</code>?</p>