killbill-aplcache
Changes
util/src/main/resources/org/killbill/billing/util/migration/V20171011170256__tag_definition_object_types.sql 2(+2 -0)
Details
diff --git a/account/src/test/java/org/killbill/billing/account/dao/TestAccountDao.java b/account/src/test/java/org/killbill/billing/account/dao/TestAccountDao.java
index e8ea8f0..2bc7bd3 100644
--- a/account/src/test/java/org/killbill/billing/account/dao/TestAccountDao.java
+++ b/account/src/test/java/org/killbill/billing/account/dao/TestAccountDao.java
@@ -184,7 +184,7 @@ public class TestAccountDao extends AccountTestSuiteWithEmbeddedDB {
@Test(groups = "slow", description = "Test Account DAO: tags")
public void testTags() throws TagApiException, TagDefinitionApiException {
final AccountModelDao account = createTestAccount();
- final TagDefinitionModelDao tagDefinition = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 4), UUID.randomUUID().toString(), internalCallContext);
+ final TagDefinitionModelDao tagDefinition = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 4), UUID.randomUUID().toString(), ObjectType.ACCOUNT.name(), internalCallContext);
final Tag tag = new DescriptiveTag(tagDefinition.getId(), ObjectType.ACCOUNT, account.getId(), internalCallContext.getCreatedDate());
tagDao.create(new TagModelDao(tag), internalCallContext);
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestTagApi.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestTagApi.java
index 0654926..11dbba0 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestTagApi.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestTagApi.java
@@ -35,6 +35,9 @@ import org.killbill.billing.util.tag.ControlTagType;
import org.killbill.billing.util.tag.Tag;
import org.killbill.billing.util.tag.TagDefinition;
+import com.google.common.collect.ImmutableSet;
+
+import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
public class TestTagApi extends TestIntegrationBase {
@@ -95,9 +98,14 @@ public class TestTagApi extends TestIntegrationBase {
// Create a new tag definition
//
busHandler.pushExpectedEvents(NextEvent.TAG_DEFINITION);
- final TagDefinition tagDefinition = tagUserApi.createTagDefinition("foo", "foo desc", callContext);
+ final TagDefinition tagDefinition = tagUserApi.createTagDefinition("foo", "foo desc", ImmutableSet.<ObjectType>of(ObjectType.ACCOUNT, ObjectType.INVOICE), callContext);
assertListenerStatus();
+ final TagDefinition tagDefinition2 = tagUserApi.getTagDefinition(tagDefinition.getId(), callContext);
+ assertEquals(tagDefinition2.getApplicableObjectTypes().size(), 2);
+ assertEquals(tagDefinition2.getApplicableObjectTypes().get(0), ObjectType.ACCOUNT);
+ assertEquals(tagDefinition2.getApplicableObjectTypes().get(1), ObjectType.INVOICE);
+
//
// Add 2 Tags on the invoice (1 invoice tag and 1 user tag)
//
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/TagDefinitionJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/TagDefinitionJson.java
index 453883e..779931c 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/TagDefinitionJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/TagDefinitionJson.java
@@ -17,6 +17,7 @@
package org.killbill.billing.jaxrs.json;
import java.util.List;
+import java.util.Set;
import javax.annotation.Nullable;
@@ -29,6 +30,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Function;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
import io.swagger.annotations.ApiModelProperty;
public class TagDefinitionJson extends JsonBase {
@@ -40,14 +42,14 @@ public class TagDefinitionJson extends JsonBase {
private final String name;
@ApiModelProperty(required = true)
private final String description;
- private final List<String> applicableObjectTypes;
+ private final Set<String> applicableObjectTypes;
@JsonCreator
public TagDefinitionJson(@JsonProperty("id") final String id,
@JsonProperty("isControlTag") final Boolean isControlTag,
@JsonProperty("name") final String name,
@JsonProperty("description") @Nullable final String description,
- @JsonProperty("applicableObjectTypes") @Nullable final List<String> applicableObjectTypes,
+ @JsonProperty("applicableObjectTypes") @Nullable final Set<String> applicableObjectTypes,
@JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
super(auditLogs);
this.id = id;
@@ -62,7 +64,7 @@ public class TagDefinitionJson extends JsonBase {
tagDefinition.isControlTag(),
tagDefinition.getName(),
tagDefinition.getDescription(),
- ImmutableList.<String>copyOf(Collections2.transform(tagDefinition.getApplicableObjectTypes(), new Function<ObjectType, String>() {
+ ImmutableSet.<String>copyOf(Collections2.transform(tagDefinition.getApplicableObjectTypes(), new Function<ObjectType, String>() {
@Override
public String apply(@Nullable final ObjectType input) {
if (input == null) {
@@ -92,7 +94,7 @@ public class TagDefinitionJson extends JsonBase {
return description;
}
- public List<String> getApplicableObjectTypes() {
+ public Set<String> getApplicableObjectTypes() {
return applicableObjectTypes;
}
@@ -156,4 +158,13 @@ public class TagDefinitionJson extends JsonBase {
result = 31 * result + (applicableObjectTypes != null ? applicableObjectTypes.hashCode() : 0);
return result;
}
+
+ public static Set<ObjectType> toObjectType(final Set<String> applicableObjectTypes) {
+ return ImmutableSet.copyOf(Collections2.transform(applicableObjectTypes, new Function<String, ObjectType>() {
+ @Override
+ public ObjectType apply(final String input) {
+ return ObjectType.valueOf(input);
+ }
+ }));
+ }
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java
index d5cfaa0..efa5c24 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java
@@ -52,6 +52,7 @@ import org.killbill.billing.util.tag.TagDefinition;
import org.killbill.clock.Clock;
import org.killbill.commons.metrics.TimedResource;
+import com.google.common.base.Preconditions;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import io.swagger.annotations.Api;
@@ -129,8 +130,11 @@ public class TagDefinitionResource extends JaxRsResourceBase {
verifyNonNullOrEmpty(json, "TagDefinitionJson body should be specified");
verifyNonNullOrEmpty(json.getName(), "TagDefinition name needs to be set",
json.getDescription(), "TagDefinition description needs to be set");
+ Preconditions.checkArgument(json.getApplicableObjectTypes() != null &&
+ !json.getApplicableObjectTypes().isEmpty(), "Applicable object types must be set");
- final TagDefinition createdTagDef = tagUserApi.createTagDefinition(json.getName(), json.getDescription(), context.createCallContextNoAccountId(createdBy, reason, comment, request));
+
+ final TagDefinition createdTagDef = tagUserApi.createTagDefinition(json.getName(), json.getDescription(), TagDefinitionJson.toObjectType(json.getApplicableObjectTypes()), context.createCallContextNoAccountId(createdBy, reason, comment, request));
return uriBuilder.buildResponse(uriInfo, TagDefinitionResource.class, "getTagDefinition", createdTagDef.getId(), request);
}
diff --git a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestTagDefinitionJson.java b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestTagDefinitionJson.java
index 93721d6..2a6da5e 100644
--- a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestTagDefinitionJson.java
+++ b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestTagDefinitionJson.java
@@ -24,6 +24,7 @@ import org.testng.annotations.Test;
import org.killbill.billing.jaxrs.JaxrsTestSuiteNoDB;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
public class TestTagDefinitionJson extends JaxrsTestSuiteNoDB {
@@ -33,7 +34,7 @@ public class TestTagDefinitionJson extends JaxrsTestSuiteNoDB {
final Boolean isControlTag = true;
final String name = UUID.randomUUID().toString();
final String description = UUID.randomUUID().toString();
- final ImmutableList<String> applicableObjectTypes = ImmutableList.<String>of(UUID.randomUUID().toString());
+ final ImmutableSet<String> applicableObjectTypes = ImmutableSet.<String>of(UUID.randomUUID().toString());
final TagDefinitionJson tagDefinitionJson = new TagDefinitionJson(id, isControlTag, name, description, applicableObjectTypes, null);
Assert.assertEquals(tagDefinitionJson.getId(), id);
Assert.assertEquals(tagDefinitionJson.isControlTag(), isControlTag);
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java
index 69c17a0..d7beb54 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java
@@ -26,6 +26,7 @@ import java.util.UUID;
import javax.annotation.Nullable;
+import org.killbill.billing.ObjectType;
import org.killbill.billing.client.KillBillClientException;
import org.killbill.billing.client.RequestOptions;
import org.killbill.billing.client.model.Account;
@@ -696,7 +697,7 @@ public class TestPayment extends TestJaxrsBase {
public void testGetTagsForPaymentTransaction() throws Exception {
UUID tagDefinitionId = UUID.randomUUID();
String tagDefinitionName = "payment-transaction";
- TagDefinition tagDefinition = new TagDefinition(tagDefinitionId, false, tagDefinitionName, "description", null);
+ TagDefinition tagDefinition = new TagDefinition(tagDefinitionId, false, tagDefinitionName, "description", ImmutableList.<ObjectType>of(ObjectType.TRANSACTION));
final TagDefinition createdTagDefinition = killBillClient.createTagDefinition(tagDefinition, requestOptions);
final Account account = createAccountWithDefaultPaymentMethod();
@@ -719,7 +720,7 @@ public class TestPayment extends TestJaxrsBase {
public void testCreateTagForPaymentTransaction() throws Exception {
UUID tagDefinitionId = UUID.randomUUID();
String tagDefinitionName = "payment-transaction";
- TagDefinition tagDefinition = new TagDefinition(tagDefinitionId, false, tagDefinitionName, "description", null);
+ TagDefinition tagDefinition = new TagDefinition(tagDefinitionId, false, tagDefinitionName, "description", ImmutableList.<ObjectType>of(ObjectType.TRANSACTION));
final TagDefinition createdTagDefinition = killBillClient.createTagDefinition(tagDefinition, requestOptions);
final Account account = createAccountWithDefaultPaymentMethod();
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestTag.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestTag.java
index 5ba7ba8..ae69442 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestTag.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestTag.java
@@ -49,9 +49,9 @@ public class TestTag extends TestJaxrsBase {
@Test(groups = "slow", description = "Cannot add badly formatted TagDefinition")
public void testTagErrorHandling() throws Exception {
- final TagDefinition[] tagDefinitions = {new TagDefinition(null, false, null, null, null),
- new TagDefinition(null, false, "something", null, null),
- new TagDefinition(null, false, null, "something", null)};
+ final TagDefinition[] tagDefinitions = {new TagDefinition(null, false, null, null, ImmutableList.<ObjectType>of(ObjectType.ACCOUNT)),
+ new TagDefinition(null, false, "something", null, ImmutableList.<ObjectType>of(ObjectType.INVOICE)),
+ new TagDefinition(null, false, null, "something", ImmutableList.<ObjectType>of(ObjectType.TRANSACTION))};
for (final TagDefinition tagDefinition : tagDefinitions) {
try {
@@ -66,7 +66,7 @@ public class TestTag extends TestJaxrsBase {
@Test(groups = "slow", description = "Can create a TagDefinition")
public void testTagDefinitionOk() throws Exception {
- final TagDefinition input = new TagDefinition(null, false, "blue", "relaxing color", ImmutableList.<ObjectType>of());
+ final TagDefinition input = new TagDefinition(null, false, "blue", "relaxing color", ImmutableList.<ObjectType>of(ObjectType.TRANSACTION));
final TagDefinition objFromJson = killBillClient.createTagDefinition(input, requestOptions);
assertNotNull(objFromJson);
@@ -80,16 +80,16 @@ public class TestTag extends TestJaxrsBase {
final int sizeSystemTag = objFromJson.isEmpty() ? 0 : objFromJson.size();
- final TagDefinition inputBlue = new TagDefinition(null, false, "blue", "relaxing color", ImmutableList.<ObjectType>of());
+ final TagDefinition inputBlue = new TagDefinition(null, false, "blue", "relaxing color", ImmutableList.<ObjectType>of(ObjectType.TRANSACTION));
killBillClient.createTagDefinition(inputBlue, requestOptions);
- final TagDefinition inputRed = new TagDefinition(null, false, "red", "hot color", ImmutableList.<ObjectType>of());
+ final TagDefinition inputRed = new TagDefinition(null, false, "red", "hot color", ImmutableList.<ObjectType>of(ObjectType.TRANSACTION));
killBillClient.createTagDefinition(inputRed, requestOptions);
- final TagDefinition inputYellow = new TagDefinition(null, false, "yellow", "vibrant color", ImmutableList.<ObjectType>of());
+ final TagDefinition inputYellow = new TagDefinition(null, false, "yellow", "vibrant color", ImmutableList.<ObjectType>of(ObjectType.TRANSACTION));
killBillClient.createTagDefinition(inputYellow, requestOptions);
- final TagDefinition inputGreen = new TagDefinition(null, false, "green", "super relaxing color", ImmutableList.<ObjectType>of());
+ final TagDefinition inputGreen = new TagDefinition(null, false, "green", "super relaxing color", ImmutableList.<ObjectType>of(ObjectType.TRANSACTION));
killBillClient.createTagDefinition(inputGreen, requestOptions);
objFromJson = killBillClient.getTagDefinitions(requestOptions);
@@ -119,7 +119,7 @@ public class TestTag extends TestJaxrsBase {
killBillClient.createAccountTag(account.getAccountId(), controlTagType.getId(), requestOptions);
}
- final TagDefinition bundleTagDefInput = new TagDefinition(null, false, "bundletagdef", "nothing special", ImmutableList.<ObjectType>of());
+ final TagDefinition bundleTagDefInput = new TagDefinition(null, false, "bundletagdef", "nothing special", ImmutableList.<ObjectType>of(ObjectType.TRANSACTION));
final TagDefinition bundleTagDef = killBillClient.createTagDefinition(bundleTagDefInput, requestOptions);
killBillClient.createBundleTag(subscriptionJson.getBundleId(), bundleTagDef.getId(), requestOptions);
diff --git a/util/src/main/java/org/killbill/billing/util/tag/api/DefaultTagUserApi.java b/util/src/main/java/org/killbill/billing/util/tag/api/DefaultTagUserApi.java
index 55314d1..eb81b50 100644
--- a/util/src/main/java/org/killbill/billing/util/tag/api/DefaultTagUserApi.java
+++ b/util/src/main/java/org/killbill/billing/util/tag/api/DefaultTagUserApi.java
@@ -18,6 +18,7 @@ package org.killbill.billing.util.tag.api;
import java.util.Collection;
import java.util.List;
+import java.util.Set;
import java.util.UUID;
import org.killbill.billing.ErrorCode;
@@ -45,6 +46,7 @@ import org.killbill.billing.util.tag.dao.TagModelDao;
import org.killbill.billing.util.tag.dao.TagModelDaoHelper;
import com.google.common.base.Function;
+import com.google.common.base.Joiner;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
import com.google.inject.Inject;
@@ -53,6 +55,8 @@ import static org.killbill.billing.util.entity.dao.DefaultPaginationHelper.getEn
public class DefaultTagUserApi implements TagUserApi {
+ private static final Joiner JOINER = Joiner.on(",");
+
private static final Function<TagModelDao, Tag> TAG_MODEL_DAO_TAG_FUNCTION = new Function<TagModelDao, Tag>() {
@Override
public Tag apply(final TagModelDao input) {
@@ -85,11 +89,11 @@ public class DefaultTagUserApi implements TagUserApi {
}
@Override
- public TagDefinition createTagDefinition(final String definitionName, final String description, final CallContext context) throws TagDefinitionApiException {
+ public TagDefinition createTagDefinition(final String definitionName, final String description, final Set<ObjectType> applicableObjectTypes, final CallContext context) throws TagDefinitionApiException {
if (definitionName.matches(".*[A-Z].*")) {
throw new TagDefinitionApiException(ErrorCode.TAG_DEFINITION_HAS_UPPERCASE, definitionName);
}
- final TagDefinitionModelDao tagDefinitionModelDao = tagDefinitionDao.create(definitionName, description, internalCallContextFactory.createInternalCallContextWithoutAccountRecordId(context));
+ final TagDefinitionModelDao tagDefinitionModelDao = tagDefinitionDao.create(definitionName, description, JOINER.join(applicableObjectTypes), internalCallContextFactory.createInternalCallContextWithoutAccountRecordId(context));
return new DefaultTagDefinition(tagDefinitionModelDao, TagModelDaoHelper.isControlTag(tagDefinitionModelDao.getName()));
}
diff --git a/util/src/main/java/org/killbill/billing/util/tag/dao/DefaultTagDefinitionDao.java b/util/src/main/java/org/killbill/billing/util/tag/dao/DefaultTagDefinitionDao.java
index 90d2d75..dfa1331 100644
--- a/util/src/main/java/org/killbill/billing/util/tag/dao/DefaultTagDefinitionDao.java
+++ b/util/src/main/java/org/killbill/billing/util/tag/dao/DefaultTagDefinitionDao.java
@@ -22,6 +22,7 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import java.util.Set;
import java.util.UUID;
import org.killbill.billing.BillingExceptionBase;
@@ -59,6 +60,7 @@ public class DefaultTagDefinitionDao extends EntityDaoBase<TagDefinitionModelDao
private final TagEventBuilder tagEventBuilder;
private final PersistentBus bus;
+
@Inject
public DefaultTagDefinitionDao(final IDBI dbi, final TagEventBuilder tagEventBuilder, final PersistentBus bus, final Clock clock,
final CacheControllerDispatcher controllerDispatcher, final NonEntityDao nonEntityDao, final InternalCallContextFactory internalCallContextFactory) {
@@ -134,7 +136,7 @@ public class DefaultTagDefinitionDao extends EntityDaoBase<TagDefinitionModelDao
}
@Override
- public TagDefinitionModelDao create(final String definitionName, final String description,
+ public TagDefinitionModelDao create(final String definitionName, final String description, final String tagDefinitionObjectTypes,
final InternalCallContext context) throws TagDefinitionApiException {
// Make sure a invoice tag with this name don't already exist
if (TagModelDaoHelper.isControlTag(definitionName)) {
@@ -154,7 +156,7 @@ public class DefaultTagDefinitionDao extends EntityDaoBase<TagDefinitionModelDao
}
// Create it
- final TagDefinitionModelDao tagDefinition = new TagDefinitionModelDao(context.getCreatedDate(), definitionName, description);
+ final TagDefinitionModelDao tagDefinition = new TagDefinitionModelDao(context.getCreatedDate(), definitionName, description, tagDefinitionObjectTypes);
createAndRefresh(tagDefinitionSqlDao, tagDefinition, context);
// Post an event to the bus
diff --git a/util/src/main/java/org/killbill/billing/util/tag/dao/SystemTags.java b/util/src/main/java/org/killbill/billing/util/tag/dao/SystemTags.java
index 5879654..61ae17e 100644
--- a/util/src/main/java/org/killbill/billing/util/tag/dao/SystemTags.java
+++ b/util/src/main/java/org/killbill/billing/util/tag/dao/SystemTags.java
@@ -24,6 +24,7 @@ import java.util.UUID;
import javax.annotation.Nullable;
+import org.killbill.billing.ObjectType;
import org.killbill.billing.util.tag.ControlTagType;
import com.google.common.base.Predicate;
@@ -37,7 +38,7 @@ public class SystemTags {
public static final String PARK_TAG_DEFINITION_NAME = "__PARK__";
// Note! TagSqlDao.sql.stg needs to be kept in sync (see userAndSystemTagDefinitions)
- private static final List<TagDefinitionModelDao> SYSTEM_DEFINED_TAG_DEFINITIONS = ImmutableList.<TagDefinitionModelDao>of(new TagDefinitionModelDao(PARK_TAG_DEFINITION_ID, null, null, PARK_TAG_DEFINITION_NAME, "Accounts with invalid invoicing state"));
+ private static final List<TagDefinitionModelDao> SYSTEM_DEFINED_TAG_DEFINITIONS = ImmutableList.<TagDefinitionModelDao>of(new TagDefinitionModelDao(PARK_TAG_DEFINITION_ID, null, null, PARK_TAG_DEFINITION_NAME, "Accounts with invalid invoicing state", ObjectType.ACCOUNT.name()));
public static Collection<TagDefinitionModelDao> get(final boolean includeSystemTags) {
final Collection<TagDefinitionModelDao> all = includeSystemTags ?
diff --git a/util/src/main/java/org/killbill/billing/util/tag/dao/TagDefinitionDao.java b/util/src/main/java/org/killbill/billing/util/tag/dao/TagDefinitionDao.java
index 84f3bed..e409c89 100644
--- a/util/src/main/java/org/killbill/billing/util/tag/dao/TagDefinitionDao.java
+++ b/util/src/main/java/org/killbill/billing/util/tag/dao/TagDefinitionDao.java
@@ -34,7 +34,7 @@ public interface TagDefinitionDao extends EntityDao<TagDefinitionModelDao, TagDe
public List<TagDefinitionModelDao> getByIds(Collection<UUID> definitionIds, InternalTenantContext context);
- public TagDefinitionModelDao create(String definitionName, String description, InternalCallContext context) throws TagDefinitionApiException;
+ public TagDefinitionModelDao create(String definitionName, String description, String tagDefinitionObjectTypes, InternalCallContext context) throws TagDefinitionApiException;
public void deleteById(UUID definitionId, InternalCallContext context) throws TagDefinitionApiException;
}
diff --git a/util/src/main/java/org/killbill/billing/util/tag/dao/TagDefinitionModelDao.java b/util/src/main/java/org/killbill/billing/util/tag/dao/TagDefinitionModelDao.java
index 337afbc..d2f5fdd 100644
--- a/util/src/main/java/org/killbill/billing/util/tag/dao/TagDefinitionModelDao.java
+++ b/util/src/main/java/org/killbill/billing/util/tag/dao/TagDefinitionModelDao.java
@@ -27,32 +27,38 @@ import org.killbill.billing.util.entity.dao.EntityModelDaoBase;
import org.killbill.billing.util.tag.ControlTagType;
import org.killbill.billing.util.tag.TagDefinition;
+import com.google.common.base.Joiner;
+
public class TagDefinitionModelDao extends EntityModelDaoBase implements EntityModelDao<TagDefinition> {
+ private static final Joiner JOINER = Joiner.on(",");
private String name;
+ private String applicableObjectTypes;
private String description;
private Boolean isActive;
public TagDefinitionModelDao() { /* For the DAO mapper */ }
- public TagDefinitionModelDao(final UUID id, final DateTime createdDate, final DateTime updatedDate, final String name, final String description) {
+ public TagDefinitionModelDao(final UUID id, final DateTime createdDate, final DateTime updatedDate, final String name, final String description, String applicableObjectTypes) {
super(id, createdDate, updatedDate);
this.name = name;
this.description = description;
this.isActive = true;
+ this.applicableObjectTypes = applicableObjectTypes;
}
public TagDefinitionModelDao(final ControlTagType tag) {
- this(tag.getId(), null, null, tag.name(), tag.getDescription());
+ this(tag.getId(), null, null, tag.name(), tag.getDescription(), JOINER.join(tag.getApplicableObjectTypes()));
}
- public TagDefinitionModelDao(final DateTime createdDate, final String name, final String description) {
- this(UUIDs.randomUUID(), createdDate, createdDate, name, description);
+ public TagDefinitionModelDao(final DateTime createdDate, final String name, final String description, String applicableObjectTypes) {
+ this(UUID.randomUUID(), createdDate, createdDate, name, description, applicableObjectTypes);
}
+
public TagDefinitionModelDao(final TagDefinition tagDefinition) {
this(tagDefinition.getId(), tagDefinition.getCreatedDate(), tagDefinition.getUpdatedDate(), tagDefinition.getName(),
- tagDefinition.getDescription());
+ tagDefinition.getDescription(), JOINER.join(tagDefinition.getApplicableObjectTypes()));
}
public String getName() {
@@ -67,6 +73,14 @@ public class TagDefinitionModelDao extends EntityModelDaoBase implements EntityM
return isActive;
}
+ public String getApplicableObjectTypes() {
+ return applicableObjectTypes;
+ }
+
+ public void setApplicableObjectTypes(final String applicableObjectTypes) {
+ this.applicableObjectTypes = applicableObjectTypes;
+ }
+
public void setName(final String name) {
this.name = name;
}
@@ -85,6 +99,7 @@ public class TagDefinitionModelDao extends EntityModelDaoBase implements EntityM
sb.append("TagDefinitionModelDao");
sb.append("{name='").append(name).append('\'');
sb.append(", description='").append(description).append('\'');
+ sb.append(", applicableObjectTypes='").append(applicableObjectTypes).append('\'');
sb.append(", isActive=").append(isActive);
sb.append('}');
return sb.toString();
@@ -110,6 +125,9 @@ public class TagDefinitionModelDao extends EntityModelDaoBase implements EntityM
if (isActive != null ? !isActive.equals(that.isActive) : that.isActive != null) {
return false;
}
+ if (applicableObjectTypes != null ? !applicableObjectTypes.equals(that.applicableObjectTypes) : that.applicableObjectTypes != null) {
+ return false;
+ }
if (name != null ? !name.equals(that.name) : that.name != null) {
return false;
}
@@ -123,6 +141,7 @@ public class TagDefinitionModelDao extends EntityModelDaoBase implements EntityM
result = 31 * result + (name != null ? name.hashCode() : 0);
result = 31 * result + (description != null ? description.hashCode() : 0);
result = 31 * result + (isActive != null ? isActive.hashCode() : 0);
+ result = 31 * result + (applicableObjectTypes != null ? applicableObjectTypes.hashCode() : 0);
return result;
}
diff --git a/util/src/main/java/org/killbill/billing/util/tag/DefaultTagDefinition.java b/util/src/main/java/org/killbill/billing/util/tag/DefaultTagDefinition.java
index 05ca6b4..77db66f 100644
--- a/util/src/main/java/org/killbill/billing/util/tag/DefaultTagDefinition.java
+++ b/util/src/main/java/org/killbill/billing/util/tag/DefaultTagDefinition.java
@@ -19,6 +19,8 @@ package org.killbill.billing.util.tag;
import java.util.List;
import java.util.UUID;
+import javax.annotation.Nullable;
+
import org.killbill.billing.ObjectType;
import org.killbill.billing.entity.EntityBase;
import org.killbill.billing.util.UUIDs;
@@ -26,32 +28,41 @@ import org.killbill.billing.util.tag.dao.TagDefinitionModelDao;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Function;
+import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
public class DefaultTagDefinition extends EntityBase implements TagDefinition {
+ private static final Splitter SPLITTER = Splitter.on(',').omitEmptyStrings().trimResults();
+
private final String name;
private final String description;
private final Boolean controlTag;
private final List<ObjectType> applicableObjectTypes;
+
public DefaultTagDefinition(final TagDefinitionModelDao tagDefinitionModelDao, final boolean isControlTag) {
- this(tagDefinitionModelDao.getId(), tagDefinitionModelDao.getName(), tagDefinitionModelDao.getDescription(), isControlTag);
+ this(tagDefinitionModelDao.getId(), tagDefinitionModelDao.getName(), tagDefinitionModelDao.getDescription(), isControlTag, toObjectTypes(tagDefinitionModelDao.getApplicableObjectTypes()));
}
+
+ public DefaultTagDefinition(final ControlTagType controlTag) {
+ this(controlTag.getId(), controlTag.toString(), controlTag.getDescription(), true, controlTag.getApplicableObjectTypes());
+ }
+
+ // Test only
public DefaultTagDefinition(final String name, final String description, final Boolean isControlTag) {
this(UUIDs.randomUUID(), name, description, isControlTag);
}
+ // Test only
public DefaultTagDefinition(final UUID id, final String name, final String description, final Boolean isControlTag) {
this(id, name, description, isControlTag, getApplicableObjectTypes(id, isControlTag));
}
- public DefaultTagDefinition(final ControlTagType controlTag) {
- this(controlTag.getId(), controlTag.toString(), controlTag.getDescription(), true, controlTag.getApplicableObjectTypes());
- }
-
-
@JsonCreator
public DefaultTagDefinition(@JsonProperty("id") final UUID id,
@JsonProperty("name") final String name,
@@ -144,4 +155,14 @@ public class DefaultTagDefinition extends EntityBase implements TagDefinition {
}
throw new IllegalStateException(String.format("ControlTag id %s does not seem to exist", id));
}
+
+ private static List<ObjectType> toObjectTypes(final String input) {
+ return ImmutableList.copyOf(Iterables.transform(SPLITTER.splitToList(input), new Function<String, ObjectType>() {
+ @Override
+ public ObjectType apply(final String input) {
+ return ObjectType.valueOf(input);
+ }
+ }));
+ }
+
}
diff --git a/util/src/main/resources/org/killbill/billing/util/ddl.sql b/util/src/main/resources/org/killbill/billing/util/ddl.sql
index 552f8dd..5523655 100644
--- a/util/src/main/resources/org/killbill/billing/util/ddl.sql
+++ b/util/src/main/resources/org/killbill/billing/util/ddl.sql
@@ -49,6 +49,7 @@ CREATE TABLE tag_definitions (
record_id serial unique,
id varchar(36) NOT NULL,
name varchar(20) NOT NULL,
+ applicable_object_types varchar(500),
description varchar(200) NOT NULL,
is_active boolean default true,
created_by varchar(50) NOT NULL,
@@ -67,6 +68,7 @@ CREATE TABLE tag_definition_history (
id varchar(36) NOT NULL,
target_record_id bigint /*! unsigned */ not null,
name varchar(30) NOT NULL,
+ applicable_object_types varchar(500),
description varchar(200),
is_active boolean default true,
change_type varchar(6) NOT NULL,
diff --git a/util/src/main/resources/org/killbill/billing/util/migration/V20171011170256__tag_definition_object_types.sql b/util/src/main/resources/org/killbill/billing/util/migration/V20171011170256__tag_definition_object_types.sql
new file mode 100644
index 0000000..09b02bd
--- /dev/null
+++ b/util/src/main/resources/org/killbill/billing/util/migration/V20171011170256__tag_definition_object_types.sql
@@ -0,0 +1,2 @@
+alter table tag_definitions add column applicable_object_types varchar(500) after name;
+alter table tag_definition_history add column applicable_object_types varchar(500) after name;
diff --git a/util/src/main/resources/org/killbill/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg b/util/src/main/resources/org/killbill/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg
index cc1f546..3b16041 100644
--- a/util/src/main/resources/org/killbill/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg
+++ b/util/src/main/resources/org/killbill/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg
@@ -6,6 +6,7 @@ andCheckSoftDeletionWithComma(prefix) ::= "and <prefix>is_active"
tableFields(prefix) ::= <<
<prefix>name
+, <prefix>applicable_object_types
, <prefix>description
, <prefix>is_active
, <prefix>created_by
@@ -16,6 +17,7 @@ tableFields(prefix) ::= <<
tableValues() ::= <<
:name
+, :applicableObjectTypes
, :description
, :isActive
, :createdBy
diff --git a/util/src/test/java/org/killbill/billing/util/audit/dao/TestDefaultAuditDao.java b/util/src/test/java/org/killbill/billing/util/audit/dao/TestDefaultAuditDao.java
index 4249b18..9251e98 100644
--- a/util/src/test/java/org/killbill/billing/util/audit/dao/TestDefaultAuditDao.java
+++ b/util/src/test/java/org/killbill/billing/util/audit/dao/TestDefaultAuditDao.java
@@ -96,6 +96,7 @@ public class TestDefaultAuditDao extends UtilTestSuiteWithEmbeddedDB {
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
final TagDefinitionModelDao tagDefinition = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 5),
UUID.randomUUID().toString().substring(0, 5),
+ ObjectType.ACCOUNT.name(),
internalCallContext);
assertListenerStatus();
diff --git a/util/src/test/java/org/killbill/billing/util/dao/TestPagination.java b/util/src/test/java/org/killbill/billing/util/dao/TestPagination.java
index 107585e..72dcfc7 100644
--- a/util/src/test/java/org/killbill/billing/util/dao/TestPagination.java
+++ b/util/src/test/java/org/killbill/billing/util/dao/TestPagination.java
@@ -18,6 +18,7 @@ package org.killbill.billing.util.dao;
import java.util.List;
+import org.killbill.billing.ObjectType;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -38,7 +39,7 @@ public class TestPagination extends UtilTestSuiteWithEmbeddedDB {
final String definitionName = "name-" + i;
final String description = "description-" + i;
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- tagDefinitionDao.create(definitionName, description, internalCallContext);
+ tagDefinitionDao.create(definitionName, description, ObjectType.ACCOUNT.name(), internalCallContext);
assertListenerStatus();
}
diff --git a/util/src/test/java/org/killbill/billing/util/tag/api/TestDefaultTagUserApiWithMockDao.java b/util/src/test/java/org/killbill/billing/util/tag/api/TestDefaultTagUserApiWithMockDao.java
index fd7b6a1..7dba212 100644
--- a/util/src/test/java/org/killbill/billing/util/tag/api/TestDefaultTagUserApiWithMockDao.java
+++ b/util/src/test/java/org/killbill/billing/util/tag/api/TestDefaultTagUserApiWithMockDao.java
@@ -17,6 +17,7 @@
package org.killbill.billing.util.tag.api;
+import org.killbill.billing.ObjectType;
import org.killbill.billing.callcontext.DefaultCallContext;
import org.killbill.billing.callcontext.InternalCallContext;
import org.killbill.billing.util.UtilTestSuiteNoDB;
@@ -31,6 +32,8 @@ import org.mockito.Mockito;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+import com.google.common.collect.ImmutableSet;
+
import static org.testng.Assert.assertEquals;
public class TestDefaultTagUserApiWithMockDao extends UtilTestSuiteNoDB {
@@ -50,17 +53,17 @@ public class TestDefaultTagUserApiWithMockDao extends UtilTestSuiteNoDB {
@Test(groups = "fast", expectedExceptions = TagDefinitionApiException.class, expectedExceptionsMessageRegExp = "The tag definition name must be in lowercase .*")
public void testCreateTagDefinitionWithMiddleUpperCase() throws Exception {
- tagUserApi.createTagDefinition("inVaLid", "description", context);
+ tagUserApi.createTagDefinition("inVaLid", "description", ImmutableSet.<ObjectType>of(ObjectType.ACCOUNT), context);
}
@Test(groups = "fast", expectedExceptions = TagDefinitionApiException.class, expectedExceptionsMessageRegExp = "The tag definition name must be in lowercase .*")
public void testCreateTagDefinitionWithFrontUpperCase() throws Exception {
- tagUserApi.createTagDefinition("Invalid", "description", context);
+ tagUserApi.createTagDefinition("Invalid", "description", ImmutableSet.<ObjectType>of(ObjectType.ACCOUNT), context);
}
@Test(groups = "fast", expectedExceptions = TagDefinitionApiException.class, expectedExceptionsMessageRegExp = "The tag definition name must be in lowercase .*")
public void testCreateTagDefinitionWithBackUpperCase() throws Exception {
- tagUserApi.createTagDefinition("invaliD", "description", context);
+ tagUserApi.createTagDefinition("invaliD", "description", ImmutableSet.<ObjectType>of(ObjectType.ACCOUNT), context);
}
@Test(groups = "fast")
@@ -68,8 +71,9 @@ public class TestDefaultTagUserApiWithMockDao extends UtilTestSuiteNoDB {
final String tagDefinitionName = "lowercase";
final TagDefinitionModelDao tagDefinitionModelDao = new TagDefinitionModelDao();
tagDefinitionModelDao.setName(tagDefinitionName);
- Mockito.when(tagDefinitionDao.create(Mockito.anyString(), Mockito.anyString(), Mockito.any(InternalCallContext.class))).thenReturn(tagDefinitionModelDao);
- final TagDefinition tagDefinition = tagUserApi.createTagDefinition(tagDefinitionName, "description", context);
+ tagDefinitionModelDao.setApplicableObjectTypes(ObjectType.ACCOUNT.name());
+ Mockito.when(tagDefinitionDao.create(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any(InternalCallContext.class))).thenReturn(tagDefinitionModelDao);
+ final TagDefinition tagDefinition = tagUserApi.createTagDefinition(tagDefinitionName, "description", ImmutableSet.<ObjectType>of(ObjectType.ACCOUNT), context);
assertEquals(tagDefinitionName, tagDefinition.getName());
}
}
diff --git a/util/src/test/java/org/killbill/billing/util/tag/dao/MockTagDefinitionDao.java b/util/src/test/java/org/killbill/billing/util/tag/dao/MockTagDefinitionDao.java
index f382b4f..8ae3ab6 100644
--- a/util/src/test/java/org/killbill/billing/util/tag/dao/MockTagDefinitionDao.java
+++ b/util/src/test/java/org/killbill/billing/util/tag/dao/MockTagDefinitionDao.java
@@ -29,6 +29,8 @@ import org.killbill.billing.util.api.TagDefinitionApiException;
import org.killbill.billing.util.entity.dao.MockEntityDaoBase;
import org.killbill.billing.util.tag.TagDefinition;
+import com.google.common.collect.ImmutableList;
+
public class MockTagDefinitionDao extends MockEntityDaoBase<TagDefinitionModelDao, TagDefinition, TagDefinitionApiException> implements TagDefinitionDao {
private final Map<String, TagDefinitionModelDao> tags = new ConcurrentHashMap<String, TagDefinitionModelDao>();
@@ -44,9 +46,9 @@ public class MockTagDefinitionDao extends MockEntityDaoBase<TagDefinitionModelDa
}
@Override
- public TagDefinitionModelDao create(final String definitionName, final String description,
+ public TagDefinitionModelDao create(final String definitionName, final String description, final String tagDefinitionObjectTypes,
final InternalCallContext context) throws TagDefinitionApiException {
- final TagDefinitionModelDao tag = new TagDefinitionModelDao(null, definitionName, description);
+ final TagDefinitionModelDao tag = new TagDefinitionModelDao(null, definitionName, description, tagDefinitionObjectTypes);
tags.put(tag.getId().toString(), tag);
return tag;
diff --git a/util/src/test/java/org/killbill/billing/util/tag/dao/TestDefaultTagDao.java b/util/src/test/java/org/killbill/billing/util/tag/dao/TestDefaultTagDao.java
index d648fcd..e3f019c 100644
--- a/util/src/test/java/org/killbill/billing/util/tag/dao/TestDefaultTagDao.java
+++ b/util/src/test/java/org/killbill/billing/util/tag/dao/TestDefaultTagDao.java
@@ -46,17 +46,17 @@ public class TestDefaultTagDao extends UtilTestSuiteWithEmbeddedDB {
assertEquals(result.size(), 0);
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- final TagDefinitionModelDao defYo = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 5), "defintion yo", internalCallContext);
+ final TagDefinitionModelDao defYo = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 5), "defintion yo", ObjectType.ACCOUNT.name(), internalCallContext);
assertListenerStatus();
uuids.add(defYo.getId());
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- final TagDefinitionModelDao defBah = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 5), "defintion bah", internalCallContext);
+ final TagDefinitionModelDao defBah = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 5), "defintion bah", ObjectType.ACCOUNT.name(), internalCallContext);
assertListenerStatus();
uuids.add(defBah.getId());
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- final TagDefinitionModelDao defZoo = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 5), "defintion zoo", internalCallContext);
+ final TagDefinitionModelDao defZoo = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 5), "defintion zoo", ObjectType.ACCOUNT.name(), internalCallContext);
assertListenerStatus();
uuids.add(defZoo.getId());
@@ -76,7 +76,7 @@ public class TestDefaultTagDao extends UtilTestSuiteWithEmbeddedDB {
public void testGetById() throws TagDefinitionApiException {
// User Tag
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- final TagDefinitionModelDao defYo = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 5), "defintion yo", internalCallContext);
+ final TagDefinitionModelDao defYo = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 5), "defintion yo", ObjectType.ACCOUNT.name(),internalCallContext);
assertListenerStatus();
final TagDefinitionModelDao resDefYo = tagDefinitionDao.getById(defYo.getId(), internalCallContext);
@@ -84,7 +84,7 @@ public class TestDefaultTagDao extends UtilTestSuiteWithEmbeddedDB {
// Control Tag
try {
- tagDefinitionDao.create(ControlTagType.AUTO_INVOICING_OFF.name(), ControlTagType.AUTO_INVOICING_OFF.name(), internalCallContext);
+ tagDefinitionDao.create(ControlTagType.AUTO_INVOICING_OFF.name(), ControlTagType.AUTO_INVOICING_OFF.name(), ObjectType.ACCOUNT.name(),internalCallContext);
Assert.fail("Should not be able to create a invoice tag");
} catch (TagDefinitionApiException ignore) {
}
@@ -98,7 +98,7 @@ public class TestDefaultTagDao extends UtilTestSuiteWithEmbeddedDB {
public void testGetByName() throws TagDefinitionApiException {
// User Tag
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- final TagDefinitionModelDao defYo = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 5), "defintion yo", internalCallContext);
+ final TagDefinitionModelDao defYo = tagDefinitionDao.create(UUID.randomUUID().toString().substring(0, 5), "defintion yo", ObjectType.ACCOUNT.name(),internalCallContext);
assertListenerStatus();
final TagDefinitionModelDao resDefYo = tagDefinitionDao.getByName(defYo.getName(), internalCallContext);
@@ -106,7 +106,7 @@ public class TestDefaultTagDao extends UtilTestSuiteWithEmbeddedDB {
// Control Tag
try {
- tagDefinitionDao.create(ControlTagType.AUTO_PAY_OFF.name(), ControlTagType.AUTO_INVOICING_OFF.name(), internalCallContext);
+ tagDefinitionDao.create(ControlTagType.AUTO_PAY_OFF.name(), ControlTagType.AUTO_INVOICING_OFF.name(), ObjectType.ACCOUNT.name(), internalCallContext);
Assert.fail("Should not be able to create a invoice tag");
} catch (TagDefinitionApiException ignore) {
}
@@ -125,7 +125,7 @@ public class TestDefaultTagDao extends UtilTestSuiteWithEmbeddedDB {
// Create a tag definition
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- final TagDefinitionModelDao createdTagDefinition = tagDefinitionDao.create(definitionName, description, internalCallContext);
+ final TagDefinitionModelDao createdTagDefinition = tagDefinitionDao.create(definitionName, description, ObjectType.ACCOUNT.name(), internalCallContext);
Assert.assertEquals(createdTagDefinition.getName(), definitionName);
Assert.assertEquals(createdTagDefinition.getDescription(), description);
assertListenerStatus();
diff --git a/util/src/test/java/org/killbill/billing/util/tag/dao/TestDefaultTagDefinitionDao.java b/util/src/test/java/org/killbill/billing/util/tag/dao/TestDefaultTagDefinitionDao.java
index a24ba3e..187300e 100644
--- a/util/src/test/java/org/killbill/billing/util/tag/dao/TestDefaultTagDefinitionDao.java
+++ b/util/src/test/java/org/killbill/billing/util/tag/dao/TestDefaultTagDefinitionDao.java
@@ -16,10 +16,12 @@
package org.killbill.billing.util.tag.dao;
+import java.io.ObjectOutput;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
+import org.killbill.billing.ObjectType;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
@@ -42,7 +44,7 @@ public class TestDefaultTagDefinitionDao extends UtilTestSuiteWithEmbeddedDB {
// Make sure we can create a tag definition
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- final TagDefinitionModelDao createdTagDefinition = tagDefinitionDao.create(definitionName, description, internalCallContext);
+ final TagDefinitionModelDao createdTagDefinition = tagDefinitionDao.create(definitionName, description, ObjectType.ACCOUNT.name(), internalCallContext);
Assert.assertEquals(createdTagDefinition.getName(), definitionName);
Assert.assertEquals(createdTagDefinition.getDescription(), description);
assertListenerStatus();
diff --git a/util/src/test/java/org/killbill/billing/util/tag/TestTagStore.java b/util/src/test/java/org/killbill/billing/util/tag/TestTagStore.java
index 8de750a..d9bd318 100644
--- a/util/src/test/java/org/killbill/billing/util/tag/TestTagStore.java
+++ b/util/src/test/java/org/killbill/billing/util/tag/TestTagStore.java
@@ -41,11 +41,11 @@ public class TestTagStore extends UtilTestSuiteWithEmbeddedDB {
final UUID accountId = UUID.randomUUID();
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- tagDefinitionDao.create("tag1", "First tag", internalCallContext);
+ tagDefinitionDao.create("tag1", "First tag", ObjectType.ACCOUNT.name(), internalCallContext);
assertListenerStatus();
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- final TagDefinitionModelDao testTagDefinition = tagDefinitionDao.create("testTagDefinition", "Second tag", internalCallContext);
+ final TagDefinitionModelDao testTagDefinition = tagDefinitionDao.create("testTagDefinition", "Second tag", ObjectType.ACCOUNT.name(), internalCallContext);
assertListenerStatus();
final Tag tag = new DescriptiveTag(testTagDefinition.getId(), ObjectType.ACCOUNT, accountId, clock.getUTCNow());
@@ -76,14 +76,14 @@ public class TestTagStore extends UtilTestSuiteWithEmbeddedDB {
@Test(groups = "slow", expectedExceptions = TagDefinitionApiException.class)
public void testTagDefinitionCreationWithControlTagName() throws TagDefinitionApiException {
final String definitionName = ControlTagType.AUTO_PAY_OFF.toString();
- tagDefinitionDao.create(definitionName, "This should break", internalCallContext);
+ tagDefinitionDao.create(definitionName, "This should break", ObjectType.ACCOUNT.name(), internalCallContext);
}
@Test(groups = "slow")
public void testTagDefinitionDeletionForUnusedDefinition() throws TagDefinitionApiException {
final String definitionName = "TestTag1234";
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- tagDefinitionDao.create(definitionName, "Some test tag", internalCallContext);
+ tagDefinitionDao.create(definitionName, "Some test tag", ObjectType.ACCOUNT.name(), internalCallContext);
assertListenerStatus();
TagDefinitionModelDao tagDefinition = tagDefinitionDao.getByName(definitionName, internalCallContext);
@@ -101,7 +101,7 @@ public class TestTagStore extends UtilTestSuiteWithEmbeddedDB {
public void testTagDefinitionDeletionForDefinitionInUse() throws TagDefinitionApiException, TagApiException {
final String definitionName = "TestTag12345";
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- tagDefinitionDao.create(definitionName, "Some test tag", internalCallContext);
+ tagDefinitionDao.create(definitionName, "Some test tag", ObjectType.ACCOUNT.name(), internalCallContext);
assertListenerStatus();
final TagDefinitionModelDao tagDefinition = tagDefinitionDao.getByName(definitionName, internalCallContext);
@@ -120,7 +120,7 @@ public class TestTagStore extends UtilTestSuiteWithEmbeddedDB {
public void testDeleteTagBeforeDeleteTagDefinition() throws TagDefinitionApiException, TagApiException {
final String definitionName = "TestTag1234567";
eventsListener.pushExpectedEvent(NextEvent.TAG_DEFINITION);
- tagDefinitionDao.create(definitionName, "Some test tag", internalCallContext);
+ tagDefinitionDao.create(definitionName, "Some test tag", ObjectType.ACCOUNT.name(), internalCallContext);
assertListenerStatus();
final TagDefinitionModelDao tagDefinition = tagDefinitionDao.getByName(definitionName, internalCallContext);