/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package StevensLevel.screens; import StevensLevel.listeners.ScreenUpdateListener; import StevensLevel.listeners.StevensLevelViewListener; import static StevensLevel.EventBusHelper.*; import StevensLevel.parts.Trial; import StevensLevel.screens.TaskScreen.StevensLevelUpdateViewEvent; import harness.TestHarness; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import static org.mockito.Mockito.*; /** * * @author tristangoffman */ public class TaskScreenTest extends TestHarness<TaskScreen> { @Before public void setUp() { setupEventBus(); setInstance(new TaskScreen()); eb().removeListener(getInstance()); listen(spy(), StevensLevelViewListener.class); } @After public void tearDown() { removeEventBus(); } @Test public void receiveUpdatesTest() throws InterruptedException{ runSimpleTrialCausing3updatesOnScreen(); verify(spy(), atMost(3)).update(any(StevensLevelUpdateViewEvent.class)); } private void runSimpleTrialCausing3updatesOnScreen() throws InterruptedException { Trial tri = new Trial(1.0, 0, 200, 0.3); tri.run(); Thread.sleep(1000); } @Test public void notifiesOfDirtyScreenOnce() throws InterruptedException{ ScreenUpdateListener lis = new ScreenUpdateListener() { @Override public void screenUpdated() { System.out.print("yoyo"); } }; ScreenUpdateListener lisSpy = Mockito.spy(lis); listen(lisSpy, ScreenUpdateListener.class); runSimpleTrialCausing3updatesOnScreen(); verify(lisSpy, atMost(1)).screenUpdated(); } }