Search in sources :

Example 31 with Tag

use of org.killbill.billing.util.tag.Tag in project killbill by killbill.

the class TestInvoiceDaoHelper method testPopulateChildrenWithTrackingIds.

@Test(groups = "slow")
public void testPopulateChildrenWithTrackingIds() throws Exception {
    final UUID accountId = account.getId();
    final Invoice inputInvoice = new DefaultInvoice(accountId, clock.getUTCToday(), clock.getUTCToday(), Currency.USD);
    final InvoiceItem invoiceItem = new RecurringInvoiceItem(inputInvoice.getId(), accountId, UUID.randomUUID(), UUID.randomUUID(), "test", "test-plan", "test-phase", null, today, today, BigDecimal.TEN, BigDecimal.TEN, Currency.USD);
    inputInvoice.addInvoiceItem(invoiceItem);
    invoiceUtil.createInvoice(inputInvoice, internalAccountContext);
    final InvoiceTrackingSqlDao trackingSqlDao = dbi.onDemand(InvoiceTrackingSqlDao.class);
    trackingSqlDao.create(ImmutableList.of(new InvoiceTrackingModelDao("12345", inputInvoice.getId(), UUID.randomUUID(), "foo", today)), internalAccountContext);
    final List<Tag> tags = ImmutableList.of();
    final InvoiceModelDao invoice1 = getRawInvoice(inputInvoice.getId(), internalAccountContext);
    populateChildrenByInvoiceId(invoice1, tags);
    final InvoiceModelDao invoice2 = getRawInvoice(inputInvoice.getId(), internalAccountContext);
    populateChildrenByAccountRecordId(invoice2, tags);
    Assert.assertEquals(new DefaultInvoice(invoice1).getTrackingIds().size(), 1);
    Assert.assertEquals(new DefaultInvoice(invoice2).getTrackingIds().size(), 1);
    Assert.assertEquals(invoice1, invoice2);
}
Also used : Invoice(org.killbill.billing.invoice.api.Invoice) DefaultInvoice(org.killbill.billing.invoice.model.DefaultInvoice) RecurringInvoiceItem(org.killbill.billing.invoice.model.RecurringInvoiceItem) InvoiceItem(org.killbill.billing.invoice.api.InvoiceItem) ParentInvoiceItem(org.killbill.billing.invoice.model.ParentInvoiceItem) RecurringInvoiceItem(org.killbill.billing.invoice.model.RecurringInvoiceItem) DefaultControlTag(org.killbill.billing.util.tag.DefaultControlTag) Tag(org.killbill.billing.util.tag.Tag) UUID(java.util.UUID) DefaultInvoice(org.killbill.billing.invoice.model.DefaultInvoice) Test(org.testng.annotations.Test)

Example 32 with Tag

use of org.killbill.billing.util.tag.Tag in project killbill by killbill.

the class JaxRsResourceBase method createTagResponse.

protected Response createTagResponse(@Nullable final UUID accountId, final List<Tag> tags, final AuditMode auditMode, final TenantContext context) throws TagDefinitionApiException {
    Preconditions.checkState(accountId != null || AuditLevel.NONE.equals(auditMode.getLevel()), "No accountId specified but auditLevel is " + auditMode.getLevel());
    final AccountAuditLogsForObjectType tagsAuditLogs = tags.isEmpty() ? null : auditUserApi.getAccountAuditLogs(accountId, ObjectType.TAG, auditMode.getLevel(), context);
    final Map<UUID, TagDefinition> tagDefinitionsCache = new HashMap<UUID, TagDefinition>();
    final Collection<TagJson> result = new LinkedList<TagJson>();
    for (final Tag tag : tags) {
        if (tagDefinitionsCache.get(tag.getTagDefinitionId()) == null) {
            tagDefinitionsCache.put(tag.getTagDefinitionId(), tagUserApi.getTagDefinition(tag.getTagDefinitionId(), context));
        }
        final TagDefinition tagDefinition = tagDefinitionsCache.get(tag.getTagDefinitionId());
        final List<AuditLog> auditLogs = tagsAuditLogs.getAuditLogs(tag.getId());
        result.add(new TagJson(tag, tagDefinition, auditLogs));
    }
    return Response.status(Response.Status.OK).entity(result).build();
}
Also used : TagDefinition(org.killbill.billing.util.tag.TagDefinition) TagJson(org.killbill.billing.jaxrs.json.TagJson) HashMap(java.util.HashMap) AccountAuditLogsForObjectType(org.killbill.billing.util.audit.AccountAuditLogsForObjectType) Tag(org.killbill.billing.util.tag.Tag) UUID(java.util.UUID) LinkedList(java.util.LinkedList) AuditLog(org.killbill.billing.util.audit.AuditLog)

Example 33 with Tag

use of org.killbill.billing.util.tag.Tag in project killbill by killbill.

the class OverdueStateApplicator method isAccountTaggedWith_OVERDUE_ENFORCEMENT_OFF.

// 
// Uses callcontext information to retrieve account matching the Overduable object and check whether we should do any overdue processing
// 
private boolean isAccountTaggedWith_OVERDUE_ENFORCEMENT_OFF(final InternalCallContext context) throws OverdueException {
    try {
        final UUID accountId = accountApi.getByRecordId(context.getAccountRecordId(), context);
        final List<Tag> accountTags = tagApi.getTags(accountId, ObjectType.ACCOUNT, context);
        for (final Tag cur : accountTags) {
            if (cur.getTagDefinitionId().equals(ControlTagType.OVERDUE_ENFORCEMENT_OFF.getId())) {
                return true;
            }
        }
        return false;
    } catch (final AccountApiException e) {
        throw new OverdueException(e);
    }
}
Also used : AccountApiException(org.killbill.billing.account.api.AccountApiException) OverdueException(org.killbill.billing.overdue.config.api.OverdueException) Tag(org.killbill.billing.util.tag.Tag) UUID(java.util.UUID)

