return new BusinessInvoicePaymentModelDao(accountKey, amount, cardCountry, cardType, createdDate, currency, effectiveDate, invoiceId, paymentError, paymentId, paymentMethod, paymentType, pluginName, processingStatus, requestedAmount, updatedDate, invoicePaymentType,
public DefaultBusinessInvoicePayment(final BusinessInvoicePaymentModelDao businessInvoicePaymentModelDao) { this.paymentId = businessInvoicePaymentModelDao.getPaymentId(); this.extFirstPaymentRefId = businessInvoicePaymentModelDao.getExtFirstPaymentRefId(); this.extSecondPaymentRefId = businessInvoicePaymentModelDao.getExtSecondPaymentRefId(); this.accountKey = businessInvoicePaymentModelDao.getAccountKey(); this.invoiceId = businessInvoicePaymentModelDao.getInvoiceId(); this.effectiveDate = businessInvoicePaymentModelDao.getEffectiveDate(); this.amount = businessInvoicePaymentModelDao.getAmount(); this.currency = businessInvoicePaymentModelDao.getCurrency(); this.paymentError = businessInvoicePaymentModelDao.getPaymentError(); this.processingStatus = businessInvoicePaymentModelDao.getProcessingStatus(); this.requestedAmount = businessInvoicePaymentModelDao.getRequestedAmount(); this.pluginName = businessInvoicePaymentModelDao.getPluginName(); this.paymentType = businessInvoicePaymentModelDao.getPaymentType(); this.paymentMethod = businessInvoicePaymentModelDao.getPaymentMethod(); this.cardType = businessInvoicePaymentModelDao.getCardType(); this.cardCountry = businessInvoicePaymentModelDao.getCardCountry(); this.invoicePaymentType = businessInvoicePaymentModelDao.getInvoicePaymentType(); this.linkedInvoicePaymentId = businessInvoicePaymentModelDao.getLinkedInvoicePaymentId(); }
@Test(groups = "slow") public void testCRUD() throws Exception { final String accountKey = UUID.randomUUID().toString(); final BusinessInvoicePaymentModelDao invoicePayment = createInvoicePayment(accountKey); // Verify initial state Assert.assertNull(invoicePaymentSqlDao.getInvoicePayment(invoicePayment.getPaymentId().toString(), internalCallContext)); Assert.assertEquals(invoicePaymentSqlDao.getInvoicePaymentsForAccountByKey(invoicePayment.getAccountKey(), internalCallContext).size(), 0); // Add the invoice payment Assert.assertEquals(invoicePaymentSqlDao.createInvoicePayment(invoicePayment, internalCallContext), 1); // Retrieve it Assert.assertEquals(invoicePaymentSqlDao.getInvoicePayment(invoicePayment.getPaymentId().toString(), internalCallContext), invoicePayment); Assert.assertEquals(invoicePaymentSqlDao.getInvoicePaymentsForAccountByKey(invoicePayment.getAccountKey(), internalCallContext).size(), 1); Assert.assertEquals(invoicePaymentSqlDao.getInvoicePaymentsForAccountByKey(invoicePayment.getAccountKey(), internalCallContext).get(0), invoicePayment); // Delete it Assert.assertEquals(invoicePaymentSqlDao.deleteInvoicePayment(invoicePayment.getPaymentId().toString(), internalCallContext), 1); Assert.assertNull(invoicePaymentSqlDao.getInvoicePayment(invoicePayment.getPaymentId().toString(), internalCallContext)); Assert.assertEquals(invoicePaymentSqlDao.getInvoicePaymentsForAccountByKey(invoicePayment.getAccountKey(), internalCallContext).size(), 0); }
@Test(groups = "slow") public void testSegmentation() throws Exception { final String accountKey1 = UUID.randomUUID().toString(); final BusinessInvoicePaymentModelDao invoicePayment1 = createInvoicePayment(accountKey1); final String accountKey2 = UUID.randomUUID().toString(); final BusinessInvoicePaymentModelDao invoicePayment2 = createInvoicePayment(accountKey2); // Create both invoice payments Assert.assertEquals(invoicePaymentSqlDao.createInvoicePayment(invoicePayment1, internalCallContext), 1); Assert.assertEquals(invoicePaymentSqlDao.createInvoicePayment(invoicePayment2, internalCallContext), 1); Assert.assertEquals(invoicePaymentSqlDao.getInvoicePayment(invoicePayment1.getPaymentId().toString(), internalCallContext), invoicePayment1); Assert.assertEquals(invoicePaymentSqlDao.getInvoicePayment(invoicePayment2.getPaymentId().toString(), internalCallContext), invoicePayment2); Assert.assertEquals(invoicePaymentSqlDao.getInvoicePaymentsForAccountByKey(invoicePayment1.getAccountKey(), internalCallContext).size(), 1); Assert.assertEquals(invoicePaymentSqlDao.getInvoicePaymentsForAccountByKey(invoicePayment2.getAccountKey(), internalCallContext).size(), 1); // Remove the first invoice payment Assert.assertEquals(invoicePaymentSqlDao.deleteInvoicePayment(invoicePayment1.getPaymentId().toString(), internalCallContext), 1); Assert.assertNull(invoicePaymentSqlDao.getInvoicePayment(invoicePayment1.getPaymentId().toString(), internalCallContext)); Assert.assertEquals(invoicePaymentSqlDao.getInvoicePayment(invoicePayment2.getPaymentId().toString(), internalCallContext), invoicePayment2); Assert.assertEquals(invoicePaymentSqlDao.getInvoicePaymentsForAccountByKey(invoicePayment1.getAccountKey(), internalCallContext).size(), 0); Assert.assertEquals(invoicePaymentSqlDao.getInvoicePaymentsForAccountByKey(invoicePayment2.getAccountKey(), internalCallContext).size(), 1); }
@Override public void bind(final SQLStatement q, final BusinessInvoicePaymentBinder bind, final BusinessInvoicePaymentModelDao invoicePayment) { q.bind("payment_id", invoicePayment.getPaymentId().toString()); if (invoicePayment.getCreatedDate() != null) { q.bind("created_date", invoicePayment.getCreatedDate().getMillis()); } else { q.bind("created_date", dateTimeNow.getMillis()); if (invoicePayment.getUpdatedDate() != null) { q.bind("updated_date", invoicePayment.getUpdatedDate().getMillis()); } else { q.bind("updated_date", dateTimeNow.getMillis()); q.bind("ext_first_payment_ref_id", invoicePayment.getExtFirstPaymentRefId()); q.bind("ext_second_payment_ref_id", invoicePayment.getExtSecondPaymentRefId()); q.bind("account_key", invoicePayment.getAccountKey()); q.bind("invoice_id", invoicePayment.getInvoiceId().toString()); if (invoicePayment.getEffectiveDate() != null) { q.bind("effective_date", invoicePayment.getEffectiveDate().getMillis()); } else { q.bindNull("effective_date", Types.BIGINT); q.bind("amount", Rounder.round(invoicePayment.getAmount())); q.bind("currency", invoicePayment.getCurrency().toString()); q.bind("payment_error", invoicePayment.getPaymentError()); q.bind("processing_status", invoicePayment.getProcessingStatus()); q.bind("requested_amount", Rounder.round(invoicePayment.getRequestedAmount())); q.bind("plugin_name", invoicePayment.getPluginName());
private BusinessInvoicePaymentModelDao createInvoicePayment(final String accountKey) { final BigDecimal amount = BigDecimal.ONE; final String cardCountry = UUID.randomUUID().toString().substring(0, 20); final String cardType = UUID.randomUUID().toString().substring(0, 20); final DateTime createdDate = new DateTime(DateTimeZone.UTC); final Currency currency = Currency.BRL; final DateTime effectiveDate = new DateTime(DateTimeZone.UTC); final UUID invoiceId = UUID.randomUUID(); final String paymentError = UUID.randomUUID().toString(); final UUID paymentId = UUID.randomUUID(); final String paymentMethod = UUID.randomUUID().toString().substring(0, 20); final String paymentType = UUID.randomUUID().toString().substring(0, 20); final String pluginName = UUID.randomUUID().toString().substring(0, 20); final String processingStatus = UUID.randomUUID().toString(); final BigDecimal requestedAmount = BigDecimal.ZERO; final DateTime updatedDate = new DateTime(DateTimeZone.UTC); final String invoicePaymentType = UUID.randomUUID().toString().substring(0, 10); final UUID linkedInvoicePaymentId = UUID.randomUUID(); return new BusinessInvoicePaymentModelDao(accountKey, amount, cardCountry, cardType, createdDate, currency, effectiveDate, invoiceId, paymentError, paymentId, paymentMethod, paymentType, pluginName, processingStatus, requestedAmount, updatedDate, invoicePaymentType, linkedInvoicePaymentId); } }
final String invoicePaymentType = UUID.randomUUID().toString(); final UUID linkedInvoicePaymentId = UUID.randomUUID(); final BusinessInvoicePaymentModelDao invoicePayment = new BusinessInvoicePaymentModelDao(accountKey, amount, cardCountry, cardType, createdDate, currency, effectiveDate, invoiceId, Assert.assertSame(invoicePayment, invoicePayment); Assert.assertEquals(invoicePayment, invoicePayment); Assert.assertTrue(invoicePayment.equals(invoicePayment)); Assert.assertEquals(invoicePayment.getAccountKey(), accountKey); Assert.assertEquals(invoicePayment.getAmount(), amount); Assert.assertEquals(invoicePayment.getCardCountry(), cardCountry); Assert.assertEquals(invoicePayment.getCardType(), cardType); Assert.assertEquals(invoicePayment.getCreatedDate(), createdDate); Assert.assertEquals(invoicePayment.getCurrency(), currency); Assert.assertEquals(invoicePayment.getEffectiveDate(), effectiveDate); Assert.assertEquals(invoicePayment.getInvoiceId(), invoiceId); Assert.assertEquals(invoicePayment.getPaymentError(), paymentError); Assert.assertEquals(invoicePayment.getPaymentId(), paymentId); Assert.assertEquals(invoicePayment.getPaymentMethod(), paymentMethod); Assert.assertEquals(invoicePayment.getPaymentType(), paymentType); Assert.assertEquals(invoicePayment.getPluginName(), pluginName); Assert.assertEquals(invoicePayment.getProcessingStatus(), processingStatus); Assert.assertEquals(invoicePayment.getRequestedAmount(), requestedAmount); Assert.assertEquals(invoicePayment.getUpdatedDate(), updatedDate); Assert.assertEquals(invoicePayment.getInvoicePaymentType(), invoicePaymentType); Assert.assertEquals(invoicePayment.getLinkedInvoicePaymentId(), linkedInvoicePaymentId); final BusinessInvoicePaymentModelDao otherInvoicePayment = new BusinessInvoicePaymentModelDao(null, null, null, null, createdDate,
final BusinessInvoicePaymentModelDao businessInvoicePayment = new BusinessInvoicePaymentModelDao( account.getExternalKey(), payment.getAmount(),