AbstractActivity implements Activity { @Override public void onClose() { if (this.place == null) { throw new IllegalStateException("Activity " + this + " has not been started"); } if (!open) { throw new IllegalStateException("Activity " + this + " not open"); } open = false; placeManager.executeOnCloseCallbacks(this.place); } AbstractActivity(final PlaceManager placeManager); @Override void onStartup(PlaceRequest place); @Override void onOpen(); @Override void onClose(); @Override void onShutdown(); @Override PlaceRequest getPlace(); @Override String toString();  }
@Test(expected = IllegalStateException.class) public void onCloseShouldFailWhenActivityNotStarted() { getActivityUnderTest().onClose(); }