@Test(groups = "fast") public void testInvoiceCreationEvent() throws Exception { final InvoiceCreationInternalEvent e = new DefaultInvoiceCreationEvent(UUID.randomUUID(), UUID.randomUUID(), new BigDecimal(12.0), Currency.USD, 1L, 2L, null); final String json = mapper.writeValueAsString(e); final Object obj = mapper.readValue(json, DefaultInvoiceCreationEvent.class); Assert.assertEquals(obj, e); }
events.add(new DefaultInvoiceCreationEvent(invoice.getId(), invoice.getAccountId(), invoice.getBalance(), invoice.getCurrency(), context.getAccountRecordId(), context.getTenantRecordId(), context.getUserToken()));
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); }
@Override public void createInvoice(final InvoiceModelDao invoice, final List<InvoiceItemModelDao> invoiceItems, final List<InvoicePaymentModelDao> invoicePayments, final boolean isRealInvoice, final Map<UUID, DateTime> callbackDateTimePerSubscriptions, final InternalCallContext context) { synchronized (monitor) { invoices.put(invoice.getId(), invoice); for (final InvoiceItemModelDao invoiceItemModelDao : invoiceItems) { items.put(invoiceItemModelDao.getId(), invoiceItemModelDao); } for (final InvoicePaymentModelDao paymentModelDao : invoicePayments) { payments.put(paymentModelDao.getId(), paymentModelDao); } accountRecordIds.put(invoice.getAccountId(), context.getAccountRecordId()); } try { eventBus.post(new DefaultInvoiceCreationEvent(invoice.getId(), invoice.getAccountId(), InvoiceModelDaoHelper.getBalance(invoice), invoice.getCurrency(), context.getAccountRecordId(), context.getTenantRecordId(), context.getUserToken())); } catch (PersistentBus.EventBusException ex) { throw new RuntimeException(ex); } }