@Override public BusinessInvoice apply(@Nullable final BusinessInvoiceModelDao input) { return new DefaultBusinessInvoice(input, input == null ? null : analyticsDao.getInvoiceItemsForInvoice(input.getInvoiceId().toString(), internalTenantContext)); } }));
@Test(groups = "slow") public void testCRUD() throws Exception { final UUID invoiceId = UUID.randomUUID(); final UUID accountId = UUID.randomUUID(); final String accountKey = UUID.randomUUID().toString(); final BusinessInvoiceModelDao invoice = createInvoice(accountId, invoiceId, accountKey); // Verify initial state Assert.assertNull(invoiceSqlDao.getInvoice(invoice.getInvoiceId().toString(), internalCallContext)); Assert.assertEquals(invoiceSqlDao.deleteInvoice(invoice.getInvoiceId().toString(), internalCallContext), 0); // Add the invoice Assert.assertEquals(invoiceSqlDao.createInvoice(invoice, internalCallContext), 1); // Retrieve it Assert.assertEquals(invoiceSqlDao.getInvoice(invoice.getInvoiceId().toString(), internalCallContext), invoice); Assert.assertEquals(invoiceSqlDao.getInvoicesForAccount(invoice.getAccountId().toString(), internalCallContext).size(), 1); Assert.assertEquals(invoiceSqlDao.getInvoicesForAccount(invoice.getAccountId().toString(), internalCallContext).get(0), invoice); // Delete it Assert.assertEquals(invoiceSqlDao.deleteInvoice(invoice.getInvoiceId().toString(), internalCallContext), 1); Assert.assertNull(invoiceSqlDao.getInvoice(invoice.getInvoiceId().toString(), internalCallContext)); Assert.assertEquals(invoiceSqlDao.getInvoicesForAccount(invoice.getAccountId().toString(), internalCallContext).size(), 0); }
@Test(groups = "slow") public void testSegmentation() throws Exception { final UUID invoiceId1 = UUID.randomUUID(); final UUID accountId1 = UUID.randomUUID(); final String accountKey1 = UUID.randomUUID().toString(); final BusinessInvoiceModelDao invoice1 = createInvoice(invoiceId1, accountId1, accountKey1); final UUID invoiceId2 = UUID.randomUUID(); final UUID accountId2 = UUID.randomUUID(); final String accountKey2 = UUID.randomUUID().toString(); final BusinessInvoiceModelDao invoice2 = createInvoice(invoiceId2, accountId2, accountKey2); // Create both invoices Assert.assertEquals(invoiceSqlDao.createInvoice(invoice1, internalCallContext), 1); Assert.assertEquals(invoiceSqlDao.createInvoice(invoice2, internalCallContext), 1); Assert.assertEquals(invoiceSqlDao.getInvoicesForAccount(accountId1.toString(), internalCallContext).size(), 1); Assert.assertEquals(invoiceSqlDao.getInvoicesForAccount(accountId2.toString(), internalCallContext).size(), 1); // Remove the first invoice Assert.assertEquals(invoiceSqlDao.deleteInvoice(invoice1.getInvoiceId().toString(), internalCallContext), 1); Assert.assertEquals(invoiceSqlDao.getInvoicesForAccount(accountId1.toString(), internalCallContext).size(), 0); Assert.assertEquals(invoiceSqlDao.getInvoicesForAccount(accountId2.toString(), internalCallContext).size(), 1); }
public DefaultBusinessInvoice(final BusinessInvoiceModelDao businessInvoiceModelDao, final Collection<BusinessInvoiceItemModelDao> businessInvoiceItemModelDaos) { super(businessInvoiceModelDao.getInvoiceId(), businessInvoiceModelDao.getCreatedDate(), businessInvoiceModelDao.getUpdatedDate()); this.accountId = businessInvoiceModelDao.getAccountId(); this.accountKey = businessInvoiceModelDao.getAccountKey(); this.amountCharged = businessInvoiceModelDao.getAmountCharged(); this.amountCredited = businessInvoiceModelDao.getAmountCredited(); this.amountPaid = businessInvoiceModelDao.getAmountPaid(); this.balance = businessInvoiceModelDao.getBalance(); this.currency = businessInvoiceModelDao.getCurrency(); this.invoiceDate = businessInvoiceModelDao.getInvoiceDate(); this.invoiceId = businessInvoiceModelDao.getInvoiceId(); this.invoiceNumber = businessInvoiceModelDao.getInvoiceNumber(); this.targetDate = businessInvoiceModelDao.getTargetDate(); this.invoiceItems = toInvoiceItems(businessInvoiceItemModelDaos); }
Assert.assertEquals(invoice.getCurrency(), currency); Assert.assertEquals(invoice.getInvoiceDate(), invoiceDate); Assert.assertEquals(invoice.getInvoiceId(), invoiceId); Assert.assertEquals(invoice.getInvoiceNumber(), invoiceNumber); Assert.assertEquals(invoice.getTargetDate(), targetDate);
public void bind(final SQLStatement q, final BusinessInvoiceBinder bind, final BusinessInvoiceModelDao invoice) { q.bind("invoice_id", invoice.getInvoiceId().toString());