@Test(groups = "slow")
public void testInvoiceItemCreation() throws EntityPersistenceException {
final UUID accountId = account.getId();
final UUID invoiceId = UUID.randomUUID();
final UUID bundleId = UUID.randomUUID();
final UUID subscriptionId = UUID.randomUUID();
final LocalDate startDate = new LocalDate(2011, 10, 1);
final LocalDate endDate = new LocalDate(2011, 11, 1);
final BigDecimal rate = new BigDecimal("20.00");
final RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, "test plan", "test phase", startDate, endDate,
rate, rate, Currency.USD);
invoiceUtil.createInvoiceItem(item, context);
final InvoiceItemModelDao thisItem = invoiceUtil.getInvoiceItemById(item.getId(), context);
assertNotNull(thisItem);
assertEquals(thisItem.getId(), item.getId());
assertEquals(thisItem.getInvoiceId(), item.getInvoiceId());
assertEquals(thisItem.getSubscriptionId(), item.getSubscriptionId());
assertTrue(thisItem.getStartDate().compareTo(item.getStartDate()) == 0);
assertTrue(thisItem.getEndDate().compareTo(item.getEndDate()) == 0);
assertEquals(thisItem.getAmount().compareTo(item.getRate()), 0);
assertEquals(thisItem.getRate().compareTo(item.getRate()), 0);
assertEquals(thisItem.getCurrency(), item.getCurrency());
}