Details
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java
index 633b6a3..0a177e8 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java
@@ -106,19 +106,23 @@ public class AccountTimelineJson {
paymentsAuditLogs == null ? ImmutableMap.<UUID, List<AuditLog>>of() : paymentsAuditLogs.getPaymentsAuditLogs(),
refundsAuditLogs == null ? ImmutableMap.<UUID, List<AuditLog>>of() : refundsAuditLogs.getRefundsAuditLogs(),
chargebacksAuditLogs == null ? ImmutableMap.<UUID, List<AuditLog>>of() : chargebacksAuditLogs.getInvoicePaymentsAuditLogs(),
- bundlesAuditLogs == null ? ImmutableMap.<UUID, List<AuditLog>>of() : bundlesAuditLogs.getBundlesAuditLogs());
+ bundlesAuditLogs == null ? ImmutableMap.<UUID, List<AuditLog>>of() : bundlesAuditLogs.getBundlesAuditLogs(),
+ bundlesAuditLogs == null ? ImmutableMap.<UUID, List<AuditLog>>of() : bundlesAuditLogs.getSubscriptionsAuditLogs(),
+ bundlesAuditLogs == null ? ImmutableMap.<UUID, List<AuditLog>>of() : bundlesAuditLogs.getSubscriptionEventsAuditLogs());
}
public AccountTimelineJson(final Account account, final List<Invoice> invoices, final List<Payment> payments, final List<BundleTimeline> bundles,
final Multimap<UUID, Refund> refundsByPayment, final Multimap<UUID, InvoicePayment> chargebacksByPayment,
final Map<UUID, List<AuditLog>> invoiceAuditLogs, final Map<UUID, List<AuditLog>> invoiceItemsAuditLogs,
final Map<UUID, List<AuditLog>> paymentsAuditLogs, final Map<UUID, List<AuditLog>> refundsAuditLogs,
- final Map<UUID, List<AuditLog>> chargebacksAuditLogs, final Map<UUID, List<AuditLog>> bundlesAuditLogs) {
+ final Map<UUID, List<AuditLog>> chargebacksAuditLogs, final Map<UUID, List<AuditLog>> bundlesAuditLogs,
+ final Map<UUID, List<AuditLog>> subscriptionsAuditLogs, final Map<UUID, List<AuditLog>> subscriptionEventsAuditLogs) {
this.account = new AccountJsonSimple(account.getId().toString(), account.getExternalKey());
this.bundles = new LinkedList<BundleJsonWithSubscriptions>();
for (final BundleTimeline bundle : bundles) {
- final List<AuditLog> auditLogs = bundlesAuditLogs.get(bundle.getBundleId());
- final BundleJsonWithSubscriptions jsonWithSubscriptions = new BundleJsonWithSubscriptions(account.getId(), bundle, auditLogs);
+ final List<AuditLog> bundleAuditLogs = bundlesAuditLogs.get(bundle.getBundleId());
+ final BundleJsonWithSubscriptions jsonWithSubscriptions = new BundleJsonWithSubscriptions(bundle, bundleAuditLogs,
+ subscriptionsAuditLogs, subscriptionEventsAuditLogs);
this.bundles.add(jsonWithSubscriptions);
}
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleJsonWithSubscriptions.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleJsonWithSubscriptions.java
index be03ceb..8fd820e 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleJsonWithSubscriptions.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleJsonWithSubscriptions.java
@@ -18,6 +18,7 @@ package com.ning.billing.jaxrs.json;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
import javax.annotation.Nullable;
@@ -47,11 +48,13 @@ public class BundleJsonWithSubscriptions extends BundleJsonSimple {
return subscriptions;
}
- public BundleJsonWithSubscriptions(@Nullable final UUID accountId, final BundleTimeline bundle, final List<AuditLog> auditLogs) {
+ public BundleJsonWithSubscriptions(final BundleTimeline bundle, final List<AuditLog> auditLogs,
+ final Map<UUID, List<AuditLog>> subscriptionsAuditLogs, final Map<UUID, List<AuditLog>> subscriptionEventsAuditLogs) {
super(bundle.getBundleId(), bundle.getExternalKey(), auditLogs);
this.subscriptions = new LinkedList<SubscriptionJsonWithEvents>();
- for (final SubscriptionTimeline cur : bundle.getSubscriptions()) {
- this.subscriptions.add(new SubscriptionJsonWithEvents(bundle.getBundleId(), cur));
+ for (final SubscriptionTimeline subscriptionTimeline : bundle.getSubscriptions()) {
+ this.subscriptions.add(new SubscriptionJsonWithEvents(bundle.getBundleId(), subscriptionTimeline,
+ subscriptionsAuditLogs.get(subscriptionTimeline.getId()), subscriptionEventsAuditLogs));
}
}
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonNoEvents.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonNoEvents.java
index a03076f..4d5ecb6 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonNoEvents.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonNoEvents.java
@@ -16,29 +16,27 @@
package com.ning.billing.jaxrs.json;
+import java.util.List;
+
import javax.annotation.Nullable;
import org.joda.time.DateTime;
+import com.ning.billing.entitlement.api.user.Subscription;
+import com.ning.billing.util.audit.AuditLog;
+
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.ning.billing.entitlement.api.user.Subscription;
public class SubscriptionJsonNoEvents extends SubscriptionJsonSimple {
- private final DateTime startDate;
+ private final DateTime startDate;
private final String bundleId;
-
private final String productName;
-
private final String productCategory;
-
private final String billingPeriod;
-
private final String priceList;
-
private final DateTime chargedThroughDate;
-
private final DateTime cancelledDate;
@JsonCreator
@@ -50,8 +48,9 @@ public class SubscriptionJsonNoEvents extends SubscriptionJsonSimple {
@JsonProperty("billingPeriod") @Nullable final String billingPeriod,
@JsonProperty("priceList") @Nullable final String priceList,
@JsonProperty("chargedThroughDate") @Nullable final DateTime chargedThroughDate,
- @JsonProperty("cancelledDate") @Nullable final DateTime cancelledDate) {
- super(subscriptionId);
+ @JsonProperty("cancelledDate") @Nullable final DateTime cancelledDate,
+ @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
+ super(subscriptionId, auditLogs);
this.bundleId = bundleId;
this.startDate = startDate;
this.productName = productName;
@@ -62,20 +61,17 @@ public class SubscriptionJsonNoEvents extends SubscriptionJsonSimple {
this.cancelledDate = cancelledDate;
}
- public SubscriptionJsonNoEvents() {
- this(null, null, null, null, null, null, null, null, null);
- }
-
- public SubscriptionJsonNoEvents(final Subscription data) {
+ public SubscriptionJsonNoEvents(final Subscription data, @Nullable final List<AuditLog> auditLogs) {
this(data.getId().toString(),
data.getBundleId().toString(),
data.getStartDate(),
data.getCurrentPlan() != null ? data.getCurrentPlan().getProduct().getName() : null,
- data.getCurrentPlan() != null ?data.getCurrentPlan().getProduct().getCategory().toString() : null,
- data.getCurrentPlan() != null ?data.getCurrentPlan().getBillingPeriod().toString() : null,
+ data.getCurrentPlan() != null ? data.getCurrentPlan().getProduct().getCategory().toString() : null,
+ data.getCurrentPlan() != null ? data.getCurrentPlan().getBillingPeriod().toString() : null,
data.getCurrentPriceList() != null ? data.getCurrentPriceList().getName() : null,
data.getChargedThroughDate(),
- data.getEndDate() != null ? data.getEndDate() : data.getFutureEndDate());
+ data.getEndDate() != null ? data.getEndDate() : data.getFutureEndDate(),
+ toAuditLogJson(auditLogs));
}
@Override
@@ -118,9 +114,9 @@ public class SubscriptionJsonNoEvents extends SubscriptionJsonSimple {
@Override
public String toString() {
return "SubscriptionJson [subscriptionId=" + subscriptionId
- + ", bundleId=" + bundleId + ", productName=" + productName
- + ", productCategory=" + productCategory + ", billingPeriod="
- + billingPeriod + ", priceList=" + priceList + "]";
+ + ", bundleId=" + bundleId + ", productName=" + productName
+ + ", productCategory=" + productCategory + ", billingPeriod="
+ + billingPeriod + ", priceList=" + priceList + "]";
}
@Override
@@ -128,8 +124,8 @@ public class SubscriptionJsonNoEvents extends SubscriptionJsonSimple {
if (equalsNoSubscriptionIdNoStartDateNoCTD(o) && super.equals(o)) {
final SubscriptionJsonNoEvents that = (SubscriptionJsonNoEvents) o;
return ((startDate == null && that.startDate == null) || (startDate != null && that.startDate != null && startDate.compareTo(that.startDate) == 0)) &&
- ((chargedThroughDate == null && that.chargedThroughDate == null) || (chargedThroughDate != null && that.chargedThroughDate != null &&
- chargedThroughDate.compareTo(that.chargedThroughDate) == 0));
+ ((chargedThroughDate == null && that.chargedThroughDate == null) || (chargedThroughDate != null && that.chargedThroughDate != null &&
+ chargedThroughDate.compareTo(that.chargedThroughDate) == 0));
} else {
return false;
}
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonSimple.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonSimple.java
index 28d5365..acdd875 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonSimple.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonSimple.java
@@ -13,23 +13,24 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
+
package com.ning.billing.jaxrs.json;
+import java.util.List;
+
import javax.annotation.Nullable;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-public class SubscriptionJsonSimple {
+public class SubscriptionJsonSimple extends JsonBase {
protected final String subscriptionId;
- public SubscriptionJsonSimple() {
- this(null);
- }
-
@JsonCreator
- public SubscriptionJsonSimple(@JsonProperty("subscriptionId") @Nullable final String subscriptionId) {
+ public SubscriptionJsonSimple(@JsonProperty("subscriptionId") @Nullable final String subscriptionId,
+ @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
+ super(auditLogs);
this.subscriptionId = subscriptionId;
}
@@ -38,6 +39,15 @@ public class SubscriptionJsonSimple {
}
@Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("SubscriptionJsonSimple");
+ sb.append("{subscriptionId='").append(subscriptionId).append('\'');
+ sb.append('}');
+ return sb.toString();
+ }
+
+ @Override
public boolean equals(final Object o) {
if (this == o) {
return true;
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonWithEvents.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonWithEvents.java
index 73508ad..674a9d2 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonWithEvents.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonWithEvents.java
@@ -13,23 +13,28 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
+
package com.ning.billing.jaxrs.json;
-import javax.annotation.Nullable;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
+import javax.annotation.Nullable;
+
import org.joda.time.DateTime;
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.entitlement.api.timeline.SubscriptionTimeline;
import com.ning.billing.entitlement.api.timeline.SubscriptionTimeline.ExistingEvent;
import com.ning.billing.entitlement.api.user.Subscription;
+import com.ning.billing.util.audit.AuditLog;
import com.ning.billing.util.clock.DefaultClock;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
public class SubscriptionJsonWithEvents extends SubscriptionJsonSimple {
private final List<SubscriptionReadEventJson> events;
@@ -41,15 +46,8 @@ public class SubscriptionJsonWithEvents extends SubscriptionJsonSimple {
public static class SubscriptionReadEventJson extends SubscriptionBaseEventJson {
private final String eventId;
-
private final DateTime effectiveDate;
- public SubscriptionReadEventJson() {
- super();
- this.eventId = null;
- this.effectiveDate = null;
- }
-
@JsonCreator
public SubscriptionReadEventJson(@JsonProperty("eventId") final String eventId,
@JsonProperty("billingPeriod") final String billingPeriod,
@@ -58,8 +56,9 @@ public class SubscriptionJsonWithEvents extends SubscriptionJsonSimple {
@JsonProperty("product") final String product,
@JsonProperty("priceList") final String priceList,
@JsonProperty("eventType") final String eventType,
- @JsonProperty("phase") final String phase) {
- super(billingPeriod, requestedDate, product, priceList, eventType, phase);
+ @JsonProperty("phase") final String phase,
+ @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
+ super(billingPeriod, requestedDate, product, priceList, eventType, phase, auditLogs);
this.eventId = eventId;
this.effectiveDate = effectiveDate;
}
@@ -75,14 +74,14 @@ public class SubscriptionJsonWithEvents extends SubscriptionJsonSimple {
@Override
public String toString() {
return "SubscriptionReadEventJson [eventId=" + eventId
- + ", effectiveDate=" + effectiveDate
- + ", getBillingPeriod()=" + getBillingPeriod()
- + ", getRequestedDate()=" + getRequestedDate()
- + ", getProduct()=" + getProduct() + ", getPriceList()="
- + getPriceList() + ", getEventType()=" + getEventType()
- + ", getPhase()=" + getPhase() + ", getClass()="
- + getClass() + ", hashCode()=" + hashCode()
- + ", toString()=" + super.toString() + "]";
+ + ", effectiveDate=" + effectiveDate
+ + ", getBillingPeriod()=" + getBillingPeriod()
+ + ", getRequestedDate()=" + getRequestedDate()
+ + ", getProduct()=" + getProduct() + ", getPriceList()="
+ + getPriceList() + ", getEventType()=" + getEventType()
+ + ", getPhase()=" + getPhase() + ", getClass()="
+ + getClass() + ", hashCode()=" + hashCode()
+ + ", toString()=" + super.toString() + "]";
}
@Override
@@ -115,6 +114,7 @@ public class SubscriptionJsonWithEvents extends SubscriptionJsonSimple {
}
public static class SubscriptionDeletedEventJson extends SubscriptionReadEventJson {
+
@JsonCreator
public SubscriptionDeletedEventJson(@JsonProperty("event_id") final String eventId,
@JsonProperty("billing_period") final String billingPeriod,
@@ -123,66 +123,56 @@ public class SubscriptionJsonWithEvents extends SubscriptionJsonSimple {
@JsonProperty("product") final String product,
@JsonProperty("price_list") final String priceList,
@JsonProperty("event_type") final String eventType,
- @JsonProperty("phase") final String phase) {
- super(eventId, billingPeriod, requestedDate, effectiveDate, product, priceList, eventType, phase);
+ @JsonProperty("phase") final String phase,
+ @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
+ super(eventId, billingPeriod, requestedDate, effectiveDate, product, priceList, eventType, phase, auditLogs);
}
}
public static class SubscriptionNewEventJson extends SubscriptionBaseEventJson {
+
@JsonCreator
public SubscriptionNewEventJson(@JsonProperty("billing_period") final String billingPeriod,
@JsonProperty("requested_date") final DateTime requestedDate,
@JsonProperty("product") final String product,
@JsonProperty("price_list") final String priceList,
@JsonProperty("event_type") final String eventType,
- @JsonProperty("phase") final String phase) {
- super(billingPeriod, requestedDate, product, priceList, eventType, phase);
+ @JsonProperty("phase") final String phase,
+ @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
+ super(billingPeriod, requestedDate, product, priceList, eventType, phase, auditLogs);
}
@Override
public String toString() {
return "SubscriptionNewEventJson [getBillingPeriod()="
- + getBillingPeriod() + ", getRequestedDate()="
- + getRequestedDate() + ", getProduct()=" + getProduct()
- + ", getPriceList()=" + getPriceList()
- + ", getEventType()=" + getEventType() + ", getPhase()="
- + getPhase() + ", getClass()=" + getClass()
- + ", hashCode()=" + hashCode() + ", toString()="
- + super.toString() + "]";
+ + getBillingPeriod() + ", getRequestedDate()="
+ + getRequestedDate() + ", getProduct()=" + getProduct()
+ + ", getPriceList()=" + getPriceList()
+ + ", getEventType()=" + getEventType() + ", getPhase()="
+ + getPhase() + ", getClass()=" + getClass()
+ + ", hashCode()=" + hashCode() + ", toString()="
+ + super.toString() + "]";
}
}
- public static class SubscriptionBaseEventJson {
+ public abstract static class SubscriptionBaseEventJson extends JsonBase {
private final String billingPeriod;
-
private final DateTime requestedDate;
-
private final String product;
-
private final String priceList;
-
private final String eventType;
-
private final String phase;
- public SubscriptionBaseEventJson() {
- this.billingPeriod = null;
- this.requestedDate = null;
- this.product = null;
- this.priceList = null;
- this.eventType = null;
- this.phase = null;
- }
-
@JsonCreator
public SubscriptionBaseEventJson(@JsonProperty("billing_period") final String billingPeriod,
@JsonProperty("requested_date") final DateTime requestedDate,
@JsonProperty("product") final String product,
@JsonProperty("price_list") final String priceList,
@JsonProperty("event_type") final String eventType,
- @JsonProperty("phase") final String phase) {
- super();
+ @JsonProperty("phase") final String phase,
+ @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
+ super(auditLogs);
this.billingPeriod = billingPeriod;
this.requestedDate = DefaultClock.toUTCDateTime(requestedDate);
this.product = product;
@@ -216,6 +206,20 @@ public class SubscriptionJsonWithEvents extends SubscriptionJsonSimple {
}
@Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("SubscriptionBaseEventJson");
+ sb.append("{billingPeriod='").append(billingPeriod).append('\'');
+ sb.append(", requestedDate=").append(requestedDate);
+ sb.append(", product='").append(product).append('\'');
+ sb.append(", priceList='").append(priceList).append('\'');
+ sb.append(", eventType='").append(eventType).append('\'');
+ sb.append(", phase='").append(phase).append('\'');
+ sb.append('}');
+ return sb.toString();
+ }
+
+ @Override
public boolean equals(final Object o) {
if (this == o) {
return true;
@@ -264,31 +268,32 @@ public class SubscriptionJsonWithEvents extends SubscriptionJsonSimple {
public SubscriptionJsonWithEvents(@JsonProperty("subscription_id") @Nullable final String subscriptionId,
@JsonProperty("events") @Nullable final List<SubscriptionReadEventJson> events,
@JsonProperty("new_events") @Nullable final List<SubscriptionNewEventJson> newEvents,
- @JsonProperty("deleted_events") @Nullable final List<SubscriptionDeletedEventJson> deletedEvents) {
- super(subscriptionId);
+ @JsonProperty("deleted_events") @Nullable final List<SubscriptionDeletedEventJson> deletedEvents,
+ @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
+ super(subscriptionId, auditLogs);
this.events = events;
this.deletedEvents = deletedEvents;
this.newEvents = newEvents;
}
- public SubscriptionJsonWithEvents() {
- this((String) null, null, null, null);
- }
-
public SubscriptionJsonWithEvents(final Subscription data,
@Nullable final List<SubscriptionReadEventJson> events,
@Nullable final List<SubscriptionNewEventJson> newEvents,
- @Nullable final List<SubscriptionDeletedEventJson> deletedEvents) {
- this(data.getId().toString(), events, newEvents, deletedEvents);
+ @Nullable final List<SubscriptionDeletedEventJson> deletedEvents,
+ @Nullable final List<AuditLog> auditLogs) {
+ this(data.getId().toString(), events, newEvents, deletedEvents, toAuditLogJson(auditLogs));
}
- public SubscriptionJsonWithEvents(@Nullable final UUID bundleId, final SubscriptionTimeline input) {
- super(input.getId().toString());
+ public SubscriptionJsonWithEvents(@Nullable final UUID bundleId, final SubscriptionTimeline input,
+ final List<AuditLog> bundleAuditLogs, final Map<UUID, List<AuditLog>> subscriptionEventsAuditLogs) {
+ super(input.getId().toString(), toAuditLogJson(bundleAuditLogs));
+
this.events = new LinkedList<SubscriptionReadEventJson>();
- for (final ExistingEvent cur : input.getExistingEvents()) {
- final PlanPhaseSpecifier spec = cur.getPlanPhaseSpecifier();
- this.events.add(new SubscriptionReadEventJson(cur.getEventId().toString(), spec.getBillingPeriod().toString(), cur.getRequestedDate(), cur.getEffectiveDate(),
- spec.getProductName(), spec.getPriceListName(), cur.getSubscriptionTransitionType().toString(), spec.getPhaseType().toString()));
+ for (final ExistingEvent event : input.getExistingEvents()) {
+ final PlanPhaseSpecifier spec = event.getPlanPhaseSpecifier();
+ this.events.add(new SubscriptionReadEventJson(event.getEventId().toString(), spec.getBillingPeriod().toString(), event.getRequestedDate(), event.getEffectiveDate(),
+ spec.getProductName(), spec.getPriceListName(), event.getSubscriptionTransitionType().toString(), spec.getPhaseType().toString(),
+ toAuditLogJson(subscriptionEventsAuditLogs.get(event.getEventId()))));
}
this.newEvents = null;
this.deletedEvents = null;
@@ -311,6 +316,17 @@ public class SubscriptionJsonWithEvents extends SubscriptionJsonSimple {
}
@Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("SubscriptionJsonWithEvents");
+ sb.append("{events=").append(events);
+ sb.append(", deletedEvents=").append(deletedEvents);
+ sb.append(", newEvents=").append(newEvents);
+ sb.append('}');
+ return sb.toString();
+ }
+
+ @Override
public boolean equals(final Object o) {
if (this == o) {
return true;
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
index 4ecee4e..3c97ee0 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
@@ -226,18 +226,15 @@ public class AccountResource extends JaxRsResourceBase {
// Get the invoices
final List<Invoice> invoices = invoiceApi.getInvoicesByAccount(account.getId());
- AuditLogsForInvoices invoicesAuditLogs = null;
- invoicesAuditLogs = auditUserApi.getAuditLogsForInvoices(invoices, auditMode.getLevel());
+ final AuditLogsForInvoices invoicesAuditLogs = auditUserApi.getAuditLogsForInvoices(invoices, auditMode.getLevel());
// Get the payments
final List<Payment> payments = paymentApi.getAccountPayments(accountId);
- AuditLogsForPayments paymentsAuditLogs = null;
- paymentsAuditLogs = auditUserApi.getAuditLogsForPayments(payments, auditMode.getLevel());
+ final AuditLogsForPayments paymentsAuditLogs = auditUserApi.getAuditLogsForPayments(payments, auditMode.getLevel());
// Get the refunds
final List<Refund> refunds = paymentApi.getAccountRefunds(account);
- AuditLogsForRefunds refundsAuditLogs = null;
- refundsAuditLogs = auditUserApi.getAuditLogsForRefunds(refunds, auditMode.getLevel());
+ final AuditLogsForRefunds refundsAuditLogs = auditUserApi.getAuditLogsForRefunds(refunds, auditMode.getLevel());
final Multimap<UUID, Refund> refundsByPayment = ArrayListMultimap.<UUID, Refund>create();
for (final Refund refund : refunds) {
refundsByPayment.put(refund.getPaymentId(), refund);
@@ -245,8 +242,7 @@ public class AccountResource extends JaxRsResourceBase {
// Get the chargebacks
final List<InvoicePayment> chargebacks = invoicePaymentApi.getChargebacksByAccountId(accountId);
- AuditLogsForInvoicePayments chargebacksAuditLogs = null;
- chargebacksAuditLogs = auditUserApi.getAuditLogsForInvoicePayments(chargebacks, auditMode.getLevel());
+ final AuditLogsForInvoicePayments chargebacksAuditLogs = auditUserApi.getAuditLogsForInvoicePayments(chargebacks, auditMode.getLevel());
final Multimap<UUID, InvoicePayment> chargebacksByPayment = ArrayListMultimap.<UUID, InvoicePayment>create();
for (final InvoicePayment chargeback : chargebacks) {
chargebacksByPayment.put(chargeback.getPaymentId(), chargeback);
@@ -254,12 +250,11 @@ public class AccountResource extends JaxRsResourceBase {
// Get the bundles
final List<SubscriptionBundle> bundles = entitlementApi.getBundlesForAccount(account.getId());
- AuditLogsForBundles bundlesAuditLogs = null;
- bundlesAuditLogs = auditUserApi.getAuditLogsForBundles(bundles, auditMode.getLevel());
final List<BundleTimeline> bundlesTimeline = new LinkedList<BundleTimeline>();
for (final SubscriptionBundle bundle : bundles) {
bundlesTimeline.add(timelineApi.getBundleTimeline(bundle.getId()));
}
+ final AuditLogsForBundles bundlesAuditLogs = auditUserApi.getAuditLogsForBundles(bundlesTimeline, auditMode.getLevel());
final AccountTimelineJson json = new AccountTimelineJson(account, invoices, payments, bundlesTimeline,
refundsByPayment, chargebacksByPayment,
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java
index 889795d..81429b4 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java
@@ -95,7 +95,6 @@ public class BundleResource extends JaxRsResourceBase {
return Response.status(Status.OK).entity(json).build();
}
-
@POST
@Consumes(APPLICATION_JSON)
@Produces(APPLICATION_JSON)
@@ -122,7 +121,7 @@ public class BundleResource extends JaxRsResourceBase {
final Collection<SubscriptionJsonNoEvents> result = Collections2.transform(bundles, new Function<Subscription, SubscriptionJsonNoEvents>() {
@Override
public SubscriptionJsonNoEvents apply(final Subscription input) {
- return new SubscriptionJsonNoEvents(input);
+ return new SubscriptionJsonNoEvents(input, null);
}
});
return Response.status(Status.OK).entity(result).build();
@@ -173,19 +172,19 @@ public class BundleResource extends JaxRsResourceBase {
@Consumes(APPLICATION_JSON)
@Produces(APPLICATION_JSON)
public Response transferBundle(@PathParam(ID_PARAM_NAME) final String id,
- @QueryParam(QUERY_REQUESTED_DT) final String requestedDate,
- @QueryParam(QUERY_BUNDLE_TRANSFER_ADDON) @DefaultValue("true") final Boolean transferAddOn,
- @QueryParam(QUERY_BUNDLE_TRANSFER_CANCEL_IMM) @DefaultValue("false") final Boolean cancelImmediatley,
- final BundleJsonNoSubscriptions json,
- @HeaderParam(HDR_CREATED_BY) final String createdBy,
- @HeaderParam(HDR_REASON) final String reason,
- @HeaderParam(HDR_COMMENT) final String comment,
- @javax.ws.rs.core.Context final UriInfo uriInfo) throws EntitlementUserApiException, EntitlementTransferApiException {
+ @QueryParam(QUERY_REQUESTED_DT) final String requestedDate,
+ @QueryParam(QUERY_BUNDLE_TRANSFER_ADDON) @DefaultValue("true") final Boolean transferAddOn,
+ @QueryParam(QUERY_BUNDLE_TRANSFER_CANCEL_IMM) @DefaultValue("false") final Boolean cancelImmediatley,
+ final BundleJsonNoSubscriptions json,
+ @HeaderParam(HDR_CREATED_BY) final String createdBy,
+ @HeaderParam(HDR_REASON) final String reason,
+ @HeaderParam(HDR_COMMENT) final String comment,
+ @javax.ws.rs.core.Context final UriInfo uriInfo) throws EntitlementUserApiException, EntitlementTransferApiException {
final SubscriptionBundle bundle = entitlementApi.getBundleFromId(UUID.fromString(id));
final DateTime inputDate = (requestedDate != null) ? DATE_TIME_FORMATTER.parseDateTime(requestedDate) : null;
final SubscriptionBundle newBundle = transferApi.transferBundle(bundle.getAccountId(), UUID.fromString(json.getAccountId()), bundle.getKey(), inputDate, transferAddOn,
- cancelImmediatley, context.createContext(createdBy, reason, comment));
+ cancelImmediatley, context.createContext(createdBy, reason, comment));
return uriBuilder.buildResponse(BundleResource.class, "getBundle", newBundle.getId(), uriInfo.getBaseUri().toString());
}
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
index 69ebb23..68dacad 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
@@ -102,7 +102,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
public Response getSubscription(@PathParam("subscriptionId") final String subscriptionId) throws EntitlementUserApiException {
final UUID uuid = UUID.fromString(subscriptionId);
final Subscription subscription = entitlementApi.getSubscriptionFromId(uuid);
- final SubscriptionJsonNoEvents json = new SubscriptionJsonNoEvents(subscription);
+ final SubscriptionJsonNoEvents json = new SubscriptionJsonNoEvents(subscription, null);
return Response.status(Status.OK).entity(json).build();
}
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleJsonWithSubscriptions.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleJsonWithSubscriptions.java
index 36e328b..8f3ac82 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleJsonWithSubscriptions.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleJsonWithSubscriptions.java
@@ -33,9 +33,11 @@ import com.ning.billing.entitlement.api.SubscriptionTransitionType;
import com.ning.billing.entitlement.api.timeline.BundleTimeline;
import com.ning.billing.entitlement.api.timeline.SubscriptionTimeline;
import com.ning.billing.jaxrs.JaxrsTestSuite;
+import com.ning.billing.util.audit.AuditLog;
import com.ning.billing.util.clock.DefaultClock;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
public class TestBundleJsonWithSubscriptions extends JaxrsTestSuite {
@@ -58,7 +60,7 @@ public class TestBundleJsonWithSubscriptions extends JaxrsTestSuite {
final UUID bundleId = UUID.randomUUID();
final String externalKey = UUID.randomUUID().toString();
- final SubscriptionJsonWithEvents subscription = new SubscriptionJsonWithEvents(bundleId, subscriptionTimeline);
+ final SubscriptionJsonWithEvents subscription = new SubscriptionJsonWithEvents(bundleId, subscriptionTimeline, null, ImmutableMap.<UUID, List<AuditLog>>of());
final List<AuditLogJson> auditLogs = createAuditLogsJson();
final BundleJsonWithSubscriptions bundleJsonWithSubscriptions = new BundleJsonWithSubscriptions(bundleId.toString(), externalKey, ImmutableList.<SubscriptionJsonWithEvents>of(subscription), auditLogs);
Assert.assertEquals(bundleJsonWithSubscriptions.getBundleId(), bundleId.toString());
@@ -95,7 +97,9 @@ public class TestBundleJsonWithSubscriptions extends JaxrsTestSuite {
Mockito.when(bundleTimeline.getExternalKey()).thenReturn(externalKey);
Mockito.when(bundleTimeline.getSubscriptions()).thenReturn(ImmutableList.<SubscriptionTimeline>of(subscriptionTimeline));
- final BundleJsonWithSubscriptions bundleJsonWithSubscriptions = new BundleJsonWithSubscriptions(null, bundleTimeline, null);
+ final BundleJsonWithSubscriptions bundleJsonWithSubscriptions = new BundleJsonWithSubscriptions(bundleTimeline, null,
+ ImmutableMap.<UUID, List<AuditLog>>of(),
+ ImmutableMap.<UUID, List<AuditLog>>of());
Assert.assertEquals(bundleJsonWithSubscriptions.getBundleId(), bundleId.toString());
Assert.assertEquals(bundleJsonWithSubscriptions.getExternalKey(), externalKey);
Assert.assertEquals(bundleJsonWithSubscriptions.getSubscriptions().size(), 1);
@@ -117,7 +121,9 @@ public class TestBundleJsonWithSubscriptions extends JaxrsTestSuite {
Mockito.when(bundle.getBundleId()).thenReturn(bundleId);
Mockito.when(bundle.getExternalKey()).thenReturn(externalKey);
- final BundleJsonWithSubscriptions bundleJsonWithSubscriptions = new BundleJsonWithSubscriptions(null, bundle, null);
+ final BundleJsonWithSubscriptions bundleJsonWithSubscriptions = new BundleJsonWithSubscriptions(bundle, null,
+ ImmutableMap.<UUID, List<AuditLog>>of(),
+ ImmutableMap.<UUID, List<AuditLog>>of());
Assert.assertEquals(bundleJsonWithSubscriptions.getBundleId(), bundleId.toString());
Assert.assertEquals(bundleJsonWithSubscriptions.getExternalKey(), externalKey);
Assert.assertEquals(bundleJsonWithSubscriptions.getSubscriptions().size(), 0);
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java
index 17df65d..572b678 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java
@@ -17,6 +17,7 @@
package com.ning.billing.jaxrs.json;
import java.math.BigDecimal;
+import java.util.List;
import java.util.UUID;
import org.joda.time.DateTime;
@@ -32,10 +33,12 @@ import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.entitlement.api.SubscriptionTransitionType;
import com.ning.billing.entitlement.api.timeline.SubscriptionTimeline;
import com.ning.billing.jaxrs.JaxrsTestSuite;
+import com.ning.billing.util.audit.AuditLog;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.DefaultClock;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
public class TestBundleTimelineJson extends JaxrsTestSuite {
@@ -80,7 +83,7 @@ public class TestBundleTimelineJson extends JaxrsTestSuite {
final UUID bundleId = UUID.randomUUID();
final String externalKey = UUID.randomUUID().toString();
- final SubscriptionJsonWithEvents subscription = new SubscriptionJsonWithEvents(bundleId, subscriptionTimeline);
+ final SubscriptionJsonWithEvents subscription = new SubscriptionJsonWithEvents(bundleId, subscriptionTimeline, null, ImmutableMap.<UUID, List<AuditLog>>of());
return new BundleJsonWithSubscriptions(bundleId.toString(), externalKey, ImmutableList.<SubscriptionJsonWithEvents>of(subscription), null);
}
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonNoEvents.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonNoEvents.java
index d4e62f0..34ada37 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonNoEvents.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonNoEvents.java
@@ -16,6 +16,7 @@
package com.ning.billing.jaxrs.json;
+import java.util.List;
import java.util.UUID;
import org.joda.time.DateTime;
@@ -24,9 +25,6 @@ import org.mockito.Mockito;
import org.testng.Assert;
import org.testng.annotations.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.datatype.joda.JodaModule;
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.InternationalPrice;
import com.ning.billing.catalog.api.Plan;
@@ -37,7 +35,12 @@ import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.jaxrs.JaxrsTestSuite;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.datatype.joda.JodaModule;
+
public class TestSubscriptionJsonNoEvents extends JaxrsTestSuite {
+
private static final ObjectMapper mapper = new ObjectMapper();
static {
@@ -56,10 +59,11 @@ public class TestSubscriptionJsonNoEvents extends JaxrsTestSuite {
final String priceList = UUID.randomUUID().toString();
final DateTime chargedThroughDate = new DateTime(DateTimeZone.UTC);
final DateTime endDate = new DateTime(DateTimeZone.UTC);
-
+ final List<AuditLogJson> auditLogs = createAuditLogsJson();
final SubscriptionJsonNoEvents subscriptionJsonNoEvents = new SubscriptionJsonNoEvents(subscriptionId, bundleId, startDate,
productName, productCategory, billingPeriod,
- priceList, chargedThroughDate, endDate);
+ priceList, chargedThroughDate, endDate,
+ auditLogs);
Assert.assertEquals(subscriptionJsonNoEvents.getSubscriptionId(), subscriptionId);
Assert.assertEquals(subscriptionJsonNoEvents.getBundleId(), bundleId);
Assert.assertEquals(subscriptionJsonNoEvents.getStartDate(), startDate);
@@ -68,17 +72,9 @@ public class TestSubscriptionJsonNoEvents extends JaxrsTestSuite {
Assert.assertEquals(subscriptionJsonNoEvents.getBillingPeriod(), billingPeriod);
Assert.assertEquals(subscriptionJsonNoEvents.getPriceList(), priceList);
Assert.assertEquals(subscriptionJsonNoEvents.getChargedThroughDate(), chargedThroughDate);
+ Assert.assertEquals(subscriptionJsonNoEvents.getAuditLogs(), auditLogs);
final String asJson = mapper.writeValueAsString(subscriptionJsonNoEvents);
- Assert.assertEquals(asJson, "{\"subscriptionId\":\"" + subscriptionJsonNoEvents.getSubscriptionId() + "\"," +
- "\"bundleId\":\"" + subscriptionJsonNoEvents.getBundleId() + "\"," +
- "\"startDate\":\"" + subscriptionJsonNoEvents.getStartDate().toDateTimeISO().toString() + "\"," +
- "\"productName\":\"" + subscriptionJsonNoEvents.getProductName() + "\"," +
- "\"productCategory\":\"" + subscriptionJsonNoEvents.getProductCategory() + "\"," +
- "\"billingPeriod\":\"" + subscriptionJsonNoEvents.getBillingPeriod() + "\"," +
- "\"priceList\":\"" + subscriptionJsonNoEvents.getPriceList() + "\"," +
- "\"chargedThroughDate\":\"" + subscriptionJsonNoEvents.getChargedThroughDate().toDateTimeISO().toString() + "\"," +
- "\"cancelledDate\":\"" + subscriptionJsonNoEvents.getCancelledDate().toDateTimeISO().toString() + "\"}");
final SubscriptionJsonNoEvents fromJson = mapper.readValue(asJson, SubscriptionJsonNoEvents.class);
Assert.assertEquals(fromJson, subscriptionJsonNoEvents);
@@ -110,7 +106,7 @@ public class TestSubscriptionJsonNoEvents extends JaxrsTestSuite {
Mockito.when(subscription.getCurrentPriceList()).thenReturn(priceList);
Mockito.when(subscription.getChargedThroughDate()).thenReturn(new DateTime(DateTimeZone.UTC));
- final SubscriptionJsonNoEvents subscriptionJsonNoEvents = new SubscriptionJsonNoEvents(subscription);
+ final SubscriptionJsonNoEvents subscriptionJsonNoEvents = new SubscriptionJsonNoEvents(subscription, null);
Assert.assertEquals(subscriptionJsonNoEvents.getSubscriptionId(), subscription.getId().toString());
Assert.assertEquals(subscriptionJsonNoEvents.getStartDate(), subscription.getStartDate());
Assert.assertEquals(subscriptionJsonNoEvents.getBundleId(), subscription.getBundleId().toString());
@@ -118,5 +114,6 @@ public class TestSubscriptionJsonNoEvents extends JaxrsTestSuite {
Assert.assertEquals(subscriptionJsonNoEvents.getProductCategory(), subscription.getCurrentPlan().getProduct().getCategory().toString());
Assert.assertEquals(subscriptionJsonNoEvents.getBillingPeriod(), subscription.getCurrentPlan().getBillingPeriod().toString());
Assert.assertEquals(subscriptionJsonNoEvents.getChargedThroughDate(), subscription.getChargedThroughDate());
+ Assert.assertNull(subscriptionJsonNoEvents.getAuditLogs());
}
}
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonSimple.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonSimple.java
index e4631f9..a4ab2fc 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonSimple.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonSimple.java
@@ -16,25 +16,25 @@
package com.ning.billing.jaxrs.json;
+import java.util.List;
import java.util.UUID;
import org.testng.Assert;
import org.testng.annotations.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.ning.billing.jaxrs.JaxrsTestSuite;
public class TestSubscriptionJsonSimple extends JaxrsTestSuite {
- private static final ObjectMapper mapper = new ObjectMapper();
@Test(groups = "fast")
public void testJson() throws Exception {
final String subscriptionId = UUID.randomUUID().toString();
- final SubscriptionJsonSimple subscriptionJsonSimple = new SubscriptionJsonSimple(subscriptionId);
+ final List<AuditLogJson> auditLogs = createAuditLogsJson();
+ final SubscriptionJsonSimple subscriptionJsonSimple = new SubscriptionJsonSimple(subscriptionId, auditLogs);
Assert.assertEquals(subscriptionJsonSimple.getSubscriptionId(), subscriptionId);
+ Assert.assertEquals(subscriptionJsonSimple.getAuditLogs(), auditLogs);
final String asJson = mapper.writeValueAsString(subscriptionJsonSimple);
- Assert.assertEquals(asJson, "{\"subscriptionId\":\"" + subscriptionJsonSimple.getSubscriptionId() + "\"}");
final SubscriptionJsonSimple fromJson = mapper.readValue(asJson, SubscriptionJsonSimple.class);
Assert.assertEquals(fromJson, subscriptionJsonSimple);
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonWithEvents.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonWithEvents.java
index a0dac08..010de17 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonWithEvents.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonWithEvents.java
@@ -16,6 +16,7 @@
package com.ning.billing.jaxrs.json;
+import java.util.List;
import java.util.UUID;
import org.joda.time.DateTime;
@@ -24,10 +25,6 @@ import org.mockito.Mockito;
import org.testng.Assert;
import org.testng.annotations.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.datatype.joda.JodaModule;
-import com.google.common.collect.ImmutableList;
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.PhaseType;
import com.ning.billing.catalog.api.PlanPhaseSpecifier;
@@ -36,15 +33,13 @@ import com.ning.billing.entitlement.api.SubscriptionTransitionType;
import com.ning.billing.entitlement.api.timeline.SubscriptionTimeline;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.jaxrs.JaxrsTestSuite;
+import com.ning.billing.util.audit.AuditLog;
import com.ning.billing.util.clock.DefaultClock;
-public class TestSubscriptionJsonWithEvents extends JaxrsTestSuite {
- private static final ObjectMapper mapper = new ObjectMapper();
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
- static {
- mapper.registerModule(new JodaModule());
- mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
- }
+public class TestSubscriptionJsonWithEvents extends JaxrsTestSuite {
@Test(groups = "fast")
public void testJson() throws Exception {
@@ -52,6 +47,7 @@ public class TestSubscriptionJsonWithEvents extends JaxrsTestSuite {
final DateTime requestedDate = DefaultClock.toUTCDateTime(new DateTime(DateTimeZone.UTC));
final DateTime effectiveDate = DefaultClock.toUTCDateTime(new DateTime(DateTimeZone.UTC));
final UUID eventId = UUID.randomUUID();
+ final List<AuditLogJson> auditLogs = createAuditLogsJson();
final SubscriptionJsonWithEvents.SubscriptionReadEventJson newEvent = new SubscriptionJsonWithEvents.SubscriptionReadEventJson(eventId.toString(),
BillingPeriod.NO_BILLING_PERIOD.toString(),
requestedDate,
@@ -59,25 +55,15 @@ public class TestSubscriptionJsonWithEvents extends JaxrsTestSuite {
UUID.randomUUID().toString(),
UUID.randomUUID().toString(),
SubscriptionTransitionType.CREATE.toString(),
- PhaseType.DISCOUNT.toString());
+ PhaseType.DISCOUNT.toString(),
+ auditLogs);
final SubscriptionJsonWithEvents subscriptionJsonWithEvents = new SubscriptionJsonWithEvents(subscriptionId,
ImmutableList.<SubscriptionJsonWithEvents.SubscriptionReadEventJson>of(newEvent),
null,
+ null,
null);
final String asJson = mapper.writeValueAsString(subscriptionJsonWithEvents);
- final SubscriptionJsonWithEvents.SubscriptionReadEventJson event = subscriptionJsonWithEvents.getEvents().get(0);
- Assert.assertEquals(asJson, "{\"events\":[{\"eventId\":\"" + event.getEventId() + "\"," +
- "\"billingPeriod\":\"" + event.getBillingPeriod() + "\"," +
- "\"product\":\"" + event.getProduct() + "\"," +
- "\"priceList\":\"" + event.getPriceList() + "\"," +
- "\"eventType\":\"" + event.getEventType() + "\"," +
- "\"phase\":\"" + event.getPhase() + "\"," +
- "\"requestedDate\":\"" + event.getRequestedDate() + "\"," +
- "\"effectiveDate\":\"" + event.getEffectiveDate() + "\"}]," +
- "\"subscriptionId\":\"" + subscriptionJsonWithEvents.getSubscriptionId() + "\"," +
- "\"deletedEvents\":null," +
- "\"newEvents\":null}");
final SubscriptionJsonWithEvents fromJson = mapper.readValue(asJson, SubscriptionJsonWithEvents.class);
Assert.assertEquals(fromJson, subscriptionJsonWithEvents);
@@ -88,6 +74,7 @@ public class TestSubscriptionJsonWithEvents extends JaxrsTestSuite {
final DateTime requestedDate = DefaultClock.toUTCDateTime(new DateTime(DateTimeZone.UTC));
final DateTime effectiveDate = DefaultClock.toUTCDateTime(new DateTime(DateTimeZone.UTC));
final UUID eventId = UUID.randomUUID();
+ final List<AuditLogJson> auditLogs = createAuditLogsJson();
final SubscriptionJsonWithEvents.SubscriptionReadEventJson newEvent = new SubscriptionJsonWithEvents.SubscriptionReadEventJson(eventId.toString(),
BillingPeriod.NO_BILLING_PERIOD.toString(),
requestedDate,
@@ -95,7 +82,8 @@ public class TestSubscriptionJsonWithEvents extends JaxrsTestSuite {
UUID.randomUUID().toString(),
UUID.randomUUID().toString(),
SubscriptionTransitionType.CREATE.toString(),
- PhaseType.DISCOUNT.toString());
+ PhaseType.DISCOUNT.toString(),
+ auditLogs);
final Subscription subscription = Mockito.mock(Subscription.class);
Mockito.when(subscription.getId()).thenReturn(UUID.randomUUID());
@@ -103,6 +91,7 @@ public class TestSubscriptionJsonWithEvents extends JaxrsTestSuite {
final SubscriptionJsonWithEvents subscriptionJsonWithEvents = new SubscriptionJsonWithEvents(subscription,
ImmutableList.<SubscriptionJsonWithEvents.SubscriptionReadEventJson>of(newEvent),
null,
+ null,
null);
Assert.assertEquals(subscriptionJsonWithEvents.getSubscriptionId(), subscription.getId().toString());
Assert.assertNull(subscriptionJsonWithEvents.getNewEvents());
@@ -110,6 +99,7 @@ public class TestSubscriptionJsonWithEvents extends JaxrsTestSuite {
Assert.assertEquals(subscriptionJsonWithEvents.getEvents().size(), 1);
Assert.assertEquals(subscriptionJsonWithEvents.getEvents().get(0).getEffectiveDate(), newEvent.getEffectiveDate());
Assert.assertEquals(subscriptionJsonWithEvents.getEvents().get(0).getEventId(), newEvent.getEventId());
+ Assert.assertEquals(subscriptionJsonWithEvents.getEvents().get(0).getAuditLogs(), auditLogs);
}
@Test(groups = "fast")
@@ -131,7 +121,8 @@ public class TestSubscriptionJsonWithEvents extends JaxrsTestSuite {
final UUID bundleId = UUID.randomUUID();
- final SubscriptionJsonWithEvents subscriptionJsonWithEvents = new SubscriptionJsonWithEvents(bundleId, subscriptionTimeline);
+ final SubscriptionJsonWithEvents subscriptionJsonWithEvents = new SubscriptionJsonWithEvents(bundleId, subscriptionTimeline,
+ null, ImmutableMap.<UUID, List<AuditLog>>of());
Assert.assertEquals(subscriptionJsonWithEvents.getSubscriptionId(), subscriptionTimeline.getId().toString());
Assert.assertNull(subscriptionJsonWithEvents.getNewEvents());
Assert.assertNull(subscriptionJsonWithEvents.getDeletedEvents());
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java b/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java
index 91496c9..189add2 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java
@@ -195,19 +195,52 @@ public class TestAccountTimeline extends TestJaxrsBase {
// Verify audits
final List<AuditLogJson> bundleAuditLogs = timeline.getBundles().get(0).getAuditLogs();
+ final List<AuditLogJson> subscriptionAuditLogs = timeline.getBundles().get(0).getSubscriptions().get(0).getAuditLogs();
+ final List<AuditLogJson> subscriptionEvent1AuditLogs = timeline.getBundles().get(0).getSubscriptions().get(0).getEvents().get(0).getAuditLogs();
+ final List<AuditLogJson> subscriptionEvent2AuditLogs = timeline.getBundles().get(0).getSubscriptions().get(0).getEvents().get(1).getAuditLogs();
if (AuditLevel.NONE.equals(auditLevel)) {
+ // Audits for bundles
Assert.assertEquals(bundleAuditLogs.size(), 0);
+
+ // Audits for subscriptions
+ Assert.assertEquals(subscriptionAuditLogs.size(), 0);
+
+ // Audit for subscription events
+ Assert.assertEquals(subscriptionEvent1AuditLogs.size(), 0);
+ Assert.assertEquals(subscriptionEvent2AuditLogs.size(), 0);
} else if (AuditLevel.MINIMAL.equals(auditLevel)) {
+ // Audits for bundles
Assert.assertEquals(bundleAuditLogs.size(), 1);
verifyAuditLog(bundleAuditLogs.get(0), ChangeType.INSERT, reason, comment, createdBy, startTime, endTime);
+
+ // Audits for subscriptions
+ Assert.assertEquals(subscriptionAuditLogs.size(), 1);
+ verifyAuditLog(subscriptionAuditLogs.get(0), ChangeType.INSERT, reason, comment, createdBy, startTime, endTime);
+
+ // Audit for subscription events
+ Assert.assertEquals(subscriptionEvent1AuditLogs.size(), 1);
+ verifyAuditLog(subscriptionEvent1AuditLogs.get(0), ChangeType.INSERT, reason, comment, createdBy, startTime, endTime);
+ Assert.assertEquals(subscriptionEvent2AuditLogs.size(), 1);
+ verifyAuditLog(subscriptionEvent2AuditLogs.get(0), ChangeType.INSERT, reason, comment, createdBy, startTime, endTime);
} else {
+ // Audits for bundles
Assert.assertEquals(bundleAuditLogs.size(), 3);
verifyAuditLog(bundleAuditLogs.get(0), ChangeType.INSERT, reason, comment, createdBy, startTime, endTime);
verifyAuditLog(bundleAuditLogs.get(1), ChangeType.UPDATE, null, null, TRANSITION, startTime, endTime);
verifyAuditLog(bundleAuditLogs.get(2), ChangeType.UPDATE, null, null, TRANSITION, startTime, endTime);
- }
- // TODO subscription events audit logs
+ // Audits for subscriptions
+ Assert.assertEquals(subscriptionAuditLogs.size(), 3);
+ verifyAuditLog(subscriptionAuditLogs.get(0), ChangeType.INSERT, reason, comment, createdBy, startTime, endTime);
+ verifyAuditLog(subscriptionAuditLogs.get(1), ChangeType.UPDATE, null, null, TRANSITION, startTime, endTime);
+ verifyAuditLog(subscriptionAuditLogs.get(2), ChangeType.UPDATE, null, null, TRANSITION, startTime, endTime);
+
+ // Audit for subscription events
+ Assert.assertEquals(subscriptionEvent1AuditLogs.size(), 1);
+ verifyAuditLog(subscriptionEvent1AuditLogs.get(0), ChangeType.INSERT, reason, comment, createdBy, startTime, endTime);
+ Assert.assertEquals(subscriptionEvent2AuditLogs.size(), 1);
+ verifyAuditLog(subscriptionEvent2AuditLogs.get(0), ChangeType.INSERT, reason, comment, createdBy, startTime, endTime);
+ }
}
}
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
index 71069c8..01d4f46 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -474,7 +474,9 @@ public class TestJaxrsBase extends ServerTestSuiteWithEmbeddedDB {
protected SubscriptionJsonNoEvents createSubscription(final String bundleId, final String productName, final String productCategory, final String billingPeriod, final boolean waitCompletion) throws Exception {
- final SubscriptionJsonNoEvents input = new SubscriptionJsonNoEvents(null, bundleId, null, productName, productCategory, billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME, null, null);
+ final SubscriptionJsonNoEvents input = new SubscriptionJsonNoEvents(null, bundleId, null, productName, productCategory,
+ billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME,
+ null, null, null);
String baseJson = mapper.writeValueAsString(input);
final Map<String, String> queryParams = waitCompletion ? getQueryParamsForCallCompletion("5") : DEFAULT_EMPTY_QUERY;
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestSubscription.java b/server/src/test/java/com/ning/billing/jaxrs/TestSubscription.java
index 9465e90..298370c 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestSubscription.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestSubscription.java
@@ -78,7 +78,7 @@ public class TestSubscription extends TestJaxrsBase {
newProductName,
subscriptionJson.getProductCategory(),
subscriptionJson.getBillingPeriod(),
- subscriptionJson.getPriceList(), null, null);
+ subscriptionJson.getPriceList(), null, null, null);
baseJson = mapper.writeValueAsString(newInput);
final Map<String, String> queryParams = getQueryParamsForCallCompletion(CALL_COMPLETION_TIMEOUT_SEC);
@@ -119,7 +119,7 @@ public class TestSubscription extends TestJaxrsBase {
public void testWithNonExistentSubscription() throws Exception {
final String uri = JaxrsResource.SUBSCRIPTIONS_PATH + "/" + UUID.randomUUID().toString();
final SubscriptionJsonNoEvents subscriptionJson = new SubscriptionJsonNoEvents(null, UUID.randomUUID().toString(), null, "Pistol", ProductCategory.BASE.toString(), BillingPeriod.MONTHLY.toString(),
- PriceListSet.DEFAULT_PRICELIST_NAME, null, null);
+ PriceListSet.DEFAULT_PRICELIST_NAME, null, null, null);
final String baseJson = mapper.writeValueAsString(subscriptionJson);
Response response = doPut(uri, baseJson, DEFAULT_EMPTY_QUERY, DEFAULT_HTTP_TIMEOUT_SEC);
@@ -166,7 +166,8 @@ public class TestSubscription extends TestJaxrsBase {
BillingPeriod.MONTHLY.toString(),
subscriptionJson.getPriceList(),
subscriptionJson.getChargedThroughDate(),
- subscriptionJson.getCancelledDate());
+ subscriptionJson.getCancelledDate(),
+ null);
baseJson = mapper.writeValueAsString(newInput);
final Map<String, String> queryParams = getQueryParamsForCallCompletion(CALL_COMPLETION_TIMEOUT_SEC);
queryParams.put(JaxrsResource.QUERY_POLICY, "immediate");