package fr.keemto.scheduling; import fr.keemto.core.AccountInterceptor; import fr.keemto.core.AccountKey; import fr.keemto.core.fetching.FetchingTaskFactory; import fr.keemto.core.fetching.IncrementalFetchingTask; import org.junit.Before; import org.junit.Test; import static org.mockito.Mockito.*; public class ScheduledTaskUpdaterTest { private AccountInterceptor updater; private TaskScheduler scheduler; private FetchingTaskFactory taskFactory; @Before public void setUp() throws Exception { scheduler = mock(TaskScheduler.class); taskFactory = mock(FetchingTaskFactory.class); updater = new FetchingTaskUpdater(scheduler, taskFactory); } @Test public void whenAccountIsCreatedShouldCreateATask() throws Exception { AccountKey key = mock(AccountKey.class); updater.accountCreated(key); verify(taskFactory).createIncrementalTask(key); } @Test public void whenAccountIsCreatedShouldAddTaskToRegistrar() throws Exception { AccountKey key = mock(AccountKey.class); IncrementalFetchingTask task = mock(IncrementalFetchingTask.class); when(taskFactory.createIncrementalTask(key)).thenReturn(task); updater.accountCreated(key); verify(scheduler).scheduleTask(task); } @Test public void whenAccountIsDeletedShouldCancelTaskInRegistrar() throws Exception { AccountKey key = mock(AccountKey.class); updater.accountDeleted(key); verify(scheduler).cancelTask(key); } }