@Test public void producerUnregisterAllowsReregistering() {
    StringProducer producer1 = new StringProducer();
    StringProducer producer2 = new StringProducer();

    bus.register(producer1);
    bus.unregister(producer1);
    bus.register(producer2);
  }
Tests that events are distributed to any subscribers to their type or any
supertype, including interfaces and superclasses.

Also checks delivery ordering in such cases.
otto/src/test/java/com/squareup/otto/BusTest.java