package com.esoxjem.movieguide.listing.sorting;
import com.esoxjem.movieguide.util.RxSchedulersOverrideRule;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
/**
* @author arunsasidharan
*/
@RunWith(MockitoJUnitRunner.class)
public class SortingDialogPresenterImplTest
{
@Mock
private SortingDialogInteractor interactor;
@Mock
private SortingDialogView view;
@Rule
public RxSchedulersOverrideRule rxSchedulersOverrideRule = new RxSchedulersOverrideRule();
private SortingDialogPresenterImpl presenter;
@Before
public void setUp() throws Exception
{
presenter = new SortingDialogPresenterImpl(interactor);
presenter.setView(view);
}
@Test
public void shouldCheckPopularIfLastSavedOptionIsPopular() throws Exception
{
when(interactor.getSelectedSortingOption()).thenReturn(SortType.MOST_POPULAR.getValue());
presenter.setLastSavedOption();
verify(view).setPopularChecked();
}
@Test
public void shouldCheckHighestRatedIfLastSavedOptionIsHighestRated() throws Exception
{
when(interactor.getSelectedSortingOption()).thenReturn(SortType.HIGHEST_RATED.getValue());
presenter.setLastSavedOption();
verify(view).setHighestRatedChecked();
}
@Test
public void shouldCheckFavoritesIfLastSavedOptionIsFavorites() throws Exception
{
when(interactor.getSelectedSortingOption()).thenReturn(SortType.FAVORITES.getValue());
presenter.setLastSavedOption();
verify(view).setFavoritesChecked();
}
@Test
public void onPopularMoviesSelected() throws Exception
{
presenter.onPopularMoviesSelected();
verify(interactor).setSortingOption(SortType.MOST_POPULAR);
}
@Test
public void onHighestRatedMoviesSelected() throws Exception
{
presenter.onHighestRatedMoviesSelected();
verify(interactor).setSortingOption(SortType.HIGHEST_RATED);
}
@Test
public void onFavoritesSelected() throws Exception
{
presenter.onFavoritesSelected();
verify(interactor).setSortingOption(SortType.FAVORITES);
}
}