Details
diff --git a/api/src/main/java/com/ning/billing/entitlement/api/timeline/BundleTimeline.java b/api/src/main/java/com/ning/billing/entitlement/api/timeline/BundleTimeline.java
index ff8823f..150af02 100644
--- a/api/src/main/java/com/ning/billing/entitlement/api/timeline/BundleTimeline.java
+++ b/api/src/main/java/com/ning/billing/entitlement/api/timeline/BundleTimeline.java
@@ -13,6 +13,7 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
+
package com.ning.billing.entitlement.api.timeline;
import java.util.List;
diff --git a/api/src/main/java/com/ning/billing/util/api/AuditUserApi.java b/api/src/main/java/com/ning/billing/util/api/AuditUserApi.java
index c4e6bb2..6bf4220 100644
--- a/api/src/main/java/com/ning/billing/util/api/AuditUserApi.java
+++ b/api/src/main/java/com/ning/billing/util/api/AuditUserApi.java
@@ -19,7 +19,7 @@ package com.ning.billing.util.api;
import java.util.List;
import java.util.UUID;
-import com.ning.billing.entitlement.api.user.SubscriptionBundle;
+import com.ning.billing.entitlement.api.timeline.BundleTimeline;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoicePayment;
import com.ning.billing.payment.api.Payment;
@@ -41,7 +41,7 @@ public interface AuditUserApi {
* @param auditLevel audit level (verbosity)
* @return all audit logs for these refunds
*/
- public AuditLogsForBundles getAuditLogsForBundles(final List<SubscriptionBundle> bundles, final AuditLevel auditLevel);
+ public AuditLogsForBundles getAuditLogsForBundles(final List<BundleTimeline> bundles, final AuditLevel auditLevel);
/**
* Fetch all audit logs for invoice payments.
diff --git a/api/src/main/java/com/ning/billing/util/audit/AuditLogsForBundles.java b/api/src/main/java/com/ning/billing/util/audit/AuditLogsForBundles.java
index 0eecc75..4ae73cb 100644
--- a/api/src/main/java/com/ning/billing/util/audit/AuditLogsForBundles.java
+++ b/api/src/main/java/com/ning/billing/util/audit/AuditLogsForBundles.java
@@ -28,6 +28,11 @@ public interface AuditLogsForBundles {
public Map<UUID, List<AuditLog>> getBundlesAuditLogs();
/**
+ * @return mapping between subscription id and associated audit logs
+ */
+ public Map<UUID, List<AuditLog>> getSubscriptionsAuditLogs();
+
+ /**
* @return mapping between subscription event id and associated audit logs
*/
public Map<UUID, List<AuditLog>> getSubscriptionEventsAuditLogs();
diff --git a/api/src/main/java/com/ning/billing/util/dao/ObjectType.java b/api/src/main/java/com/ning/billing/util/dao/ObjectType.java
index 7fcf838..1eb1537 100644
--- a/api/src/main/java/com/ning/billing/util/dao/ObjectType.java
+++ b/api/src/main/java/com/ning/billing/util/dao/ObjectType.java
@@ -25,6 +25,7 @@ public enum ObjectType {
INVOICE_ITEM("invoice item"),
INVOICE_PAYMENT("invoice payment"),
SUBSCRIPTION("subscription"),
+ SUBSCRIPTION_EVENT("subscription event"),
PAYMENT_METHOD("payment method"),
REFUND("refund"),
TAG_DEFINITION("tag definition");
diff --git a/util/src/main/java/com/ning/billing/util/audit/api/DefaultAuditUserApi.java b/util/src/main/java/com/ning/billing/util/audit/api/DefaultAuditUserApi.java
index 25b7a8a..7ced15e 100644
--- a/util/src/main/java/com/ning/billing/util/audit/api/DefaultAuditUserApi.java
+++ b/util/src/main/java/com/ning/billing/util/audit/api/DefaultAuditUserApi.java
@@ -23,7 +23,9 @@ import java.util.UUID;
import javax.inject.Inject;
-import com.ning.billing.entitlement.api.user.SubscriptionBundle;
+import com.ning.billing.entitlement.api.timeline.BundleTimeline;
+import com.ning.billing.entitlement.api.timeline.SubscriptionTimeline;
+import com.ning.billing.entitlement.api.timeline.SubscriptionTimeline.ExistingEvent;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoicePayment;
@@ -58,13 +60,21 @@ public class DefaultAuditUserApi implements AuditUserApi {
}
@Override
- public AuditLogsForBundles getAuditLogsForBundles(final List<SubscriptionBundle> bundles, final AuditLevel auditLevel) {
+ public AuditLogsForBundles getAuditLogsForBundles(final List<BundleTimeline> bundles, final AuditLevel auditLevel) {
final Map<UUID, List<AuditLog>> bundlesAuditLogs = new HashMap<UUID, List<AuditLog>>();
- for (final SubscriptionBundle bundle : bundles) {
- bundlesAuditLogs.put(bundle.getId(), getAuditLogs(bundle.getId(), ObjectType.BUNDLE, auditLevel));
+ final Map<UUID, List<AuditLog>> subscriptionsAuditLogs = new HashMap<UUID, List<AuditLog>>();
+ final Map<UUID, List<AuditLog>> subscriptionEventsAuditLogs = new HashMap<UUID, List<AuditLog>>();
+ for (final BundleTimeline bundle : bundles) {
+ bundlesAuditLogs.put(bundle.getBundleId(), getAuditLogs(bundle.getBundleId(), ObjectType.BUNDLE, auditLevel));
+ for (final SubscriptionTimeline subscriptionTimeline : bundle.getSubscriptions()) {
+ subscriptionsAuditLogs.put(subscriptionTimeline.getId(), getAuditLogs(subscriptionTimeline.getId(), ObjectType.SUBSCRIPTION, auditLevel));
+ for (final ExistingEvent event : subscriptionTimeline.getExistingEvents()) {
+ subscriptionEventsAuditLogs.put(event.getEventId(), getAuditLogs(event.getEventId(), ObjectType.SUBSCRIPTION_EVENT, auditLevel));
+ }
+ }
}
- return new DefaultAuditLogsForBundles(bundlesAuditLogs);
+ return new DefaultAuditLogsForBundles(bundlesAuditLogs, subscriptionsAuditLogs, subscriptionEventsAuditLogs);
}
@Override
diff --git a/util/src/main/java/com/ning/billing/util/audit/DefaultAuditLogsForBundles.java b/util/src/main/java/com/ning/billing/util/audit/DefaultAuditLogsForBundles.java
index 4e35a2d..c47e44f 100644
--- a/util/src/main/java/com/ning/billing/util/audit/DefaultAuditLogsForBundles.java
+++ b/util/src/main/java/com/ning/billing/util/audit/DefaultAuditLogsForBundles.java
@@ -23,9 +23,15 @@ import java.util.UUID;
public class DefaultAuditLogsForBundles implements AuditLogsForBundles {
private final Map<UUID, List<AuditLog>> bundlesAuditLogs;
+ private final Map<UUID, List<AuditLog>> subscriptionsAuditLogs;
+ private final Map<UUID, List<AuditLog>> subscriptionEventsAuditLogs;
- public DefaultAuditLogsForBundles(final Map<UUID, List<AuditLog>> bundlesAuditLogs) {
+ public DefaultAuditLogsForBundles(final Map<UUID, List<AuditLog>> bundlesAuditLogs,
+ final Map<UUID, List<AuditLog>> subscriptionsAuditLogs,
+ final Map<UUID, List<AuditLog>> subscriptionEventsAuditLogs) {
this.bundlesAuditLogs = bundlesAuditLogs;
+ this.subscriptionsAuditLogs = subscriptionsAuditLogs;
+ this.subscriptionEventsAuditLogs = subscriptionEventsAuditLogs;
}
@Override
@@ -34,9 +40,13 @@ public class DefaultAuditLogsForBundles implements AuditLogsForBundles {
}
@Override
+ public Map<UUID, List<AuditLog>> getSubscriptionsAuditLogs() {
+ return subscriptionsAuditLogs;
+ }
+
+ @Override
public Map<UUID, List<AuditLog>> getSubscriptionEventsAuditLogs() {
- // TODO
- return null;
+ return subscriptionEventsAuditLogs;
}
@Override
@@ -44,6 +54,8 @@ public class DefaultAuditLogsForBundles implements AuditLogsForBundles {
final StringBuilder sb = new StringBuilder();
sb.append("DefaultAuditLogsForBundles");
sb.append("{bundlesAuditLogs=").append(bundlesAuditLogs);
+ sb.append(", subscriptionsAuditLogs=").append(subscriptionsAuditLogs);
+ sb.append(", subscriptionEventsAuditLogs=").append(subscriptionEventsAuditLogs);
sb.append('}');
return sb.toString();
}
@@ -62,12 +74,21 @@ public class DefaultAuditLogsForBundles implements AuditLogsForBundles {
if (bundlesAuditLogs != null ? !bundlesAuditLogs.equals(that.bundlesAuditLogs) : that.bundlesAuditLogs != null) {
return false;
}
+ if (subscriptionEventsAuditLogs != null ? !subscriptionEventsAuditLogs.equals(that.subscriptionEventsAuditLogs) : that.subscriptionEventsAuditLogs != null) {
+ return false;
+ }
+ if (subscriptionsAuditLogs != null ? !subscriptionsAuditLogs.equals(that.subscriptionsAuditLogs) : that.subscriptionsAuditLogs != null) {
+ return false;
+ }
return true;
}
@Override
public int hashCode() {
- return bundlesAuditLogs != null ? bundlesAuditLogs.hashCode() : 0;
+ int result = bundlesAuditLogs != null ? bundlesAuditLogs.hashCode() : 0;
+ result = 31 * result + (subscriptionsAuditLogs != null ? subscriptionsAuditLogs.hashCode() : 0);
+ result = 31 * result + (subscriptionEventsAuditLogs != null ? subscriptionEventsAuditLogs.hashCode() : 0);
+ return result;
}
}
diff --git a/util/src/main/java/com/ning/billing/util/dao/TableName.java b/util/src/main/java/com/ning/billing/util/dao/TableName.java
index 7aec216..5bbf68c 100644
--- a/util/src/main/java/com/ning/billing/util/dao/TableName.java
+++ b/util/src/main/java/com/ning/billing/util/dao/TableName.java
@@ -36,7 +36,7 @@ public enum TableName {
PAYMENT_METHOD_HISTORY("payment_method_history"),
PAYMENT_METHODS("payment_methods", ObjectType.PAYMENT_METHOD, PAYMENT_METHOD_HISTORY),
SUBSCRIPTIONS("subscriptions", ObjectType.SUBSCRIPTION),
- SUBSCRIPTION_EVENTS("subscription_events"),
+ SUBSCRIPTION_EVENTS("subscription_events", ObjectType.SUBSCRIPTION_EVENT),
REFUND_HISTORY("refund_history"),
REFUNDS("refunds", ObjectType.REFUND, REFUND_HISTORY),
TAG_DEFINITIONS("tag_definitions", ObjectType.TAG_DEFINITION),
diff --git a/util/src/test/java/com/ning/billing/util/audit/api/TestDefaultAuditUserApi.java b/util/src/test/java/com/ning/billing/util/audit/api/TestDefaultAuditUserApi.java
index debece4..f4a79d1 100644
--- a/util/src/test/java/com/ning/billing/util/audit/api/TestDefaultAuditUserApi.java
+++ b/util/src/test/java/com/ning/billing/util/audit/api/TestDefaultAuditUserApi.java
@@ -26,7 +26,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
-import com.ning.billing.entitlement.api.user.SubscriptionBundle;
+import com.ning.billing.entitlement.api.timeline.BundleTimeline;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoicePayment;
@@ -71,9 +71,12 @@ public class TestDefaultAuditUserApi extends AuditLogsTestBase {
@Test(groups = "fast")
public void testForBundles() throws Exception {
- final List<SubscriptionBundle> bundles = createMocks(SubscriptionBundle.class);
-
- // TODO check SubscriptionEventsAuditLogs
+ final List<BundleTimeline> bundles = new ArrayList<BundleTimeline>();
+ for (final UUID objectId : objectIds) {
+ final BundleTimeline entity = Mockito.mock(BundleTimeline.class);
+ Mockito.when(entity.getBundleId()).thenReturn(objectId);
+ bundles.add(entity);
+ }
for (final AuditLevel level : AuditLevel.values()) {
final AuditLogsForBundles auditLogsForBundles = auditUserApi.getAuditLogsForBundles(bundles, level);
diff --git a/util/src/test/java/com/ning/billing/util/audit/TestDefaultAuditLogsForBundles.java b/util/src/test/java/com/ning/billing/util/audit/TestDefaultAuditLogsForBundles.java
index 5ba4a40..1b84c96 100644
--- a/util/src/test/java/com/ning/billing/util/audit/TestDefaultAuditLogsForBundles.java
+++ b/util/src/test/java/com/ning/billing/util/audit/TestDefaultAuditLogsForBundles.java
@@ -28,7 +28,22 @@ public class TestDefaultAuditLogsForBundles extends AuditLogsTestBase {
@Test(groups = "fast")
public void testEquals() throws Exception {
final Map<UUID, List<AuditLog>> bundlesAuditLogs = createAuditLogsAssociation();
- Assert.assertEquals(new DefaultAuditLogsForBundles(bundlesAuditLogs).getBundlesAuditLogs(), bundlesAuditLogs);
- Assert.assertNotEquals(new DefaultAuditLogsForBundles(createAuditLogsAssociation()).getBundlesAuditLogs(), bundlesAuditLogs);
+ final Map<UUID, List<AuditLog>> subscriptionsAuditLogs = createAuditLogsAssociation();
+ final Map<UUID, List<AuditLog>> subscriptionEventsAuditLogs = createAuditLogsAssociation();
+ Assert.assertEquals(new DefaultAuditLogsForBundles(bundlesAuditLogs, subscriptionsAuditLogs, subscriptionEventsAuditLogs).getBundlesAuditLogs(), bundlesAuditLogs);
+ Assert.assertEquals(new DefaultAuditLogsForBundles(bundlesAuditLogs, subscriptionsAuditLogs, subscriptionEventsAuditLogs).getSubscriptionsAuditLogs(), subscriptionsAuditLogs);
+ Assert.assertEquals(new DefaultAuditLogsForBundles(bundlesAuditLogs, subscriptionsAuditLogs, subscriptionEventsAuditLogs).getSubscriptionEventsAuditLogs(), subscriptionEventsAuditLogs);
+
+ Assert.assertNotEquals(new DefaultAuditLogsForBundles(createAuditLogsAssociation(), subscriptionsAuditLogs, subscriptionEventsAuditLogs).getBundlesAuditLogs(), bundlesAuditLogs);
+ Assert.assertEquals(new DefaultAuditLogsForBundles(createAuditLogsAssociation(), subscriptionsAuditLogs, subscriptionEventsAuditLogs).getSubscriptionsAuditLogs(), subscriptionsAuditLogs);
+ Assert.assertEquals(new DefaultAuditLogsForBundles(createAuditLogsAssociation(), subscriptionsAuditLogs, subscriptionEventsAuditLogs).getSubscriptionEventsAuditLogs(), subscriptionEventsAuditLogs);
+
+ Assert.assertEquals(new DefaultAuditLogsForBundles(bundlesAuditLogs, createAuditLogsAssociation(), subscriptionEventsAuditLogs).getBundlesAuditLogs(), bundlesAuditLogs);
+ Assert.assertNotEquals(new DefaultAuditLogsForBundles(bundlesAuditLogs, createAuditLogsAssociation(), subscriptionEventsAuditLogs).getSubscriptionsAuditLogs(), subscriptionsAuditLogs);
+ Assert.assertEquals(new DefaultAuditLogsForBundles(bundlesAuditLogs, createAuditLogsAssociation(), subscriptionEventsAuditLogs).getSubscriptionEventsAuditLogs(), subscriptionEventsAuditLogs);
+
+ Assert.assertEquals(new DefaultAuditLogsForBundles(bundlesAuditLogs, subscriptionsAuditLogs, createAuditLogsAssociation()).getBundlesAuditLogs(), bundlesAuditLogs);
+ Assert.assertEquals(new DefaultAuditLogsForBundles(bundlesAuditLogs, subscriptionsAuditLogs, createAuditLogsAssociation()).getSubscriptionsAuditLogs(), subscriptionsAuditLogs);
+ Assert.assertNotEquals(new DefaultAuditLogsForBundles(bundlesAuditLogs, subscriptionsAuditLogs, createAuditLogsAssociation()).getSubscriptionEventsAuditLogs(), subscriptionEventsAuditLogs);
}
}