AbstractActivity implements Activity { @Override public void onOpen() { if (this.place == null) { throw new IllegalStateException("Activity " + this + " has not been started"); } if (open) { throw new IllegalStateException("Activity " + this + " already open"); } open = true; placeManager.executeOnOpenCallbacks(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 onOpenShouldFailWhenActivityNotStarted() { getActivityUnderTest().onOpen(); }