Example 34 with Tag

use of org.killbill.billing.util.tag.Tag in project killbill by killbill.

the class TestDefaultTagUserApi method testSaveTagWithAccountRecordId.

@Test(groups = "slow")
public void testSaveTagWithAccountRecordId() throws Exception {
    final UUID accountId = UUID.randomUUID();
    final Long accountRecordId = generateAccountRecordId(accountId);
    final ImmutableAccountData immutableAccountData = Mockito.mock(ImmutableAccountData.class);
    Mockito.when(immutableAccountInternalApi.getImmutableAccountDataByRecordId(Mockito.<Long>eq(accountRecordId), Mockito.<InternalTenantContext>any())).thenReturn(immutableAccountData);
    checkPagination(0);
    eventsListener.pushExpectedEvent(NextEvent.TAG);
    tagUserApi.addTags(accountId, ObjectType.ACCOUNT, ImmutableList.<UUID>of(ControlTagType.AUTO_INVOICING_OFF.getId()), callContext);
    assertListenerStatus();
    checkPagination(1);
    // Verify the tag was saved
    final List<Tag> tags = tagUserApi.getTagsForObject(accountId, ObjectType.ACCOUNT, true, callContext);
    Assert.assertEquals(tags.size(), 1);
    Assert.assertEquals(tags.get(0).getTagDefinitionId(), ControlTagType.AUTO_INVOICING_OFF.getId());
    Assert.assertEquals(tags.get(0).getObjectId(), accountId);
    Assert.assertEquals(tags.get(0).getObjectType(), ObjectType.ACCOUNT);
    // Verify the account_record_id was populated
    dbi.withHandle(new HandleCallback<Void>() {

        @Override
        public Void withHandle(final Handle handle) throws Exception {
            final List<Map<String, Object>> values = handle.select("select account_record_id from tags where object_id = ?", accountId.toString());
            Assert.assertEquals(values.size(), 1);
            Assert.assertEquals(values.get(0).keySet().size(), 1);
            Assert.assertEquals(Long.valueOf(values.get(0).get("account_record_id").toString()), accountRecordId);
            return null;
        }
    });
    eventsListener.pushExpectedEvent(NextEvent.TAG);
    tagUserApi.removeTags(accountId, ObjectType.ACCOUNT, ImmutableList.<UUID>of(ControlTagType.AUTO_INVOICING_OFF.getId()), callContext);
    assertListenerStatus();
    List<Tag> remainingTags = tagUserApi.getTagsForObject(accountId, ObjectType.ACCOUNT, false, callContext);
    Assert.assertEquals(remainingTags.size(), 0);
    checkPagination(0);
    // Add again the tag
    eventsListener.pushExpectedEvent(NextEvent.TAG);
    tagUserApi.addTags(accountId, ObjectType.ACCOUNT, ImmutableList.<UUID>of(ControlTagType.AUTO_INVOICING_OFF.getId()), callContext);
    assertListenerStatus();
    remainingTags = tagUserApi.getTagsForObject(accountId, ObjectType.ACCOUNT, false, callContext);
    Assert.assertEquals(remainingTags.size(), 1);
    checkPagination(1);
    // Delete again
    eventsListener.pushExpectedEvent(NextEvent.TAG);
    tagUserApi.removeTags(accountId, ObjectType.ACCOUNT, ImmutableList.<UUID>of(ControlTagType.AUTO_INVOICING_OFF.getId()), callContext);
    assertListenerStatus();
    remainingTags = tagUserApi.getTagsForObject(accountId, ObjectType.ACCOUNT, false, callContext);
    Assert.assertEquals(remainingTags.size(), 0);
    checkPagination(0);
}
Also used : ImmutableAccountData(org.killbill.billing.account.api.ImmutableAccountData) Handle(org.skife.jdbi.v2.Handle) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) Tag(org.killbill.billing.util.tag.Tag) UUID(java.util.UUID) Test(org.testng.annotations.Test)

Aggregations

Tag (org.killbill.billing.util.tag.Tag)34 UUID (java.util.UUID)27 Invoice (org.killbill.billing.invoice.api.Invoice)13 Test (org.testng.annotations.Test)12 InvoiceApiException (org.killbill.billing.invoice.api.InvoiceApiException)8 InvoiceItem (org.killbill.billing.invoice.api.InvoiceItem)7 DefaultInvoice (org.killbill.billing.invoice.model.DefaultInvoice)7 List (java.util.List)6 ApiOperation (io.swagger.annotations.ApiOperation)5 ApiResponses (io.swagger.annotations.ApiResponses)5 BigDecimal (java.math.BigDecimal)5 HashMap (java.util.HashMap)5 HashSet (java.util.HashSet)5 Path (javax.ws.rs.Path)5 Produces (javax.ws.rs.Produces)5 LocalDate (org.joda.time.LocalDate)5 EntityPersistenceException (org.killbill.billing.entity.EntityPersistenceException)5 ParentInvoiceItem (org.killbill.billing.invoice.model.ParentInvoiceItem)5 RecurringInvoiceItem (org.killbill.billing.invoice.model.RecurringInvoiceItem)5 EntitySqlDaoWrapperFactory (org.killbill.billing.util.entity.dao.EntitySqlDaoWrapperFactory)5