package tv.dyndns.kishibe.qmaclone.client.ranking; import static org.mockito.Mockito.verify; import java.util.List; 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 tv.dyndns.kishibe.qmaclone.client.packet.PacketRankingData; import com.google.common.collect.ImmutableList; @RunWith(MockitoJUnitRunner.class) public class ThemeRankingPresenterTest { private static final String FAKE_THEME = "fake THEME"; private static final int FAKE_YEAR = 2112; private static final int FAKE_MONTH = 9; private static final List<PacketRankingData> FAKE_RANKING = ImmutableList .of(new PacketRankingData()); @Mock private ThemeRankingPresenter.View mockView; @Mock private ServiceAsync mockService; private ThemeRankingPresenter presenter; @Before public void setUp() throws Exception { presenter = new ThemeRankingPresenter(mockService); presenter.setView(mockView); } @Test public void onOldSelectedShouldTriggerRpc() { presenter.onThemeSelected(FAKE_THEME); presenter.onOldSelected(); verify(mockService).getThemeRankingOld(FAKE_THEME, presenter.callbackGetThemeRanking); } @Test public void onAllSelectedShouldTriggerRpc() { presenter.onThemeSelected(FAKE_THEME); presenter.onAllSelected(); verify(mockService).getThemeRankingAll(FAKE_THEME, presenter.callbackGetThemeRanking); } @Test public void onYearSelectedShouldTriggerRpc() { presenter.onThemeSelected(FAKE_THEME); presenter.onYearSelected(FAKE_YEAR); verify(mockService).getThemeRanking(FAKE_THEME, FAKE_YEAR, presenter.callbackGetThemeRanking); } @Test public void onMonthSelectedShouldTriggerRpc() { presenter.onThemeSelected(FAKE_THEME); presenter.onMonthSelected(FAKE_YEAR, FAKE_MONTH); verify(mockService).getThemeRanking(FAKE_THEME, FAKE_YEAR, FAKE_MONTH, presenter.callbackGetThemeRanking); } @Test public void callbackGetThemeRankingShouldSetRankingToView() { presenter.callbackGetThemeRanking.onSuccess(FAKE_RANKING); verify(mockView).setRanking(FAKE_RANKING); } }