@AllowConcurrentEvents @Subscribe public void handleTagRemoval(final ControlTagDeletionInternalEvent event) { if (event.getTagDefinition().getName().equals(ControlTagType.OVERDUE_ENFORCEMENT_OFF.toString()) && event.getObjectType() == ObjectType.ACCOUNT) { insertBusEventIntoNotificationQueue(event.getObjectId(), event); } else if (event.getTagDefinition().getName().equals(ControlTagType.WRITTEN_OFF.toString()) && event.getObjectType() == ObjectType.INVOICE) { final UUID accountId = nonEntityDao.retrieveIdFromObject(event.getSearchKey1(), ObjectType.ACCOUNT, objectIdCacheController); insertBusEventIntoNotificationQueue(accountId, event); } }
@Override public void run(final ControlTagDeletionInternalEvent event) { if (event.getTagDefinition().getName().equals(ControlTagType.AUTO_INVOICING_OFF.toString()) && event.getObjectType() == ObjectType.ACCOUNT) { final UUID accountId = event.getObjectId(); final InternalCallContext context = internalCallContextFactory.createInternalCallContext(event.getSearchKey2(), event.getSearchKey1(), "InvoiceTagHandler", CallOrigin.INTERNAL, UserType.SYSTEM, event.getUserToken()); processUnpaid_AUTO_INVOICING_OFF_invoices(accountId, context); } } };
@Test(groups = "fast") public void testControlTagDeletion() throws Exception { ControlTagDeletionInternalEvent event = mock(ControlTagDeletionInternalEvent.class); provideCommonBusEventInfo(event); when(event.getBusEventType()).thenReturn(BusInternalEventType.CONTROL_TAG_DELETION); when(event.getTagId()).thenReturn(OBJECT_ID); when(internalCallContextFactory.getAccountId( OBJECT_ID, ObjectType.TAG, tenantContext) ).thenReturn(ACCOUNT_ID); ArgumentCaptor<BusEvent> eventCaptor = ArgumentCaptor.forClass(BusEvent.class); beatrixListener.handleAllInternalKillbillEvents(event); verify(externalBus).post(eventCaptor.capture()); DefaultBusExternalEvent postedEvent = (DefaultBusExternalEvent)eventCaptor.getValue(); assertEquals(postedEvent.getObjectId(), OBJECT_ID); assertEquals(postedEvent.getObjectType(), ObjectType.TAG); assertEquals(postedEvent.getEventType(), ExtBusEventType.TAG_DELETION); assertNull(postedEvent.getMetaData()); assertCommonFieldsWithAccountId(postedEvent); }
@AllowConcurrentEvents @Subscribe public void handleTagRemoval(final ControlTagDeletionInternalEvent event) { if (event.getTagDefinition().getName().equals(ControlTagType.OVERDUE_ENFORCEMENT_OFF.toString()) && event.getObjectType() == ObjectType.ACCOUNT) { insertBusEventIntoNotificationQueue(event.getObjectId(), event); } else if (event.getTagDefinition().getName().equals(ControlTagType.WRITTEN_OFF.toString()) && event.getObjectType() == ObjectType.INVOICE) { final UUID accountId = nonEntityDao.retrieveIdFromObject(event.getSearchKey1(), ObjectType.ACCOUNT, objectIdCacheController); insertBusEventIntoNotificationQueue(accountId, event); } }