@Override public boolean apply(final PaymentTransaction input) { return input.getTransactionType() == transactionType; } });
@Override public boolean apply(final PaymentTransaction input) { return input.getTransactionType() == TransactionType.REFUND; } }).get();
@Override public boolean apply(final PaymentTransaction input) { return input.getTransactionType() == TransactionType.PURCHASE; } }).get();
@Override public boolean apply(final PaymentTransaction input) { return input.getTransactionType() == TransactionType.REFUND; } }).orNull();
public static PaymentTransaction filterForTransaction(final Payment payment, final TransactionType transactionType) { for (final PaymentTransaction paymentTransaction : payment.getTransactions()) { if (paymentTransaction.getTransactionType().equals(transactionType)) { return paymentTransaction; } } return null; } }
@Override public boolean apply(final PaymentTransaction input) { if (input.getTransactionStatus() != TransactionStatus.PENDING && input.getTransactionStatus() != TransactionStatus.SUCCESS) { return false; } if (transactionId != null && !transactionId.equals(input.getId())) { return false; } if (transactionExternalKey != null && !transactionExternalKey.equals(input.getExternalKey())) { return false; } if (transactionType != null && !transactionType.equals(input.getTransactionType())) { return false; } // // If we were given a transactionId or a transactionExternalKey or a transactionType we checked there was a match; // In the worst case, if we were given nothing, we return the PENDING transaction for that payment // return true; } });
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)); }
final PaymentTransaction updatedPaymentTransaction, final CallContext context) throws PaymentApiException { final String currentPaymentStateName = String.format("%s_%s", updatedPaymentTransaction.getTransactionType() == TransactionType.AUTHORIZE ? "AUTH" : updatedPaymentTransaction.getTransactionType(), paymentPluginStatus == PaymentPluginStatus.PROCESSED ? "SUCCESS" : "FAILED"); final String lastSuccessfulPaymentStateName = paymentPluginStatus == PaymentPluginStatus.PROCESSED ? currentPaymentStateName : null;
private void verifyPaymentTransaction(final PaymentTransaction paymentTransaction, final String paymentTransactionExternalKey, final TransactionType transactionType, @Nullable final BigDecimal amount, final UUID paymentId) { Assert.assertEquals(paymentTransaction.getPaymentId(), paymentId); Assert.assertEquals(paymentTransaction.getExternalKey(), paymentTransactionExternalKey); Assert.assertEquals(paymentTransaction.getTransactionType(), transactionType); if (amount == null) { Assert.assertNull(paymentTransaction.getAmount()); Assert.assertNull(paymentTransaction.getCurrency()); } else { Assert.assertEquals(paymentTransaction.getAmount().compareTo(amount), 0); Assert.assertEquals(paymentTransaction.getCurrency(), CURRENCY); } }
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; }
@Override public boolean apply(final PaymentTransaction input) { return TransactionType.CHARGEBACK.equals(input.getTransactionType()) && TransactionStatus.SUCCESS.equals(input.getTransactionStatus()); } });
@Test(groups = "slow") public void testCreateSuccessPurchase() throws PaymentApiException { final BigDecimal requestedAmount = BigDecimal.TEN; final String paymentExternalKey = "bwwrr"; final String transactionExternalKey = "krapaut"; final Payment payment = paymentApi.createPurchase(account, account.getPaymentMethodId(), null, requestedAmount, Currency.AED, null, paymentExternalKey, transactionExternalKey, ImmutableList.<PluginProperty>of(), callContext); assertEquals(payment.getExternalKey(), paymentExternalKey); assertEquals(payment.getPaymentMethodId(), account.getPaymentMethodId()); assertEquals(payment.getAccountId(), account.getId()); assertEquals(payment.getAuthAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payment.getCapturedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payment.getPurchasedAmount().compareTo(requestedAmount), 0); assertEquals(payment.getRefundedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payment.getCurrency(), Currency.AED); assertEquals(payment.getTransactions().size(), 1); assertEquals(payment.getTransactions().get(0).getExternalKey(), transactionExternalKey); assertEquals(payment.getTransactions().get(0).getPaymentId(), payment.getId()); assertEquals(payment.getTransactions().get(0).getAmount().compareTo(requestedAmount), 0); assertEquals(payment.getTransactions().get(0).getCurrency(), Currency.AED); assertEquals(payment.getTransactions().get(0).getProcessedAmount().compareTo(requestedAmount), 0); assertEquals(payment.getTransactions().get(0).getProcessedCurrency(), Currency.AED); assertEquals(payment.getTransactions().get(0).getTransactionStatus(), TransactionStatus.SUCCESS); assertEquals(payment.getTransactions().get(0).getTransactionType(), TransactionType.PURCHASE); assertNotNull(payment.getTransactions().get(0).getGatewayErrorMsg()); assertNotNull(payment.getTransactions().get(0).getGatewayErrorCode()); }
@Test(groups = "slow") public void testNotifyPendingTransactionOfStateChanged() throws PaymentApiException { final BigDecimal authAmount = BigDecimal.TEN; final String paymentExternalKey = "rouge"; final String transactionExternalKey = "vert"; final Payment initialPayment = createPayment(TransactionType.AUTHORIZE, null, paymentExternalKey, transactionExternalKey, authAmount, PaymentPluginStatus.PENDING); final Payment payment = paymentApi.notifyPendingTransactionOfStateChanged(account, initialPayment.getTransactions().get(0).getId(), true, callContext); assertEquals(payment.getExternalKey(), paymentExternalKey); assertEquals(payment.getPaymentMethodId(), account.getPaymentMethodId()); assertEquals(payment.getAccountId(), account.getId()); assertEquals(payment.getAuthAmount().compareTo(authAmount), 0); assertEquals(payment.getCapturedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payment.getPurchasedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payment.getRefundedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payment.getCurrency(), Currency.USD); assertEquals(payment.getTransactions().size(), 1); assertEquals(payment.getTransactions().get(0).getExternalKey(), transactionExternalKey); assertEquals(payment.getTransactions().get(0).getPaymentId(), payment.getId()); assertEquals(payment.getTransactions().get(0).getAmount().compareTo(authAmount), 0); assertEquals(payment.getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payment.getTransactions().get(0).getProcessedAmount().compareTo(authAmount), 0); assertEquals(payment.getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payment.getTransactions().get(0).getTransactionStatus(), TransactionStatus.SUCCESS); assertEquals(payment.getTransactions().get(0).getTransactionType(), TransactionType.AUTHORIZE); assertNull(payment.getTransactions().get(0).getGatewayErrorMsg()); assertNull(payment.getTransactions().get(0).getGatewayErrorCode()); }
assertEquals(payment.getTransactions().get(0).getTransactionType(), TransactionType.PURCHASE); assertNotNull(payment.getTransactions().get(0).getGatewayErrorMsg()); assertNotNull(payment.getTransactions().get(0).getGatewayErrorCode()); assertEquals(payment2.getTransactions().get(0).getExternalKey(), transactionExternalKey); assertEquals(payment2.getTransactions().get(0).getTransactionStatus(), TransactionStatus.PAYMENT_FAILURE); assertEquals(payment2.getTransactions().get(0).getTransactionType(), TransactionType.PURCHASE); assertEquals(payment2.getTransactions().get(1).getTransactionType(), TransactionType.PURCHASE);
assertEquals(payment.getTransactions().get(0).getTransactionType(), TransactionType.PURCHASE); assertNotNull(payment.getTransactions().get(0).getGatewayErrorMsg()); assertNotNull(payment.getTransactions().get(0).getGatewayErrorCode()); assertEquals(payment2.getTransactions().get(0).getExternalKey(), transactionExternalKey); assertEquals(payment2.getTransactions().get(0).getTransactionStatus(), TransactionStatus.PLUGIN_FAILURE); assertEquals(payment2.getTransactions().get(0).getTransactionType(), TransactionType.PURCHASE); assertEquals(payment2.getTransactions().get(1).getTransactionType(), TransactionType.PURCHASE);
assertEquals(payment.getTransactions().get(0).getTransactionType(), TransactionType.PURCHASE); assertNotNull(payment.getTransactions().get(0).getGatewayErrorMsg()); assertNotNull(payment.getTransactions().get(0).getGatewayErrorCode());
assertEquals(payment4.getTransactions().get(3).getProcessedCurrency(), Currency.USD); assertEquals(payment4.getTransactions().get(3).getTransactionStatus(), TransactionStatus.SUCCESS); assertEquals(payment4.getTransactions().get(3).getTransactionType(), TransactionType.REFUND); assertNotNull(payment4.getTransactions().get(3).getGatewayErrorMsg()); assertNotNull(payment4.getTransactions().get(3).getGatewayErrorCode());
assertEquals(paymentInfo.getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(paymentInfo.getTransactions().get(0).getPaymentId(), paymentInfo.getId()); assertEquals(paymentInfo.getTransactions().get(0).getTransactionType(), TransactionType.PURCHASE); assertEquals(paymentInfo.getTransactions().get(0).getTransactionStatus(), TransactionStatus.SUCCESS);
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)); }
switch (pendingTransaction.getTransactionType()) { case AUTHORIZE: paymentApi.createAuthorizationWithPaymentControl(account, initialPayment.getPaymentMethodId(), initialPayment.getId(), amount, currency, null, break; default: throw new IllegalStateException("TransactionType " + pendingTransaction.getTransactionType() + " cannot be completed");