PaymentMethodsPresenter extends BasePresenter<PaymentMethods.View> implements PaymentMethods.Actions { @Override public void start() { definePaymentMethodsExclusions(); retrievePaymentMethods(); if (showBankDeals && isViewAttached()) { getView().showBankDeals(); } } PaymentMethodsPresenter(@NonNull final UserSelectionRepository userSelectionRepository,
        @NonNull final PaymentMethodsRepository paymentMethodsRepository); @Override void setShowBankDeals(final boolean showBankDeals); @Override void setPaymentPreference(final PaymentPreference paymentPreference); @Override void setSupportedPaymentTypes(final List<String> supportedPaymentTypes); @Override void start(); @Override void recoverFromFailure();  }
@Test public void whenPaymentMethodsPresenterStartsThenShowPaymentMethods() { final List<PaymentMethod> paymentMethodsStub = PaymentMethodStub.getAllBySite(Sites.ARGENTINA.getId()); when(paymentMethodsRepository.getPaymentMethods()).thenReturn(new StubSuccessMpCall(paymentMethodsStub)); presenter.start(); verify(view).showProgress(); verify(view).showPaymentMethods(paymentMethodsStub); verify(view).hideProgress(); verifyNoMoreInteractions(view); }