@Override public UUID getBundleId() { return item.getBundleId(); }
private String getBundleExternalKey(final Invoice invoice, final List<SubscriptionBundle> bundles) { final Set<UUID> b = new HashSet<UUID>(); for (final InvoiceItem cur : invoice.getInvoiceItems()) { b.add(cur.getBundleId()); } boolean first = true; final StringBuilder tmp = new StringBuilder(); for (final UUID cur : b) { for (final SubscriptionBundle bt : bundles) { if (bt.getId().equals(cur)) { if (!first) { tmp.append(","); } tmp.append(bt.getExternalKey()); first = false; break; } } } return tmp.toString(); } }
@Test(groups = "slow") public void testAddTaxItems() throws Exception { final BigDecimal taxItemAmount = BigDecimal.TEN; final UUID bundleId = UUID.randomUUID(); final InvoiceItem taxItem = new TaxInvoiceItem(null, accountId, bundleId, UUID.randomUUID().toString(), clock.getUTCToday(), taxItemAmount, accountCurrency); final List<InvoiceItem> resultTaxInvoiceItems = invoiceUserApi.insertTaxItems(accountId, clock.getUTCToday(), ImmutableList.<InvoiceItem>of(taxItem), true, null, callContext); Assert.assertEquals(resultTaxInvoiceItems.size(), 1); Assert.assertEquals(resultTaxInvoiceItems.get(0).getAmount().compareTo(taxItemAmount), 0); Assert.assertEquals(resultTaxInvoiceItems.get(0).getBundleId(), bundleId); }
@Test(groups = "slow") public void testPostExternalChargeForBundle() throws Exception { // Post an external charge final BigDecimal externalChargeAmount = BigDecimal.TEN; final UUID bundleId = UUID.randomUUID(); final InvoiceItem externalCharge = new ExternalChargeInvoiceItem(null, accountId, bundleId, UUID.randomUUID().toString(), clock.getUTCToday(), null, externalChargeAmount, accountCurrency, null); final InvoiceItem externalChargeInvoiceItem = invoiceUserApi.insertExternalCharges(accountId, clock.getUTCToday(), ImmutableList.<InvoiceItem>of(externalCharge), true, null, callContext).get(0); Assert.assertEquals(externalChargeInvoiceItem.getBundleId(), bundleId); }
public static InvoiceItem buildInvoiceItem(final Invoice invoice, final InvoiceItemType invoiceItemType, final BigDecimal amount, @Nullable final UUID linkedItemID) { final InvoiceItem invoiceItem = Mockito.mock(InvoiceItem.class); Mockito.when(invoiceItem.getId()).thenReturn(UUID.randomUUID()); Mockito.when(invoiceItem.getInvoiceItemType()).thenReturn(invoiceItemType); // To work-around org.mockito.exceptions.misusing.UnfinishedStubbingException final UUID accountId = invoice.getAccountId(); final UUID invoiceId = invoice.getId(); final Currency currency = invoice.getCurrency(); Mockito.when(invoiceItem.getAccountId()).thenReturn(accountId); Mockito.when(invoiceItem.getInvoiceId()).thenReturn(invoiceId); Mockito.when(invoiceItem.getLinkedItemId()).thenReturn(linkedItemID); Mockito.when(invoiceItem.getBundleId()).thenReturn(UUID.randomUUID()); Mockito.when(invoiceItem.getSubscriptionId()).thenReturn(UUID.randomUUID()); Mockito.when(invoiceItem.getPlanName()).thenReturn(UUID.randomUUID().toString()); Mockito.when(invoiceItem.getPhaseName()).thenReturn(UUID.randomUUID().toString()); Mockito.when(invoiceItem.getUsageName()).thenReturn(UUID.randomUUID().toString()); Mockito.when(invoiceItem.getAmount()).thenReturn(amount); Mockito.when(invoiceItem.getCurrency()).thenReturn(currency); return invoiceItem; }
private void verifyExternalChargeOnNewInvoice(final BigDecimal initialAccountBalance, @Nullable final UUID bundleId, final BigDecimal externalChargeAmount, final InvoiceItem externalChargeInvoiceItem) throws InvoiceApiException { Assert.assertNotNull(externalChargeInvoiceItem.getInvoiceId()); Assert.assertNotEquals(externalChargeInvoiceItem.getInvoiceId(), invoiceId); Assert.assertEquals(externalChargeInvoiceItem.getBundleId(), bundleId); Assert.assertEquals(externalChargeInvoiceItem.getInvoiceItemType(), InvoiceItemType.EXTERNAL_CHARGE); Assert.assertEquals(externalChargeInvoiceItem.getAccountId(), accountId); Assert.assertEquals(externalChargeInvoiceItem.getAmount().compareTo(externalChargeAmount), 0); Assert.assertEquals(externalChargeInvoiceItem.getCurrency(), accountCurrency); Assert.assertNull(externalChargeInvoiceItem.getLinkedItemId()); // Verify the adjusted invoice balance final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(externalChargeInvoiceItem.getInvoiceId(), callContext).getBalance(); Assert.assertEquals(adjustedInvoiceBalance.compareTo(externalChargeAmount), 0); // Verify the adjusted account balance final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, callContext); Assert.assertEquals(adjustedAccountBalance, initialAccountBalance.add(externalChargeAmount)); }
@Test(groups = "fast") public void testBuildTaxItem() throws Exception { // Overrides Assert.assertEquals(invoice1TaxItem.getInvoiceItemType(), InvoiceItemType.TAX); Assert.assertEquals(invoice1TaxItem.getStartDate(), invoice1TaxableItem.getStartDate()); Assert.assertNull(invoice1TaxItem.getEndDate()); Assert.assertEquals(invoice1TaxItem.getAmount().compareTo(BigDecimal.ONE), 0); Assert.assertEquals(invoice1TaxItem.getDescription(), "TestNG tax"); Assert.assertEquals(invoice1TaxItem.getLinkedItemId(), invoice1TaxableItem.getId()); Assert.assertNull(invoice1TaxItem.getRate()); // Copies Assert.assertEquals(invoice1TaxItem.getInvoiceId(), invoice1TaxableItem.getInvoiceId()); Assert.assertEquals(invoice1TaxItem.getAccountId(), invoice1TaxableItem.getAccountId()); Assert.assertEquals(invoice1TaxItem.getCurrency(), invoice1TaxableItem.getCurrency()); Assert.assertEquals(invoice1TaxItem.getBundleId(), invoice1TaxableItem.getBundleId()); Assert.assertEquals(invoice1TaxItem.getSubscriptionId(), invoice1TaxableItem.getSubscriptionId()); Assert.assertEquals(invoice1TaxItem.getPlanName(), invoice1TaxableItem.getPlanName()); Assert.assertEquals(invoice1TaxItem.getPhaseName(), invoice1TaxableItem.getPhaseName()); Assert.assertEquals(invoice1TaxItem.getUsageName(), invoice1TaxableItem.getUsageName()); } }
assertEquals(result.get(0).getCurrency(), Currency.BTC); assertEquals(result.get(0).getAccountId(), accountId); assertEquals(result.get(0).getBundleId(), bundleId); assertEquals(result.get(0).getSubscriptionId(), subscriptionId); assertEquals(result.get(0).getPlanName(), planName); assertEquals(result.get(1).getCurrency(), Currency.BTC); assertEquals(result.get(1).getAccountId(), accountId); assertEquals(result.get(1).getBundleId(), bundleId); assertEquals(result.get(1).getSubscriptionId(), subscriptionId); assertEquals(result.get(1).getPlanName(), planName);
assertEquals(result.get(0).getCurrency(), Currency.BTC); assertEquals(result.get(0).getAccountId(), accountId); assertEquals(result.get(0).getBundleId(), bundleId); assertEquals(result.get(0).getSubscriptionId(), subscriptionId); assertEquals(result.get(0).getPlanName(), planName); assertEquals(result.get(1).getCurrency(), Currency.BTC); assertEquals(result.get(1).getAccountId(), accountId); assertEquals(result.get(1).getBundleId(), bundleId); assertEquals(result.get(1).getSubscriptionId(), subscriptionId); assertEquals(result.get(1).getPlanName(), planName);
Assert.assertEquals(item.getBundleId(), subscription.getBundleId()); Assert.assertEquals(item.getCurrency(), account.getCurrency()); Assert.assertEquals(item.getInvoiceId(), invoice.getId());
public Item(final InvoiceItem item, final LocalDate startDate, final LocalDate endDate, final UUID targetInvoiceId, final ItemAction action) { this.id = item.getId(); this.accountId = item.getAccountId(); this.bundleId = item.getBundleId(); this.subscriptionId = item.getSubscriptionId(); this.targetInvoiceId = targetInvoiceId; this.invoiceId = item.getInvoiceId(); this.productName = item.getProductName(); this.planName = item.getPlanName(); this.phaseName = item.getPhaseName(); this.startDate = startDate; this.endDate = endDate; this.amount = item.getAmount().abs(); this.rate = item.getRate(); this.currency = item.getCurrency(); this.linkedId = item.getLinkedItemId(); this.createdDate = item.getCreatedDate(); this.action = action; this.currentRepairedAmount = BigDecimal.ZERO; this.adjustedAmount = BigDecimal.ZERO; }
assertEquals(item.getCurrency(), Currency.BTC); assertEquals(item.getAccountId(), accountId); assertEquals(item.getBundleId(), bundleId); assertEquals(item.getSubscriptionId(), subscriptionId); assertEquals(item.getPlanName(), planName);
curInvoiceForItem.getId(), accountId, inputItem.getBundleId(), inputItem.getSubscriptionId(), inputItem.getProductName(), curInvoiceForItem.getId(), accountId, inputItem.getBundleId(), inputItem.getDescription(), MoreObjects.firstNonNull(inputItem.getStartDate(), effectiveDate),
public InvoiceItemJson(final InvoiceItem item, final List<InvoiceItem> childItems, @Nullable final List<AuditLog> auditLogs) { this(item.getId(), item.getInvoiceId(), item.getLinkedItemId(), item.getAccountId(), item.getChildAccountId(), item.getBundleId(), item.getSubscriptionId(), item.getProductName(), item.getPlanName(), item.getPhaseName(), item.getUsageName(), item.getPrettyProductName(), item.getPrettyPlanName(), item.getPrettyPhaseName(), item.getPrettyUsageName(), item.getInvoiceItemType(), item.getDescription(), item.getStartDate(), item.getEndDate(), item.getAmount(), item.getRate(), item.getCurrency(), item.getQuantity(), item.getItemDetails(), toInvoiceItemJson(childItems), toAuditLogJson(auditLogs)); }
assertEquals(item.getCurrency(), Currency.BTC); assertEquals(item.getAccountId(), accountId); assertEquals(item.getBundleId(), bundleId); assertEquals(item.getSubscriptionId(), subscriptionId); assertEquals(item.getPlanName(), planName);
@Override public InvoiceItemModelDao apply(final InvoiceItem input) { return new InvoiceItemModelDao(internalCallContext.getCreatedDate(), input.getInvoiceItemType(), migrationInvoice.getId(), accountId, input.getBundleId(), input.getSubscriptionId(), input.getDescription(), input.getProductName(), input.getPlanName(), input.getPhaseName(), input.getUsageName(), input.getStartDate(), input.getEndDate(), input.getAmount(), input.getRate(), input.getCurrency(), input.getLinkedItemId()); } }));
public InvoiceItemModelDao(final InvoiceItem invoiceItem) { this(invoiceItem.getId(), invoiceItem.getCreatedDate(), invoiceItem.getInvoiceItemType(), invoiceItem.getInvoiceId(), invoiceItem.getAccountId(), invoiceItem.getChildAccountId(), invoiceItem.getBundleId(), invoiceItem.getSubscriptionId(), invoiceItem.getDescription(), invoiceItem.getProductName(), invoiceItem.getPlanName(), invoiceItem.getPhaseName(), invoiceItem.getUsageName(), invoiceItem.getStartDate(), invoiceItem.getEndDate(), invoiceItem.getAmount(), invoiceItem.getRate(), invoiceItem.getCurrency(), invoiceItem.getLinkedItemId(), invoiceItem.getQuantity(), invoiceItem.getItemDetails()); }
description, model.getSubscriptionId(), model.getBundleId(), model.getProductName(), model.getPrettyProductName(),
invoiceId, immutableField("accountId", existingItem, existingItem != null ? existingItem.getAccountId() : null, additionalInvoiceItem.getAccountId(), invoicePlugin), immutableField("bundleId", existingItem, existingItem != null ? existingItem.getBundleId() : null, additionalInvoiceItem.getBundleId(), invoicePlugin), immutableField("subscriptionId", existingItem, existingItem != null ? existingItem.getSubscriptionId() : null, additionalInvoiceItem.getSubscriptionId(), invoicePlugin), mutableField("description", existingItem != null ? existingItem.getDescription() : null, additionalInvoiceItem.getDescription(), invoicePlugin),