public static void updatePaymentTransaction(final PaymentTransaction paymentTransaction, final PaymentTransactionInfoPlugin paymentTransactionInfoPlugin) { Mockito.when(paymentTransaction.getPaymentInfoPlugin()).thenReturn(paymentTransactionInfoPlugin); Mockito.when(paymentTransaction.getTransactionType()).thenReturn(paymentTransactionInfoPlugin.getTransactionType()); Mockito.when(paymentTransaction.getTransactionStatus()).thenReturn(toTransactionStatus(paymentTransactionInfoPlugin)); }
public PaymentTransactionJson(final PaymentTransaction transaction, final String paymentExternalKey, @Nullable final List<AuditLog> transactionLogs) { this(transaction.getId(), transaction.getExternalKey(), transaction.getPaymentId(), paymentExternalKey, transaction.getTransactionType(), transaction.getAmount(), transaction.getCurrency() != null ? transaction.getCurrency() : null, transaction.getEffectiveDate(), transaction.getProcessedAmount(), transaction.getProcessedCurrency() != null ? transaction.getProcessedCurrency() : null, transaction.getTransactionStatus() != null ? transaction.getTransactionStatus().toString() : null, transaction.getGatewayErrorCode(), transaction.getGatewayErrorMsg(), transaction.getPaymentInfoPlugin() == null ? null : transaction.getPaymentInfoPlugin().getFirstPaymentReferenceId(), transaction.getPaymentInfoPlugin() == null ? null : transaction.getPaymentInfoPlugin().getSecondPaymentReferenceId(), transaction.getPaymentInfoPlugin() == null ? null : toPluginPropertyJson(transaction.getPaymentInfoPlugin().getProperties()), toAuditLogJson(transactionLogs)); }
@Override public Payment answer(final InvocationOnMock invocation) throws Throwable { Payment payment = null; PaymentTransaction paymentTransaction = null; final UUID kbPaymentTransactionId = (UUID) invocation.getArguments()[1]; for (final Payment p : paymentApi.getAccountPayments(account.getId(), false, false, ImmutableList.<PluginProperty>of(), (TenantContext) invocation.getArguments()[3])) { for (final PaymentTransaction t : p.getTransactions()) { if (kbPaymentTransactionId.equals(t.getId())) { payment = p; paymentTransaction = t; break; } } } Assert.assertNotNull(payment); Assert.assertNotNull(paymentTransaction); Assert.assertEquals(paymentTransaction.getTransactionStatus(), TransactionStatus.PENDING); final Boolean success = (Boolean) invocation.getArguments()[2]; Mockito.when(paymentTransaction.getTransactionStatus()).thenReturn(success ? TransactionStatus.SUCCESS : TransactionStatus.PAYMENT_FAILURE); final PaymentTransactionInfoPlugin paymentInfoPlugin = Mockito.mockingDetails(paymentTransaction.getPaymentInfoPlugin()).isMock() ? paymentTransaction.getPaymentInfoPlugin() : Mockito.spy(paymentTransaction.getPaymentInfoPlugin()); Mockito.when(paymentInfoPlugin.getStatus()).thenReturn(success ? PaymentPluginStatus.PROCESSED : PaymentPluginStatus.ERROR); Mockito.when(paymentTransaction.getPaymentInfoPlugin()).thenReturn(paymentInfoPlugin); return payment; } });
public static PaymentTransaction buildPaymentTransaction(final Payment payment, final String transactionExternalKey, final TransactionType transactionType, final TransactionStatus transactionStatus, final BigDecimal amount, final Currency currency) { final PaymentTransaction paymentTransaction = Mockito.mock(PaymentTransaction.class); Mockito.when(paymentTransaction.getId()).thenReturn(UUID.randomUUID()); final UUID paymentId = payment.getId(); Mockito.when(paymentTransaction.getPaymentId()).thenReturn(paymentId); Mockito.when(paymentTransaction.getTransactionType()).thenReturn(transactionType); Mockito.when(paymentTransaction.getAmount()).thenReturn(amount); Mockito.when(paymentTransaction.getCurrency()).thenReturn(currency); Mockito.when(paymentTransaction.getEffectiveDate()).thenReturn(new DateTime(2016, 1, 22, 10, 56, 56, DateTimeZone.UTC)); Mockito.when(paymentTransaction.getExternalKey()).thenReturn(transactionExternalKey); Mockito.when(paymentTransaction.getTransactionStatus()).thenReturn(transactionStatus); final PaymentTransactionInfoPlugin paymentTransactionInfoPlugin = Mockito.mock(PaymentTransactionInfoPlugin.class); final PaymentPluginStatus paymentPluginStatus = toPaymentPluginStatus(paymentTransaction.getTransactionStatus()); Mockito.when(paymentTransactionInfoPlugin.getStatus()).thenReturn(paymentPluginStatus); Mockito.when(paymentTransaction.getPaymentInfoPlugin()).thenReturn(paymentTransactionInfoPlugin); payment.getTransactions().add(paymentTransaction); return paymentTransaction; }
updatedPaymentTransaction.getPaymentInfoPlugin().getStatus(), paymentPluginStatus);
@Test(groups = "slow") public void testGetPaymentInfoWithAndWithoutPluginInfo() throws PaymentApiException, PaymentPluginApiException { final BigDecimal requestedAmount = BigDecimal.TEN; final String paymentExternalKey = "externalKey"; final String transactionExternalKey = "transactionKey"; final Payment payment = paymentApi.createPurchase(account, account.getPaymentMethodId(), null, requestedAmount, Currency.AED, null, paymentExternalKey, transactionExternalKey, ImmutableList.<PluginProperty>of(), callContext); final Payment paymentPluginInfoFalse = paymentApi.getPayment(payment.getId(), false, false, ImmutableList.<PluginProperty>of(), callContext); final Payment paymentPluginInfoTrue = paymentApi.getPayment(payment.getId(), true, false, ImmutableList.<PluginProperty>of(), callContext); Assert.assertEquals(paymentPluginInfoFalse.getAccountId(), paymentPluginInfoTrue.getAccountId()); Assert.assertEquals(paymentPluginInfoFalse.getTransactions().size(), paymentPluginInfoTrue.getTransactions().size()); Assert.assertEquals(paymentPluginInfoFalse.getExternalKey(), paymentPluginInfoTrue.getExternalKey()); Assert.assertEquals(paymentPluginInfoFalse.getPaymentMethodId(), paymentPluginInfoTrue.getPaymentMethodId()); Assert.assertEquals(paymentPluginInfoFalse.getAccountId(), paymentPluginInfoTrue.getAccountId()); Assert.assertEquals(paymentPluginInfoFalse.getAuthAmount().compareTo(paymentPluginInfoTrue.getAuthAmount()), 0); Assert.assertEquals(paymentPluginInfoFalse.getCapturedAmount().compareTo(paymentPluginInfoTrue.getCapturedAmount()), 0); Assert.assertEquals(paymentPluginInfoFalse.getPurchasedAmount().compareTo(paymentPluginInfoTrue.getPurchasedAmount()), 0); Assert.assertEquals(paymentPluginInfoFalse.getRefundedAmount().compareTo(paymentPluginInfoTrue.getRefundedAmount()), 0); Assert.assertEquals(paymentPluginInfoFalse.getCurrency(), paymentPluginInfoTrue.getCurrency()); for (int i = 0; i < paymentPluginInfoFalse.getTransactions().size(); i++) { final PaymentTransaction noPluginInfoPaymentTransaction = paymentPluginInfoFalse.getTransactions().get(i); final PaymentTransaction paymentTransaction = paymentPluginInfoTrue.getTransactions().get(i); Assert.assertEquals(noPluginInfoPaymentTransaction.getAmount().compareTo(paymentTransaction.getAmount()), 0); Assert.assertEquals(noPluginInfoPaymentTransaction.getProcessedAmount().compareTo(paymentTransaction.getProcessedAmount()), 0); Assert.assertEquals(noPluginInfoPaymentTransaction.getCurrency(), paymentTransaction.getCurrency()); Assert.assertEquals(noPluginInfoPaymentTransaction.getExternalKey(), paymentTransaction.getExternalKey()); Assert.assertEquals(noPluginInfoPaymentTransaction.getTransactionStatus(), paymentTransaction.getTransactionStatus()); Assert.assertEquals(noPluginInfoPaymentTransaction.getPaymentInfoPlugin(), paymentTransaction.getPaymentInfoPlugin()); } }