package edu.pdx.cs410J.gwt.client.mvp; import com.google.gwt.event.shared.HandlerManager; import org.junit.Test; import static org.junit.Assert.fail; import static org.mockito.Mockito.*; import static edu.pdx.cs410J.gwt.client.mvp.ExceptionPresenter.*; /** * Tests that an exception triggers the {@link ExceptionPresenter} */ public class ExceptionPresenterTest { /** * Tests that when an exception occurs in an {@link MvpCallback}, the exception view is displayed */ @Test public void testExceptionViewDisplayed() { HandlerManager eventBus = new HandlerManager(null); MvpCallback callback = new MvpCallback<Void>(eventBus) { @Override public void onSuccess(Void aVoid) { fail("onSuccess should not be invoked"); } }; Display view = mock(Display.class); new ExceptionPresenter(view, eventBus); String message = "This is a message"; Throwable ex = new Throwable(message); ex.fillInStackTrace(); callback.onFailure(ex); verify(view).show(); verify(view).setMessage(message); verify(view).setStackTrace(ex.getStackTrace()); } }