package org.tessell.tests.presenter; import org.junit.Test; import org.tessell.gwt.user.client.ui.IsWidget; import org.tessell.presenter.BasicPresenter; import org.tessell.presenter.Presenter; public class PresenterTest { @Test(expected = IllegalStateException.class) public void superOnBindMustBeCalled() { final NoSuperBindPresenter p = new NoSuperBindPresenter(); p.bind(); } @Test(expected = IllegalStateException.class) public void superOnUnbindMustBeCalled() { final NoSuperUnbindPresenter p = new NoSuperUnbindPresenter(); p.bind(); p.unbind(); } @Test public void superBindAndUnbindCalled() { final BothSuperBindAndUnbindPresenter p = new BothSuperBindAndUnbindPresenter(); p.bind(); p.unbind(); } @Test(expected = IllegalStateException.class) public void noRebind() { final Presenter p = new BasicPresenter<IsWidget>(null) { }; p.bind(); p.unbind(); p.bind(); } public class NoSuperBindPresenter extends BasicPresenter<IsWidget> { public NoSuperBindPresenter() { super(null); } @Override public void onBind() { // no super call } } public class NoSuperUnbindPresenter extends BasicPresenter<IsWidget> { public NoSuperUnbindPresenter() { super(null); } @Override public void onUnbind() { // no super call } } public class BothSuperBindAndUnbindPresenter extends BasicPresenter<IsWidget> { public BothSuperBindAndUnbindPresenter() { super(null); } @Override public void onBind() { super.onBind(); } @Override public void onUnbind() { super.onUnbind(); } } }