@Test(groups = "slow") public void testGetInvoiceItemsByAccountId() throws EntityPersistenceException { final UUID accountId = account.getId(); final UUID bundleId = UUID.randomUUID(); final LocalDate targetDate = new LocalDate(2011, 5, 23); final DefaultInvoice invoice = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate, Currency.USD); invoiceUtil.createInvoice(invoice, true, context); final UUID invoiceId = invoice.getId(); final LocalDate startDate = new LocalDate(2011, 3, 1); final BigDecimal rate = new BigDecimal("20.00"); final UUID subscriptionId = UUID.randomUUID(); final RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, "test plan", "test phase", startDate, startDate.plusMonths(1), rate, rate, Currency.USD); invoiceUtil.createInvoiceItem(item, context); final List<InvoiceItemModelDao> items = invoiceUtil.getInvoiceItemByAccountId(context); assertEquals(items.size(), 1); }
private void createInvoiceAndPaymentCreationEvents(final Account account) { final DefaultInvoice invoice = new DefaultInvoice(account.getId(), clock.getUTCToday(), clock.getUTCToday(), ACCOUNT_CURRENCY); final FixedPriceInvoiceItem invoiceItem = new FixedPriceInvoiceItem(invoice.getId(), account.getId(), bundleId, subscriptionId, "somePlan", "somePhase", clock.getUTCToday(), INVOICE_AMOUNT, ACCOUNT_CURRENCY); invoice.addInvoiceItem(invoiceItem); Mockito.when(invoiceInternalApi.getInvoicesByAccountId(Mockito.eq(account.getId()), Mockito.<InternalCallContext>any())).thenReturn(ImmutableList.<Invoice>of(invoice)); // It doesn't really matter what the events contain - the listener will go back to the db invoiceCreationNotification = new DefaultInvoiceCreationEvent(invoice.getId(), account.getId(), INVOICE_AMOUNT, ACCOUNT_CURRENCY, null, 1L, 1L); paymentInfoNotification = new DefaultPaymentInfoEvent(account.getId(), invoice.getId(), null, INVOICE_AMOUNT, -1, PaymentStatus.UNKNOWN, null, clock.getUTCNow(), 1L, 1L); }
invoice.addInvoiceItem(creditBalanceAdjInvoiceItem2); invoice.addInvoiceItem(refundAdjInvoiceItem); invoice.addPayment(new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, UUID.randomUUID(), invoice.getId(), clock.getUTCNow(), BigDecimal.TEN, Currency.USD, Currency.USD)); invoice.addPayment(new DefaultInvoicePayment(InvoicePaymentType.REFUND, UUID.randomUUID(), invoice.getId(), clock.getUTCNow(), BigDecimal.ONE.negate(), Currency.USD, Currency.USD));
invoiceUtil.createInvoice(invoice2, true, context); final UUID invoiceId2 = invoice2.getId();
invoiceUtil.createInvoice(invoice2, true, context); final UUID invoiceId2 = invoice2.getId();
final InvoiceItem fixedItem2 = new FixedPriceInvoiceItem(invoice2.getId(), invoice1.getAccountId(), null, null, UUID.randomUUID().toString(), UUID.randomUUID().toString(), clock.getUTCToday(), new BigDecimal("5"), Currency.USD); final CreditBalanceAdjInvoiceItem creditBalanceAdjInvoiceItem2 = new CreditBalanceAdjInvoiceItem(fixedItem2.getInvoiceId(), fixedItem2.getAccountId(), invoiceUtil.verifyInvoice(invoice2.getId(), 0.00, -5.00, context); invoiceUtil.verifyInvoice(invoice2.getId(), 0.00, -5.00, context);
final InvoiceItem fixedItem2 = new FixedPriceInvoiceItem(invoice2.getId(), invoice1.getAccountId(), null, null, UUID.randomUUID().toString(), UUID.randomUUID().toString(), clock.getUTCToday(), new BigDecimal("5"), Currency.USD); final CreditBalanceAdjInvoiceItem creditBalanceAdjInvoiceItem2 = new CreditBalanceAdjInvoiceItem(fixedItem2.getInvoiceId(), fixedItem2.getAccountId(), final InvoiceItem fixedItem3 = new FixedPriceInvoiceItem(invoice3.getId(), invoice1.getAccountId(), null, null, UUID.randomUUID().toString(), UUID.randomUUID().toString(), clock.getUTCToday(), new BigDecimal("5"), Currency.USD); final CreditBalanceAdjInvoiceItem creditBalanceAdjInvoiceItem3 = new CreditBalanceAdjInvoiceItem(fixedItem3.getInvoiceId(), fixedItem3.getAccountId(), invoiceUtil.verifyInvoice(invoice2.getId(), 0.00, -5.00, context); invoiceUtil.verifyInvoice(invoice3.getId(), 0.00, -5.00, context); invoiceUtil.verifyInvoice(invoice2.getId(), 0.00, -5.00, context); invoiceUtil.verifyInvoice(invoice3.getId(), 0.00, -5.00, context);
invoiceUtil.createInvoice(invoice2, true, context); final UUID invoiceId2 = invoice2.getId();