CheckoutPresenter extends BasePresenter<Checkout.View> implements Checkout.Actions { @Override public void onErrorCancel(@Nullable final MercadoPagoError mercadoPagoError) { if (isIdentificationInvalidInPayment(mercadoPagoError)) { getView().showPaymentMethodSelection(); } else { cancelCheckout(); } } CheckoutPresenter(@NonNull final CheckoutStateModel persistentData,
        @NonNull final PaymentSettingRepository paymentSettingRepository,
        @NonNull final UserSelectionRepository userSelectionRepository,
        @NonNull final InitRepository initRepository,
        @NonNull final PluginRepository pluginRepository,
        @NonNull final PaymentRepository paymentRepository,
        @NonNull final CongratsRepository congratsRepository,
        @NonNull final InternalConfiguration internalConfiguration); @NonNull CheckoutStateModel getState(); @Override void initialize(); @Override void onErrorCancel(@Nullable final MercadoPagoError mercadoPagoError); @Override void onPaymentMethodSelectionError(final MercadoPagoError mercadoPagoError); @Override void onPaymentMethodSelectionCancel(); @Override void onReviewAndConfirmCancel(); @Override void onReviewAndConfirmError(final MercadoPagoError mercadoPagoError); @Override void onCardFlowResponse(); @Override void onTerminalError(@NonNull final MercadoPagoError mercadoPagoError); @Override void onCardFlowCancel(); @Override void onCustomReviewAndConfirmResponse(final Integer customResultCode); @Override void recoverFromFailure(); @Override void setFailureRecovery(final FailureRecovery failureRecovery); @Override void onPaymentResultResponse(@Nullable final Integer customResultCode); @Override void cancelCheckout(); @Override boolean isUniquePaymentMethod(); @Override void onChangePaymentMethod(); @Override void onCardAdded(@NonNull final String cardId, @NonNull final LifecycleListener.Callback callback);  }
@Test public void whenErrorShownAndInvalidIdentificationThenGoBackToPaymentMethodSelection() { final ApiException apiException = ApiExceptionStubs.INVALID_IDENTIFICATION_PAYMENT.get(); final MercadoPagoError mpException = new MercadoPagoError(apiException, ""); presenter.onErrorCancel(mpException); verify(checkoutView).showPaymentMethodSelection(); verifyNoMoreInteractions(checkoutView); }