private void setUp(final PaymentPluginStatus paymentPluginStatus) throws Exception {
    final GlobalLocker locker = new MemoryGlobalLocker();
    final PluginDispatcher<OperationResult> paymentPluginDispatcher =
        new PluginDispatcher<OperationResult>(1, Executors.newCachedThreadPool());
    paymentStateContext =
        new PaymentStateContext(
            true,
            UUID.randomUUID(),
            null,
            null,
            UUID.randomUUID().toString(),
            UUID.randomUUID().toString(),
            TransactionType.CAPTURE,
            Mockito.mock(Account.class),
            UUID.randomUUID(),
            new BigDecimal("192.3920111"),
            Currency.BRL,
            false,
            null,
            ImmutableList.<PluginProperty>of(),
            internalCallContext,
            callContext);

    final PaymentMethodModelDao paymentMethodModelDao =
        new PaymentMethodModelDao(
            paymentStateContext.getPaymentMethodId(),
            UUID.randomUUID().toString(),
            clock.getUTCNow(),
            clock.getUTCNow(),
            paymentStateContext.getAccount().getId(),
            MockPaymentProviderPlugin.PLUGIN_NAME,
            true);
    final PaymentDao paymentDao = Mockito.mock(PaymentDao.class);
    Mockito.when(
            paymentDao.getPaymentMethodIncludedDeleted(
                paymentStateContext.getPaymentMethodId(), internalCallContext))
        .thenReturn(paymentMethodModelDao);

    final PaymentAutomatonDAOHelper daoHelper =
        new PaymentAutomatonDAOHelper(
            paymentStateContext,
            clock.getUTCNow(),
            paymentDao,
            registry,
            internalCallContext,
            eventBus,
            paymentSMHelper);
    paymentOperation =
        new PaymentOperationTest(
            paymentPluginStatus, daoHelper, locker, paymentPluginDispatcher, paymentStateContext);
  }