package tv.dyndns.kishibe.qmaclone.client.ranking;
import static org.mockito.Mockito.verify;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import tv.dyndns.kishibe.qmaclone.client.ServiceAsync;
import com.google.common.collect.ImmutableList;
@RunWith(MockitoJUnitRunner.class)
public class ThemeSelectorPresenterTest {
private static final String FAKE_THEME = "fake THEME";
private static final List<List<String>> FAKE_THEMES = ImmutableList
.<List<String>> of(ImmutableList.of(FAKE_THEME));
@Mock
private ServiceAsync mockService;
@Mock
private ThemeRankingPresenter mockThemeRankingPresenter;
@Mock
private ThemeSelectorPresenter.View mockView;
private ThemeSelectorPresenter presenter;
@Before
public void setUp() throws Exception {
presenter = new ThemeSelectorPresenter(mockService, mockThemeRankingPresenter);
presenter.setView(mockView);
}
@After
public void tearDown() throws Exception {
verify(mockService).getThemeModeThemes(presenter.callbackGetThemeModeThemes);
}
@Test
public void onThemeSelectedShouldDelegateToThemeRankingPresenter() {
presenter.onThemeSelected(FAKE_THEME);
verify(mockThemeRankingPresenter).onThemeSelected(FAKE_THEME);
}
@Test
public void callbackGetThemeModeThemesShouldSetThemeToView() {
presenter.callbackGetThemeModeThemes.onSuccess(FAKE_THEMES);
verify(mockView).setTheme(FAKE_THEMES);
}
}