@Override public BigDecimal getChargedAmount() { return MoreObjects.firstNonNull(invoice.getChargedAmount(), BigDecimal.ZERO); }
private Invoice createInvoice() { final LocalDate startDate = new LocalDate(new DateTime().minusMonths(1), DateTimeZone.UTC); final LocalDate endDate = new LocalDate(DateTimeZone.UTC); final BigDecimal price1 = new BigDecimal("29.95"); final BigDecimal price2 = new BigDecimal("59.95"); final Invoice dummyInvoice = Mockito.mock(Invoice.class); Mockito.when(dummyInvoice.getInvoiceDate()).thenReturn(startDate); Mockito.when(dummyInvoice.getInvoiceNumber()).thenReturn(42); Mockito.when(dummyInvoice.getCurrency()).thenReturn(Currency.USD); Mockito.when(dummyInvoice.getChargedAmount()).thenReturn(price1.add(price2)); Mockito.when(dummyInvoice.getPaidAmount()).thenReturn(BigDecimal.ZERO); Mockito.when(dummyInvoice.getBalance()).thenReturn(price1.add(price2)); final List<InvoiceItem> items = new ArrayList<InvoiceItem>(); items.add(createInvoiceItem(price1, "Domain 1", startDate, endDate, "ning-plus")); items.add(createInvoiceItem(price2, "Domain 2", startDate, endDate, "ning-pro")); Mockito.when(dummyInvoice.getInvoiceItems()).thenReturn(items); return dummyInvoice; }
@Test(groups = "slow") public void testOriginalAmountCharged() throws Exception { // Post an external charge final BigDecimal externalChargeAmount = BigDecimal.TEN; final InvoiceItem externalCharge = new ExternalChargeInvoiceItem(null, accountId, null, 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); final Invoice newInvoice = invoiceUserApi.getInvoice(externalChargeInvoiceItem.getInvoiceId(), callContext); final BigDecimal newAmountCharged = newInvoice.getChargedAmount(); Assert.assertEquals(newInvoice.getOriginalChargedAmount().compareTo(externalChargeAmount), 0); Assert.assertEquals(newAmountCharged.compareTo(externalChargeAmount), 0); }
private void printDetailInvoice(final Invoice invoice) { log.info("-------------------- START DETAIL ----------------------"); log.info("Invoice " + invoice.getId() + ": BALANCE = " + invoice.getBalance() + ", CBA = " + invoice.getCreditedAmount() + ", CHARGE_AMOUNT = " + invoice.getChargedAmount() + ", ADJ_AMOUNT = " + invoice.getCreditedAmount()); for (final InvoiceItem cur : invoice.getInvoiceItems()) { log.info(cur.toString()); } log.info("-------------------- END DETAIL ----------------------"); } }
@Test(groups = "slow") public void testWithPriceOverride() throws Exception { // Create a per-tenant catalog with one plan final SimplePlanDescriptor desc1 = new DefaultSimplePlanDescriptor("bar-monthly", "Bar", ProductCategory.BASE, account.getCurrency(), BigDecimal.TEN, BillingPeriod.MONTHLY, 0, TimeUnit.UNLIMITED, ImmutableList.<String>of()); catalogUserApi.addSimplePlan(desc1, init, testCallContext); StaticCatalog catalog = catalogUserApi.getCurrentCatalog("dummy", testCallContext); assertEquals(catalog.getCurrentPlans().size(), 1); final Plan plan = catalog.getCurrentPlans().iterator().next(); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("bar-monthly", null); final List<PlanPhasePriceOverride> overrides = new ArrayList<PlanPhasePriceOverride>(); overrides.add(new DefaultPlanPhasePriceOverride(plan.getFinalPhase().getName(), account.getCurrency(), null, BigDecimal.ONE, null)); final Entitlement baseEntitlement = createEntitlement(spec, overrides, true); List<Invoice> invoices = invoiceUserApi.getInvoicesByAccount(account.getId(), false, false, testCallContext); assertEquals(invoices.size(), 1); assertEquals(invoices.get(0).getChargedAmount().compareTo(BigDecimal.ONE), 0); busHandler.pushExpectedEvents(NextEvent.INVOICE, NextEvent.INVOICE_PAYMENT, NextEvent.PAYMENT); clock.addMonths(1); assertListenerStatus(); invoices = invoiceUserApi.getInvoicesByAccount(account.getId(), false, false, testCallContext); assertEquals(invoices.size(), 2); assertEquals(invoices.get(1).getChargedAmount().compareTo(BigDecimal.ONE), 0); // Change plan to original (non overridden plan) busHandler.pushExpectedEvents(NextEvent.CHANGE, NextEvent.INVOICE, NextEvent.INVOICE_PAYMENT, NextEvent.PAYMENT); baseEntitlement.changePlan( new DefaultEntitlementSpecifier(spec), ImmutableList.<PluginProperty>of(), testCallContext); assertListenerStatus(); invoices = invoiceUserApi.getInvoicesByAccount(account.getId(), false, false, testCallContext); assertEquals(invoices.size(), 3); assertEquals(invoices.get(2).getChargedAmount().compareTo(new BigDecimal("9.00")), 0); // 10 (recurring) - 1 (repair) }
assertEquals(invoices.get(0).getChargedAmount().compareTo(BigDecimal.TEN), 0); assertEquals(invoices.get(0).getInvoiceItems().size(), 1);
assertEquals(invoices.size(), 2); for (Invoice cur : invoices) { if (cur.getChargedAmount().compareTo(BigDecimal.ZERO) == 0) { continue; assertEquals(cur.getBalance(), cur.getChargedAmount()); assertEquals(invoices.size(), 2); for (Invoice cur : invoices) { if (cur.getChargedAmount().compareTo(BigDecimal.ZERO) == 0) { continue; assertTrue(cur.getPaidAmount().compareTo(cur.getChargedAmount()) == 0);
public InvoiceJson(final Invoice input, final String bundleKeys, final List<CreditJson> credits, final List<AuditLog> auditLogs) { this(input.getChargedAmount(), input.getCurrency(), input.getStatus(), input.getCreditedAmount(), input.getRefundedAmount(), input.getId(), input.getInvoiceDate(), input.getTargetDate(), String.valueOf(input.getInvoiceNumber()), input.getBalance(), input.getAccountId(), bundleKeys, credits, null, input.isParentInvoice(), input.getParentInvoiceId(), input.getParentAccountId(), toAuditLogJson(auditLogs)); }
assertTrue(invoice1.getBalance().compareTo(new BigDecimal("249.95")) == 0); assertTrue(invoice1.getPaidAmount().compareTo(BigDecimal.ZERO) == 0); assertTrue(invoice1.getChargedAmount().compareTo(new BigDecimal("249.95")) == 0); assertEquals(invoice1.getPayments().size(), 1); assertEquals(invoice1.getPayments().get(0).getAmount().compareTo(BigDecimal.ZERO), 0); assertTrue(invoice2.getBalance().compareTo(BigDecimal.ZERO) == 0); assertTrue(invoice2.getPaidAmount().compareTo(new BigDecimal("249.95")) == 0); assertTrue(invoice2.getChargedAmount().compareTo(new BigDecimal("249.95")) == 0); assertEquals(invoice2.getPayments().size(), 1); assertTrue(invoice2.getPayments().get(0).isSuccess());
this.amount = input.getChargedAmount(); this.currency = input.getCurrency(); this.status = input.getStatus();
new LocalDate(2012, 3, 31), InvoiceItemType.RECURRING, new BigDecimal("233.82"))); assertTrue(invoice.getChargedAmount().compareTo(new BigDecimal("233.82")) == 0); assertTrue(invoice.getBalance().compareTo(BigDecimal.ZERO) == 0);
assertEquals(invoices.size(), 2); for (Invoice cur : invoices) { if (cur.getChargedAmount().compareTo(BigDecimal.ZERO) == 0) { continue; assertEquals(cur.getBalance(), cur.getChargedAmount()); assertEquals(invoices.size(), 2); for (Invoice cur : invoices) { if (cur.getChargedAmount().compareTo(BigDecimal.ZERO) == 0) { continue; assertEquals(cur.getBalance(), cur.getChargedAmount()); if (cur.getChargedAmount().compareTo(BigDecimal.ZERO) == 0) { continue; assertTrue(cur.getPaidAmount().compareTo(cur.getChargedAmount()) == 0);
assertTrue(invoice1.getBalance().compareTo(new BigDecimal("249.95")) == 0); assertTrue(invoice1.getPaidAmount().compareTo(BigDecimal.ZERO) == 0); assertTrue(invoice1.getChargedAmount().compareTo(new BigDecimal("249.95")) == 0); assertEquals(invoice1.getPayments().size(), 1); assertEquals(invoice1.getPayments().get(0).getAmount().compareTo(new BigDecimal("249.95")), 0);
assertEquals(invoices.size(), 2); for (Invoice cur : invoices) { if (cur.getChargedAmount().compareTo(BigDecimal.ZERO) == 0) { continue; assertEquals(cur.getBalance(), cur.getChargedAmount()); assertEquals(invoices.size(), 2); for (Invoice cur : invoices) { if (cur.getChargedAmount().compareTo(BigDecimal.ZERO) == 0) { continue; assertEquals(cur.getBalance(), cur.getChargedAmount()); assertEquals(invoices.size(), 2); for (Invoice cur : invoices) { if (cur.getChargedAmount().compareTo(BigDecimal.ZERO) == 0) { continue; assertEquals(cur.getBalance(), cur.getChargedAmount()); if (cur.getChargedAmount().compareTo(BigDecimal.ZERO) == 0) { continue; assertTrue(cur.getPaidAmount().compareTo(cur.getChargedAmount()) == 0);
assertEquals(parentInvoice.getStatus(), InvoiceStatus.COMMITTED); assertTrue(parentInvoice.isParentInvoice()); assertEquals(parentInvoice.getChargedAmount().compareTo(BigDecimal.valueOf(19.95)), 0); assertEquals(parentInvoice.getCreditedAmount().compareTo(BigDecimal.ZERO), 0);
assertEquals(parentInvoice.getStatus(), InvoiceStatus.COMMITTED); assertTrue(parentInvoice.isParentInvoice()); assertEquals(parentInvoice.getChargedAmount().compareTo(BigDecimal.valueOf(29.95)), 0);
assertTrue(payment.getPurchasedAmount().compareTo(invoices.get(2).getChargedAmount()) == 0);
assertEquals(parentInvoice.getStatus(), InvoiceStatus.COMMITTED); assertTrue(parentInvoice.isParentInvoice()); assertEquals(parentInvoice.getChargedAmount().compareTo(BigDecimal.valueOf(249.95)), 0); assertEquals(childInvoice.getChargedAmount().compareTo(BigDecimal.valueOf(249.95)), 0); assertEquals(childInvoice.getInvoiceItems().get(0).getInvoiceItemType(), InvoiceItemType.RECURRING); assertEquals(parentInvoice.getStatus(), InvoiceStatus.COMMITTED); assertTrue(parentInvoice.isParentInvoice()); assertEquals(parentInvoice.getChargedAmount().compareTo(BigDecimal.valueOf(249.95)), 0);
assertEquals(parentInvoice.getStatus(), InvoiceStatus.COMMITTED); assertTrue(parentInvoice.isParentInvoice()); assertEquals(parentInvoice.getChargedAmount().compareTo(BigDecimal.valueOf(799.90)), 0); assertEquals(parentInvoice.getCreditedAmount().compareTo(BigDecimal.ZERO), 0);
assertTrue(parentInvoice.isParentInvoice()); assertEquals(parentInvoice.getBalance().compareTo(BigDecimal.ZERO), 0); assertEquals(parentInvoice.getChargedAmount().compareTo(BigDecimal.valueOf(249.95)), 0);