@Test public void when_Login_Success_Then_Go_To_Profile_Is_Called() { LoginPresenter loginPresenter = new LoginPresenter(new LoginUseCaseSuccess()); loginPresenter.attachView(loginView); loginPresenter.doLogin("aValidUsername", "aValidPassword"); verify(loginView, timeout(WAIT).times(1)).goToProfile(); }
@Test public void when_Login_Failure_Then_Go_To_Profile_Is_Not_Called() { LoginPresenter loginPresenter = new LoginPresenter(new LoginUseCaseFailure()); loginPresenter.attachView(loginView); loginPresenter.doLogin("anInvalidUsername", "anInvalidPassword"); verify(loginView, timeout(WAIT).times(0)).goToProfile(); verify(loginView, timeout(WAIT).times(1)).onError(any(String.class)); }
@Test public void oauthCallback_onSuccessCallsView() { when(oAuthInteractor.retrieveAccessToken(any(Uri.class))).thenReturn(Completable.complete()); Uri uri = mock(Uri.class); presenter.oauthCallback(uri); verify(loginView, times(1)).onAuthSuccess(); verify(loginView, times(1)).showLoading(); verifyNoMoreInteractions(loginView); }
@Override public void onClick(View v) { switch (v.getId()) { case R.id.bt_login: mLoginPresenter.validateLogin( mEtUsername.getText().toString(), mEtPassword.getText().toString()); break; case R.id.bt_green_channel: GreenChannelActivity.actionStart(this); } }
@Test public void startOAuth_callsViewIfNoInternet() { when(networkInteractor.hasInternetConnectionCompletable()) .thenReturn(Completable.error(new NetworkInteractor.NetworkUnavailableException())); presenter.startOAuth(); verify(networkInteractor, times(1)).hasInternetConnectionCompletable(); verify(loginView, times(1)).onErrorNoInternet(); verifyNoMoreInteractions(loginView); }
@Test public void oauthCallback_onErrorCallsView() { when(oAuthInteractor.retrieveAccessToken(any(Uri.class))) .thenReturn(Completable.error(new Throwable("Error~"))); Uri uri = mock(Uri.class); presenter.oauthCallback(uri); verify(loginView, times(1)).onErrorAccessToken(); verify(loginView, times(1)).showLoading(); verifyNoMoreInteractions(loginView); }
@Test public void startOAuth_errorReturnedToView() { when(networkInteractor.hasInternetConnectionCompletable()).thenReturn(Completable.complete()); when(oAuthInteractor.retrieveRequestToken()).thenReturn(Single.error(new Throwable("Error!"))); presenter.startOAuth(); verify(networkInteractor, times(1)).hasInternetConnectionCompletable(); verify(loginView, times(1)).onErrorRequestToken(); verify(loginView, times(1)).showLoading(); verifyNoMoreInteractions(loginView); }
@Test public void startOAuth_opensBrowserOnSuccess() { when(networkInteractor.hasInternetConnectionCompletable()).thenReturn(Completable.complete()); String OAUTH_CALLBACK = "Redirect URL"; when(oAuthInteractor.retrieveRequestToken()).thenReturn(Single.just(OAUTH_CALLBACK)); presenter.startOAuth(); verify(networkInteractor, times(1)).hasInternetConnectionCompletable(); verify(loginView, times(1)).showLoading(); verify(loginView, times(1)).openBrowser(OAUTH_CALLBACK); verifyNoMoreInteractions(loginView); }
public void switchSection(String token) { popup.hide(); tokenHistory.add(token); Map<String, String> parameters = getHistoryTokenParameters(token); AppPlace place = getPlace(token); if (mainPresenter != null) { mainPresenter.clearNotifications(); } if (ClientSessionUtil.checkSession()) { switch (place) { case HOME: HomePresenter homePresenter = new HomePresenter(new HomeView(), eventBus); homePresenter.bind(); getLayout().clear(); getLayout().add(homePresenter.getDisplay().asWidget()); break; case REQUEST: RequestPresenter requestPresenter = new RequestPresenter(new RequestView(), eventBus); requestPresenter.bind(); getLayout().clear(); getLayout().add(requestPresenter.getDisplay().asWidget()); break; case LOGOUT: ClientSessionUtil.destroySession(); eventBus.fireEvent(new LoginRequiredEvent()); break; case REQUESTSTATUS: try { Integer requestId = Integer.parseInt(parameters.get("requestId")); RequestStatusPresenter requestStatusPresenter = new RequestStatusPresenter(new RequestStatusView(), eventBus); requestStatusPresenter.bind(); requestStatusPresenter.showRequest(requestId); getLayout().clear(); getLayout().add(requestStatusPresenter.getDisplay().asWidget()); } catch (Exception e) { showNotification( "Id incorrecta: No se puede cargar la solicitud", NotificationEventType.ERROR); } break; case EDITREQUEST: try { Integer requestId = Integer.parseInt(parameters.get("requestId")); RequestEditPresenter editPresenter = new RequestEditPresenter(new RequestEditView(), eventBus); editPresenter.bind(); editPresenter.showRequest(requestId); getLayout().clear(); getLayout().add(editPresenter.getDisplay().asWidget()); } catch (Exception e) { showNotification( "Id incorrecta: No se puede cargar la solicitud", NotificationEventType.ERROR); } break; case RESPONSE: try { Integer requestId = Integer.parseInt(parameters.get("requestId")); RequestResponsePresenter requestResponsePresenter = new RequestResponsePresenter(new RequestResponseView(), eventBus); requestResponsePresenter.bind(); requestResponsePresenter.showRequest(requestId); getLayout().clear(); getLayout().add(requestResponsePresenter.getDisplay().asWidget()); } catch (Exception e) { showNotification( "Id incorrecta: No se puede cargar la solicitud", NotificationEventType.ERROR); } break; case LIST: try { String listType = parameters.get("type"); RequestListPresenter requestListPresenter = new RequestListPresenter(new RequestListView(), eventBus); requestListPresenter.bind(); requestListPresenter.loadRequests(0, 100, listType); getLayout().clear(); getLayout().add(requestListPresenter.getDisplay().asWidget()); } catch (Exception e) { showNotification( "Tipo de lista incorrecto: No se puede cargar la lista", NotificationEventType.ERROR); } break; case STATISTICS: StatisticsPresenter statistics = new StatisticsPresenter(new StatisticsView(), eventBus); statistics.bind(); getLayout().clear(); getLayout().add(statistics.getDisplay().asWidget()); break; case ABOUTPROJECT: AboutProjectPresenter aboutProjectPresenter = new AboutProjectPresenter(new AboutProjectView(), eventBus); aboutProjectPresenter.bind(); getLayout().clear(); getLayout().add(aboutProjectPresenter.getDisplay().asWidget()); break; case ASOCIATES: AsociatesPresenter asociatesPresenter = new AsociatesPresenter(new AsociatesView(), eventBus); asociatesPresenter.bind(); getLayout().clear(); getLayout().add(asociatesPresenter.getDisplay().asWidget()); break; case USERPROFILE: UserProfileEditPresenter userProfilePresenter = new UserProfileEditPresenter(new UserProfileEditView(), eventBus); userProfilePresenter.bind(); getLayout().clear(); getLayout().add(userProfilePresenter.getDisplay().asWidget()); break; default: History.newItem(AppPlace.HOME.toString()); } } else { switch (place) { case HOME: HomePresenter homePresenter = new HomePresenter(new HomeView(), eventBus); homePresenter.bind(); getLayout().clear(); getLayout().add(homePresenter.getDisplay().asWidget()); break; case REQUEST: case LOGIN: LoginPresenter loginPresenter = new LoginPresenter(new LoginView(), eventBus); loginPresenter.bind(); popup.setModal(true); popup.setGlassEnabled(true); popup.clear(); popup.add(loginPresenter.getDisplay().asWidget()); popup.center(); break; case REGISTER: RegisterPresenter registerPresenter = new RegisterPresenter(new RegisterView(), eventBus); registerPresenter.bind(); getLayout().clear(); getLayout().add(registerPresenter.getDisplay().asWidget()); break; case RESPONSE: try { Integer requestId = Integer.parseInt(parameters.get("requestId")); RequestResponsePresenter requestResponsePresenter = new RequestResponsePresenter(new RequestResponseView(), eventBus); requestResponsePresenter.bind(); requestResponsePresenter.showRequest(requestId); getLayout().clear(); getLayout().add(requestResponsePresenter.getDisplay().asWidget()); } catch (Exception e) { showNotification( "Id incorrecta: No se puede cargar la solicitud", NotificationEventType.ERROR); } break; case LIST: try { String listType = parameters.get("type"); RequestListPresenter requtesListPresenter = new RequestListPresenter(new RequestListView(), eventBus); requtesListPresenter.bind(); requtesListPresenter.loadRequests(0, 100, listType); getLayout().clear(); getLayout().add(requtesListPresenter.getDisplay().asWidget()); } catch (Exception e) { showNotification( "Tipo de lista incorrecto: No se puede cargar la lista", NotificationEventType.ERROR); } break; case STATISTICS: StatisticsPresenter statistics = new StatisticsPresenter(new StatisticsView(), eventBus); statistics.bind(); getLayout().clear(); getLayout().add(statistics.getDisplay().asWidget()); break; case ABOUTPROJECT: AboutProjectPresenter aboutProjectPresenter = new AboutProjectPresenter(new AboutProjectView(), eventBus); aboutProjectPresenter.bind(); getLayout().clear(); getLayout().add(aboutProjectPresenter.getDisplay().asWidget()); break; case ASOCIATES: AsociatesPresenter asociatesPresenter = new AsociatesPresenter(new AsociatesView(), eventBus); asociatesPresenter.bind(); getLayout().clear(); getLayout().add(asociatesPresenter.getDisplay().asWidget()); break; case PASSWORDRECOVERY: PasswordRecoveryPresenter passwordRecoveryPresenter = new PasswordRecoveryPresenter(new PasswordRecoveryView(), eventBus); passwordRecoveryPresenter.bind(); getLayout().clear(); getLayout().add(passwordRecoveryPresenter.getDisplay().asWidget()); break; default: History.newItem(AppPlace.HOME.toString()); } } }
@Before public void beforeEachTest() { MockitoAnnotations.initMocks(this); presenter = new LoginPresenter(oAuthInteractor, networkInteractor); presenter.onViewAttached(loginView); }