public void testListeners() {
    Cascade cascade = new BaseCascade();

    CascadeListener listener =
        new CascadeListener() {
          @Override
          public void onStarting(Cascade cascade) {}

          @Override
          public void onStopping(Cascade cascade) {}

          @Override
          public void onCompleted(Cascade cascade) {}

          @Override
          public boolean onThrowable(Cascade cascade, Throwable throwable) {
            return false;
          }
        };

    cascade.addListener(listener);

    assertTrue("no listener found", cascade.hasListeners());

    cascade.removeListener(listener);

    assertFalse("listener found", cascade.hasListeners());
  }