@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()); }
@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()); }
assertEquals(payments.get(0).getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payments.get(0).getTransactions().get(0).getProcessedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payments.get(0).getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(1).getCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(1).getProcessedAmount().compareTo(new BigDecimal("249.95")), 0); assertEquals(payments2.get(0).getTransactions().get(1).getProcessedCurrency(), Currency.USD);
assertEquals(payment.getTransactions().get(0).getCurrency(), Currency.AED); assertEquals(payment.getTransactions().get(0).getProcessedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payment.getTransactions().get(0).getProcessedCurrency(), Currency.AED);
assertEquals(payment.getTransactions().get(0).getCurrency(), Currency.AED); assertEquals(payment.getTransactions().get(0).getProcessedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payment.getTransactions().get(0).getProcessedCurrency(), Currency.AED);
assertEquals(payments.get(0).getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payments.get(0).getTransactions().get(0).getProcessedAmount().compareTo(new BigDecimal("249.95")), 0); assertEquals(payments.get(0).getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payments.get(0).getTransactions().get(0).getTransactionStatus(), TransactionStatus.PENDING); assertEquals(payments.get(0).getPaymentAttempts().size(), 1); assertEquals(payments2.get(0).getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(0).getProcessedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payments2.get(0).getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(0).getTransactionStatus(), TransactionStatus.PAYMENT_FAILURE); assertEquals(payments2.get(0).getPaymentAttempts().size(), 1);
Assert.assertEquals(payment1.getTransactions().get(0).getCurrency(), Currency.USD); Assert.assertEquals(payment1.getTransactions().get(0).getProcessedAmount().compareTo(new BigDecimal("225.44")), 0); Assert.assertEquals(payment1.getTransactions().get(0).getProcessedCurrency(), Currency.EUR); Assert.assertEquals(invoice2.getBalance().compareTo(BigDecimal.ZERO), 0); Assert.assertEquals(invoiceUserApi.getAccountBalance(account.getId(), callContext).compareTo(BigDecimal.ZERO), 0); Assert.assertEquals(payment1.getTransactions().get(0).getCurrency(), Currency.USD); Assert.assertEquals(payment1.getTransactions().get(0).getProcessedAmount().compareTo(new BigDecimal("225.44")), 0); Assert.assertEquals(payment1.getTransactions().get(0).getProcessedCurrency(), Currency.EUR); Assert.assertEquals(payment1.getTransactions().get(1).getAmount().compareTo(new BigDecimal("225.44")), 0); Assert.assertEquals(payment1.getTransactions().get(1).getCurrency(), Currency.EUR); Assert.assertEquals(payment1.getTransactions().get(1).getProcessedAmount().compareTo(new BigDecimal("225.44")), 0); Assert.assertEquals(payment1.getTransactions().get(1).getProcessedCurrency(), Currency.EUR); invoice2 = invoiceUserApi.getInvoice(invoice2.getId(), callContext); Assert.assertEquals(invoice2.getBalance().compareTo(new BigDecimal("249.95")), 0); Assert.assertEquals(payment1.getTransactions().get(0).getCurrency(), Currency.USD); Assert.assertEquals(payment1.getTransactions().get(0).getProcessedAmount().compareTo(new BigDecimal("225.44")), 0); Assert.assertEquals(payment1.getTransactions().get(0).getProcessedCurrency(), Currency.EUR); Assert.assertEquals(payment1.getTransactions().get(1).getAmount().compareTo(new BigDecimal("225.44")), 0); Assert.assertEquals(payment1.getTransactions().get(1).getCurrency(), Currency.EUR); Assert.assertEquals(payment1.getTransactions().get(1).getProcessedAmount().compareTo(new BigDecimal("225.44")), 0); Assert.assertEquals(payment1.getTransactions().get(1).getProcessedCurrency(), Currency.EUR); Assert.assertNull(payment1.getTransactions().get(2).getAmount()); Assert.assertNull(payment1.getTransactions().get(2).getCurrency()); Assert.assertEquals(payment1.getTransactions().get(2).getProcessedAmount().compareTo(BigDecimal.ZERO), 0); Assert.assertNull(payment1.getTransactions().get(2).getProcessedCurrency()); invoice2 = invoiceUserApi.getInvoice(invoice2.getId(), callContext); Assert.assertEquals(invoice2.getBalance().compareTo(BigDecimal.ZERO), 0);
assertEquals(payment4.getTransactions().get(3).getCurrency(), Currency.USD); assertEquals(payment4.getTransactions().get(3).getProcessedAmount().compareTo(payment3.getCapturedAmount()), 0); assertEquals(payment4.getTransactions().get(3).getProcessedCurrency(), Currency.USD); assertEquals(payment4.getTransactions().get(3).getTransactionStatus(), TransactionStatus.SUCCESS); assertEquals(payment4.getTransactions().get(3).getTransactionType(), TransactionType.REFUND);
assertEquals(payment.getTransactions().get(0).getCurrency(), Currency.AED); assertEquals(payment.getTransactions().get(0).getProcessedAmount().compareTo(authAmount), 0); assertEquals(payment.getTransactions().get(0).getProcessedCurrency(), Currency.AED); assertEquals(payment2.getTransactions().get(1).getCurrency(), Currency.AED); assertEquals(payment2.getTransactions().get(1).getProcessedAmount().compareTo(captureAmount), 0); assertEquals(payment2.getTransactions().get(1).getProcessedCurrency(), Currency.AED);
assertEquals(payment.getTransactions().get(0).getCurrency(), Currency.AED); assertEquals(payment.getTransactions().get(0).getProcessedAmount().compareTo(authAmount), 0); assertEquals(payment.getTransactions().get(0).getProcessedCurrency(), Currency.AED); assertNull(payment2.getTransactions().get(1).getCurrency()); assertNull(payment2.getTransactions().get(1).getProcessedAmount()); assertNull(payment2.getTransactions().get(1).getProcessedCurrency());
assertEquals(payment.getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payment.getTransactions().get(0).getProcessedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payment.getTransactions().get(0).getProcessedCurrency(), Currency.USD);
assertEquals(payments.get(0).getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payments.get(0).getTransactions().get(0).getProcessedAmount().compareTo(new BigDecimal("249.95")), 0); assertEquals(payments.get(0).getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payments.get(0).getTransactions().get(0).getTransactionStatus(), TransactionStatus.SUCCESS); assertEquals(payments.get(0).getPaymentAttempts().size(), 1); assertEquals(payments2.get(0).getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(0).getProcessedAmount().compareTo(new BigDecimal("249.95")), 0); assertEquals(payments2.get(0).getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(0).getTransactionStatus(), TransactionStatus.PAYMENT_FAILURE); assertEquals(payments2.get(0).getPaymentAttempts().size(), 1);
assertEquals(payment.getTransactions().get(0).getCurrency(), currency); assertEquals(payment.getTransactions().get(0).getProcessedAmount().compareTo(requestedAmount), 0); assertEquals(payment.getTransactions().get(0).getProcessedCurrency(), currency); assertEquals(payment.getTransactions().get(0).getTransactionStatus(), TransactionStatus.SUCCESS); assertEquals(payment.getTransactions().get(0).getTransactionType(), TransactionType.PURCHASE);
assertEquals(payments.get(0).getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payments.get(0).getTransactions().get(0).getProcessedAmount().compareTo(new BigDecimal("249.95")), 0); assertEquals(payments.get(0).getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payments.get(0).getTransactions().get(0).getTransactionStatus(), TransactionStatus.PENDING); assertEquals(payments.get(0).getPaymentAttempts().size(), 1); assertEquals(payments2.get(0).getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(0).getProcessedAmount().compareTo(new BigDecimal("249.95")), 0); assertEquals(payments2.get(0).getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(0).getTransactionStatus(), TransactionStatus.SUCCESS); assertEquals(payments2.get(0).getPaymentAttempts().size(), 1);
assertEquals(payments.get(0).getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payments.get(0).getTransactions().get(0).getProcessedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payments.get(0).getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payments.get(0).getTransactions().get(0).getTransactionStatus(), TransactionStatus.PAYMENT_FAILURE); assertEquals(payments.get(0).getPaymentAttempts().size(), 2); Mockito.when(updatedPaymentTransaction.getTransactionType()).thenReturn(existingPaymentTransaction.getTransactionType()); Mockito.when(updatedPaymentTransaction.getProcessedAmount()).thenReturn(new BigDecimal("249.95")); Mockito.when(updatedPaymentTransaction.getProcessedCurrency()).thenReturn(existingPaymentTransaction.getCurrency()); busHandler.pushExpectedEvents(NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT, NextEvent.BLOCK); adminPaymentApi.fixPaymentTransactionState(payments.get(0), updatedPaymentTransaction, TransactionStatus.SUCCESS, null, null, ImmutableList.<PluginProperty>of(), callContext); assertEquals(payments2.get(0).getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(0).getProcessedAmount().compareTo(new BigDecimal("249.95")), 0); assertEquals(payments2.get(0).getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(0).getTransactionStatus(), TransactionStatus.SUCCESS); assertEquals(payments2.get(0).getPaymentAttempts().size(), 1);
assertEquals(payment.getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payment.getTransactions().get(0).getProcessedAmount().compareTo(requestedAmount), 0); assertEquals(payment.getTransactions().get(0).getProcessedCurrency(), Currency.USD);
assertEquals(payments.get(0).getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payments.get(0).getTransactions().get(0).getProcessedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payments.get(0).getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payments.get(0).getTransactions().get(0).getTransactionStatus(), TransactionStatus.UNKNOWN); assertEquals(payments.get(0).getPaymentAttempts().size(), 1); assertEquals(payments2.get(0).getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(0).getProcessedAmount().compareTo(new BigDecimal("249.95")), 0); assertEquals(payments2.get(0).getTransactions().get(0).getProcessedCurrency(), Currency.USD); assertEquals(payments2.get(0).getTransactions().get(0).getTransactionStatus(), TransactionStatus.SUCCESS); assertEquals(payments2.get(0).getPaymentAttempts().size(), 1);
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)); }
assertEquals(payment.getTransactions().get(0).getCurrency(), Currency.USD); assertEquals(payment.getTransactions().get(0).getProcessedAmount().compareTo(BigDecimal.ZERO), 0); assertEquals(payment.getTransactions().get(0).getProcessedCurrency(), Currency.USD);
assertEquals(payment.getTransactions().get(0).getCurrency(), Currency.AED); assertEquals(payment.getTransactions().get(0).getProcessedAmount().compareTo(authAmount), 0); assertEquals(payment.getTransactions().get(0).getProcessedCurrency(), Currency.AED); assertEquals(payment2.getTransactions().get(1).getCurrency(), Currency.AED); assertEquals(payment2.getTransactions().get(1).getProcessedAmount().compareTo(captureAmount), 0); assertEquals(payment2.getTransactions().get(1).getProcessedCurrency(), Currency.AED); assertNull(payment3.getTransactions().get(2).getCurrency()); assertNull(payment3.getTransactions().get(2).getProcessedAmount()); assertNull(payment3.getTransactions().get(2).getProcessedCurrency()); assertEquals(payment4.getTransactions().get(3).getCurrency(), Currency.AED); assertEquals(payment4.getTransactions().get(3).getProcessedAmount().compareTo(captureAmount), 0); assertEquals(payment4.getTransactions().get(3).getProcessedCurrency(), Currency.AED);