package ua.kpi.ecampus.ui.presenter; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import ua.kpi.ecampus.api.response.BaseResponse; import ua.kpi.ecampus.api.response.RequestResult; import ua.kpi.ecampus.model.pojo.Token; import ua.kpi.ecampus.rx.UserRxLoader; import ua.kpi.ecampus.ui.Navigator; import ua.kpi.ecampus.ui.Preference; import ua.kpi.ecampus.ui.activity.LoginActivity; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; /** * Created by Admin on 17.05.2016. */ public class LoginPresenterTest { private LoginPresenter mPresenter; @Mock private LoginPresenter.IView mView; @Mock private Navigator mNavigator; @Mock private Preference mPreference; @Mock private UserRxLoader mLoader; @Before public void setUp() { MockitoAnnotations.initMocks(this); mPresenter = new LoginPresenter(mNavigator, mPreference); mView = mock(LoginActivity.class); mPresenter.setView(mView); mPresenter.setLoader(mLoader); } @Test public void onStartLogin() { mPresenter.onStartLogin(); verify(mView).showLoginProgressDialog(); verify(mView).activateLoginButton(false); } @Test public void onFinishLogin() { mPresenter.onFinishLogin(); verify(mView).dismissProgressDialog(); verify(mView).activateLoginButton(true); } @Test public void setLoaderResult_Error() { BaseResponse response = getErrorResponse(); mPresenter.setLoaderResult(response); verify(mView).onLoginFailed(response); } @Test public void setLoaderResult_Ok() { BaseResponse response = getOkResponse(); mPresenter.setLoaderResult(response); verify(mPreference).saveLoginInfo(response.getTypedAnswer()); verify(mLoader).apiCall(); verify(mNavigator).startMainActivity(); } private BaseResponse getErrorResponse() { return new BaseResponse(); } private BaseResponse getOkResponse() { BaseResponse response = new BaseResponse(); response.setRequestResult(RequestResult.OK); response.setAnswer(new Token("valid_token")); return response; } }