killbill-aplcache

Details

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 df568ba..8b42de4 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
@@ -1,6 +1,7 @@
 package com.ning.billing.jaxrs.json;
 
 import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Nullable;
 
@@ -13,7 +14,15 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 
 public class SubscriptionJsonNoEvents extends EntitlementJsonNoEvents {
 
-    private final String chargedThroughDate;
+
+    private final LocalDate chargedThroughDate;
+
+    private final LocalDate billingStartDate;
+    private final LocalDate billingEndDate;
+    private final Integer bcd;
+    private final String billingState;
+    //private final Map<String, String> currentStatesForServices;
+
 
     public SubscriptionJsonNoEvents(@JsonProperty("accountId") @Nullable final String accountId,
                                     @JsonProperty("bundleId") @Nullable final String bundleId,
@@ -26,9 +35,17 @@ public class SubscriptionJsonNoEvents extends EntitlementJsonNoEvents {
                                     @JsonProperty("priceList") @Nullable final String priceList,
                                     @JsonProperty("cancelledDate") @Nullable final LocalDate cancelledDate,
                                     @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs,
-                                    @JsonProperty("chargedThroughDate") @Nullable final String chargedThroughDate) {
+                                    @JsonProperty("chargedThroughDate") @Nullable final LocalDate chargedThroughDate,
+                                    @JsonProperty("billingStartDate") @Nullable final LocalDate billingStartDate,
+                                    @JsonProperty("billingEndDate") @Nullable final LocalDate billingEndDate,
+                                    @JsonProperty("bcd") @Nullable final Integer bcd,
+                                    @JsonProperty("billingState") @Nullable final String billingState) {
         super(accountId, bundleId, entitlementId, externalKey, startDate, productName, productCategory, billingPeriod, priceList, cancelledDate, auditLogs);
         this.chargedThroughDate = chargedThroughDate;
+        this.billingStartDate = billingStartDate;
+        this.billingEndDate = billingEndDate;
+        this.bcd = bcd;
+        this.billingState = billingState;
     }
 
     public SubscriptionJsonNoEvents(final Subscription s,
@@ -44,10 +61,30 @@ public class SubscriptionJsonNoEvents extends EntitlementJsonNoEvents {
              s.getPriceList() != null ? s.getPriceList().getName() : null,
              s.getEffectiveEndDate(),
              toAuditLogJson(auditLogs),
-             s.getChargedThroughDate() != null ? s.getChargedThroughDate().toString() : null);
+             s.getChargedThroughDate() != null ? s.getChargedThroughDate() : null,
+             s.getBillingStartDate(),
+             s.getBillingEndDate(),
+             s.getBCD(),
+             s.getBillingState() != null ? s.getBillingState().name() : null);
     }
 
-    public String getChargedThroughDate() {
+    public LocalDate getChargedThroughDate() {
         return chargedThroughDate;
     }
+
+    public LocalDate getBillingStartDate() {
+        return billingStartDate;
+    }
+
+    public LocalDate getBillingEndDate() {
+        return billingEndDate;
+    }
+
+    public Integer getBcd() {
+        return bcd;
+    }
+
+    public String getBillingState() {
+        return billingState;
+    }
 }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/OverdueResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/OverdueResource.java
index 2d5dc7b..d323964 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/OverdueResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/OverdueResource.java
@@ -36,9 +36,6 @@ import com.ning.billing.overdue.OverdueApiException;
 import com.ning.billing.overdue.OverdueState;
 import com.ning.billing.overdue.OverdueUserApi;
 import com.ning.billing.overdue.config.api.OverdueException;
-import com.ning.billing.subscription.api.SubscriptionBase;
-import com.ning.billing.subscription.api.user.SubscriptionBaseBundle;
-import com.ning.billing.subscription.api.user.SubscriptionBaseApiException;
 import com.ning.billing.util.api.AuditUserApi;
 import com.ning.billing.util.api.CustomFieldUserApi;
 import com.ning.billing.util.api.TagUserApi;
@@ -77,10 +74,8 @@ public class OverdueResource extends JaxRsResourceBase {
         final TenantContext tenantContext = context.createContext(request);
 
         final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), tenantContext);
-        //final OverdueState<Account> overdueState = null;  STEPH_ENT overdueApi.getOverdueStateFor(account, tenantContext);
+        final OverdueState overdueState = overdueApi.getOverdueStateFor(account, tenantContext);
 
-        //return Response.status(Status.OK).entity(new OverdueStateJson(overdueState)).build();
-        return null;
+        return Response.status(Status.OK).entity(new OverdueStateJson(overdueState)).build();
     }
-
 }
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 aa2626d..7cc19e3 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
@@ -48,7 +48,6 @@ public class SubscriptionResource extends JaxRsResourceBase {
                                     @javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException {
         final UUID uuid = UUID.fromString(subscriptionId);
         final Subscription subscription = subscriptionApi.getSubscriptionForEntitlementId(uuid, context.createContext(request));
-        // STEPH_ENT missing info in SubscriptionJsonNoEvents (billing dates,...)
         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 c26f967..dc08b57 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
@@ -21,6 +21,7 @@ import java.util.UUID;
 
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
+import org.joda.time.LocalDate;
 import org.mockito.Mockito;
 import org.testng.Assert;
 import org.testng.annotations.Test;
@@ -29,6 +30,7 @@ import com.ning.billing.catalog.api.BillingPeriod;
 import com.ning.billing.catalog.api.PhaseType;
 import com.ning.billing.catalog.api.PlanPhaseSpecifier;
 import com.ning.billing.catalog.api.ProductCategory;
+import com.ning.billing.jaxrs.json.EntitlementJsonWithEvents.SubscriptionReadEventJson;
 import com.ning.billing.subscription.api.SubscriptionBaseTransitionType;
 import com.ning.billing.subscription.api.timeline.BundleBaseTimeline;
 import com.ning.billing.subscription.api.timeline.SubscriptionBaseTimeline;
@@ -45,25 +47,15 @@ public class TestBundleJsonWithSubscriptions extends JaxrsTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testJson() throws Exception {
-        final SubscriptionBaseTimeline.ExistingEvent event = Mockito.mock(SubscriptionBaseTimeline.ExistingEvent.class);
-        final DateTime effectiveDate = DefaultClock.toUTCDateTime(new DateTime(DateTimeZone.UTC));
-        final UUID eventId = UUID.randomUUID();
-        final PlanPhaseSpecifier planPhaseSpecifier = new PlanPhaseSpecifier(UUID.randomUUID().toString(), ProductCategory.BASE,
-                                                                             BillingPeriod.NO_BILLING_PERIOD, UUID.randomUUID().toString(),
-                                                                             PhaseType.EVERGREEN);
-        Mockito.when(event.getEffectiveDate()).thenReturn(effectiveDate);
-        Mockito.when(event.getEventId()).thenReturn(eventId);
-        Mockito.when(event.getSubscriptionTransitionType()).thenReturn(SubscriptionBaseTransitionType.CREATE);
-        Mockito.when(event.getPlanPhaseSpecifier()).thenReturn(planPhaseSpecifier);
-
-        final SubscriptionBaseTimeline subscriptionTimeline = Mockito.mock(SubscriptionBaseTimeline.class);
-        Mockito.when(subscriptionTimeline.getId()).thenReturn(UUID.randomUUID());
-        Mockito.when(subscriptionTimeline.getExistingEvents()).thenReturn(ImmutableList.<SubscriptionBaseTimeline.ExistingEvent>of(event));
 
+        final String someUUID = UUID.randomUUID().toString();
         final UUID bundleId = UUID.randomUUID();
         final String externalKey = UUID.randomUUID().toString();
-        final EntitlementJsonWithEvents subscription = null; // STEPH_ENT new EntitlementJsonWithEvents(bundleId, subscriptionTimeline, null, ImmutableMap.<UUID, List<AuditLog>>of());
         final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
+
+        SubscriptionReadEventJson event = new SubscriptionReadEventJson(someUUID, BillingPeriod.NO_BILLING_PERIOD.toString(), new LocalDate(), new LocalDate(), "product", "priceList", "eventType", "phase", null);
+        final EntitlementJsonWithEvents subscription = new EntitlementJsonWithEvents(someUUID, someUUID, someUUID, externalKey, ImmutableList.<SubscriptionReadEventJson>of(event), null, null, auditLogs);
+
         final BundleJsonWithSubscriptions bundleJsonWithSubscriptions = new BundleJsonWithSubscriptions(bundleId.toString(), externalKey, ImmutableList.<EntitlementJsonWithEvents>of(subscription), auditLogs);
         Assert.assertEquals(bundleJsonWithSubscriptions.getBundleId(), bundleId.toString());
         Assert.assertEquals(bundleJsonWithSubscriptions.getExternalKey(), externalKey);
@@ -74,61 +66,4 @@ public class TestBundleJsonWithSubscriptions extends JaxrsTestSuiteNoDB {
         final BundleJsonWithSubscriptions fromJson = mapper.readValue(asJson, BundleJsonWithSubscriptions.class);
         Assert.assertEquals(fromJson, bundleJsonWithSubscriptions);
     }
-
-    @Test(groups = "fast")
-    public void testFromBundleTimeline() throws Exception {
-        final SubscriptionBaseTimeline.ExistingEvent event = Mockito.mock(SubscriptionBaseTimeline.ExistingEvent.class);
-        final DateTime effectiveDate = DefaultClock.toUTCDateTime(new DateTime(DateTimeZone.UTC));
-        final UUID eventId = UUID.randomUUID();
-        final PlanPhaseSpecifier planPhaseSpecifier = new PlanPhaseSpecifier(UUID.randomUUID().toString(), ProductCategory.BASE,
-                                                                             BillingPeriod.NO_BILLING_PERIOD, UUID.randomUUID().toString(),
-                                                                             PhaseType.EVERGREEN);
-        Mockito.when(event.getEffectiveDate()).thenReturn(effectiveDate);
-        Mockito.when(event.getEventId()).thenReturn(eventId);
-        Mockito.when(event.getSubscriptionTransitionType()).thenReturn(SubscriptionBaseTransitionType.CREATE);
-        Mockito.when(event.getPlanPhaseSpecifier()).thenReturn(planPhaseSpecifier);
-
-        final SubscriptionBaseTimeline subscriptionTimeline = Mockito.mock(SubscriptionBaseTimeline.class);
-        Mockito.when(subscriptionTimeline.getId()).thenReturn(UUID.randomUUID());
-        Mockito.when(subscriptionTimeline.getExistingEvents()).thenReturn(ImmutableList.<SubscriptionBaseTimeline.ExistingEvent>of(event));
-
-        final BundleBaseTimeline bundleBaseTimeline = Mockito.mock(BundleBaseTimeline.class);
-        final UUID bundleId = UUID.randomUUID();
-        final String externalKey = UUID.randomUUID().toString();
-        Mockito.when(bundleBaseTimeline.getId()).thenReturn(bundleId);
-        Mockito.when(bundleBaseTimeline.getExternalKey()).thenReturn(externalKey);
-        Mockito.when(bundleBaseTimeline.getSubscriptions()).thenReturn(ImmutableList.<SubscriptionBaseTimeline>of(subscriptionTimeline));
-
-        final BundleJsonWithSubscriptions bundleJsonWithSubscriptions = null; /* STEPH_ENT new BundleJsonWithSubscriptions(bundleBaseTimeline, 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);
-        final EntitlementJsonWithEvents events = bundleJsonWithSubscriptions.getSubscriptions().get(0);
-        Assert.assertNull(events.getDeletedEvents());
-        Assert.assertNull(events.getNewEvents());
-        Assert.assertEquals(events.getEvents().size(), 1);
-        // Note - ms are truncated
-        Assert.assertEquals(events.getEvents().get(0).getEffectiveDate(), DefaultClock.toUTCDateTime(effectiveDate));
-        Assert.assertEquals(events.getEvents().get(0).getEventId(), eventId.toString());
-        Assert.assertNull(bundleJsonWithSubscriptions.getAuditLogs());
-    }
-
-    @Test(groups = "fast")
-    public void testFromSubscriptionBundle() throws Exception {
-        final BundleBaseTimeline bundle = Mockito.mock(BundleBaseTimeline.class);
-        final UUID bundleId = UUID.randomUUID();
-        final String externalKey = UUID.randomUUID().toString();
-        Mockito.when(bundle.getId()).thenReturn(bundleId);
-        Mockito.when(bundle.getExternalKey()).thenReturn(externalKey);
-
-        final BundleJsonWithSubscriptions bundleJsonWithSubscriptions = null; /* 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);
-        Assert.assertNull(bundleJsonWithSubscriptions.getAuditLogs());
-    }
 }
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 45837c1..b5afb41 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,11 +17,11 @@
 package com.ning.billing.jaxrs.json;
 
 import java.math.BigDecimal;
+import java.util.List;
 import java.util.UUID;
 
 import org.joda.time.DateTime;
 import org.joda.time.LocalDate;
-import org.mockito.Mockito;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
@@ -30,11 +30,13 @@ import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.catalog.api.PhaseType;
 import com.ning.billing.catalog.api.PlanPhaseSpecifier;
 import com.ning.billing.catalog.api.ProductCategory;
-import com.ning.billing.subscription.api.SubscriptionBaseTransitionType;
-import com.ning.billing.subscription.api.timeline.SubscriptionBaseTimeline;
+import com.ning.billing.entitlement.api.Subscription;
+import com.ning.billing.entitlement.api.SubscriptionBundleTimeline.SubscriptionEvent;
 import com.ning.billing.jaxrs.JaxrsTestSuiteNoDB;
+import com.ning.billing.util.audit.AuditLog;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 
 public class TestBundleTimelineJson extends JaxrsTestSuiteNoDB {
 
@@ -60,26 +62,21 @@ public class TestBundleTimelineJson extends JaxrsTestSuiteNoDB {
     }
 
     private BundleJsonWithSubscriptions createBundleWithSubscriptions() {
-        final SubscriptionBaseTimeline.ExistingEvent event = Mockito.mock(SubscriptionBaseTimeline.ExistingEvent.class);
         final DateTime effectiveDate = clock.getUTCNow();
         final UUID eventId = UUID.randomUUID();
         final PlanPhaseSpecifier planPhaseSpecifier = new PlanPhaseSpecifier(UUID.randomUUID().toString(), ProductCategory.BASE,
                                                                              BillingPeriod.NO_BILLING_PERIOD, UUID.randomUUID().toString(),
                                                                              PhaseType.EVERGREEN);
-        Mockito.when(event.getEffectiveDate()).thenReturn(effectiveDate);
-        Mockito.when(event.getEventId()).thenReturn(eventId);
-        Mockito.when(event.getSubscriptionTransitionType()).thenReturn(SubscriptionBaseTransitionType.CREATE);
-        Mockito.when(event.getPlanPhaseSpecifier()).thenReturn(planPhaseSpecifier);
-
-        final SubscriptionBaseTimeline subscriptionTimeline = Mockito.mock(SubscriptionBaseTimeline.class);
-        Mockito.when(subscriptionTimeline.getId()).thenReturn(UUID.randomUUID());
-        Mockito.when(subscriptionTimeline.getExistingEvents()).thenReturn(ImmutableList.<SubscriptionBaseTimeline.ExistingEvent>of(event));
-
+        final UUID accountId = UUID.randomUUID();
         final UUID bundleId = UUID.randomUUID();
+        final UUID entitlementId = UUID.randomUUID();
         final String externalKey = UUID.randomUUID().toString();
-        final EntitlementJsonWithEvents subscription = null; // STEPH_ENT new EntitlementJsonWithEvents(bundleId, subscriptionTimeline, null, ImmutableMap.<UUID, List<AuditLog>>of());
 
-        return new BundleJsonWithSubscriptions(bundleId.toString(), externalKey, ImmutableList.<EntitlementJsonWithEvents>of(subscription), null);
+
+        // STEPH_ENT once DefaultSubscription exists...
+        final Subscription subscription = null;
+        final EntitlementJsonWithEvents entitlementJsonWithEvents = new EntitlementJsonWithEvents(subscription, ImmutableList.<SubscriptionEvent>of(), ImmutableList.<AuditLog>of(), ImmutableMap.<UUID, List<AuditLog>>of());
+        return new BundleJsonWithSubscriptions(bundleId.toString(), externalKey, ImmutableList.<EntitlementJsonWithEvents>of(entitlementJsonWithEvents), null);
     }
 
     private InvoiceJsonSimple createInvoice() {
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestEntitlementJsonWithEvents.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestEntitlementJsonWithEvents.java
new file mode 100644
index 0000000..9877a5c
--- /dev/null
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestEntitlementJsonWithEvents.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2010-2013 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at:
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.jaxrs.json;
+
+import java.util.List;
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import com.ning.billing.catalog.api.BillingPeriod;
+import com.ning.billing.catalog.api.PhaseType;
+import com.ning.billing.clock.DefaultClock;
+import com.ning.billing.entitlement.api.SubscriptionBundleTimeline.SubscriptionEvent;
+import com.ning.billing.jaxrs.JaxrsTestSuiteNoDB;
+import com.ning.billing.jaxrs.json.EntitlementJsonWithEvents.SubscriptionReadEventJson;
+import com.ning.billing.subscription.api.SubscriptionBaseTransitionType;
+
+import com.google.common.collect.ImmutableList;
+
+import static com.ning.billing.jaxrs.JaxrsTestUtils.createAuditLogsJson;
+
+public class TestEntitlementJsonWithEvents extends JaxrsTestSuiteNoDB {
+
+    @Test(groups = "fast")
+    public void testJson() throws Exception {
+        final String accountId = UUID.randomUUID().toString();
+        final String bundleId = UUID.randomUUID().toString();
+        final String entitlementId = UUID.randomUUID().toString();
+        final String externalKey = UUID.randomUUID().toString();
+        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(clock.getUTCNow());
+        final EntitlementJsonWithEvents.SubscriptionReadEventJson newEvent = new EntitlementJsonWithEvents.SubscriptionReadEventJson(eventId.toString(),
+                                                                                                                                     BillingPeriod.NO_BILLING_PERIOD.toString(),
+                                                                                                                                     requestedDate.toLocalDate(),
+                                                                                                                                     effectiveDate.toLocalDate(),
+                                                                                                                                     UUID.randomUUID().toString(),
+                                                                                                                                     UUID.randomUUID().toString(),
+                                                                                                                                     SubscriptionBaseTransitionType.CREATE.toString(),
+                                                                                                                                     PhaseType.DISCOUNT.toString(),
+                                                                                                                                     auditLogs);
+        final SubscriptionEvent event = null;
+        final EntitlementJsonWithEvents entitlementJsonWithEvents = new EntitlementJsonWithEvents(accountId, bundleId, entitlementId, externalKey, ImmutableList.<SubscriptionReadEventJson>of(newEvent), null, null, auditLogs);
+
+
+        final String asJson = mapper.writeValueAsString(entitlementJsonWithEvents);
+
+        final EntitlementJsonWithEvents fromJson = mapper.readValue(asJson, EntitlementJsonWithEvents.class);
+        Assert.assertEquals(fromJson, entitlementJsonWithEvents);
+    }
+}
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 379c935..f52cd7e 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
@@ -21,6 +21,7 @@ import java.util.UUID;
 
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
+import org.joda.time.LocalDate;
 import org.mockito.Mockito;
 import org.testng.Assert;
 import org.testng.annotations.Test;
@@ -41,78 +42,38 @@ public class TestSubscriptionJsonNoEvents extends JaxrsTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testJson() throws Exception {
-        final String subscriptionId = UUID.randomUUID().toString();
+        final String accountId = UUID.randomUUID().toString();
+        final String entitlementId = UUID.randomUUID().toString();
         final String bundleId = UUID.randomUUID().toString();
-        final DateTime startDate = new DateTime(DateTimeZone.UTC);
+        final String externalKey = "ecternalKey";
+        final LocalDate startDate = new LocalDate();
+        final LocalDate cancelDate = new LocalDate();
+        final LocalDate billingStartDate = new LocalDate();
+        final LocalDate billingEndDate = new LocalDate();
         final String productName = UUID.randomUUID().toString();
         final String productCategory = UUID.randomUUID().toString();
         final String billingPeriod = UUID.randomUUID().toString();
         final String priceList = UUID.randomUUID().toString();
-        final DateTime chargedThroughDate = new DateTime(DateTimeZone.UTC);
+        final LocalDate chargedThroughDate = new LocalDate();
         final DateTime endDate = new DateTime(DateTimeZone.UTC);
         final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
-        final EntitlementJsonNoEvents subscriptionJsonNoEvents = null; /* STEPH_ENT new EntitlementJsonNoEvents(subscriptionId, bundleId, startDate,
-                                                                                               productName, productCategory, billingPeriod,
-                                                                                               priceList, chargedThroughDate, endDate,
-                                                                                               auditLogs); */
-        Assert.assertEquals(subscriptionJsonNoEvents.getEntitlementId(), subscriptionId);
+        final SubscriptionJsonNoEvents subscriptionJsonNoEvents = new SubscriptionJsonNoEvents(accountId, bundleId, entitlementId, externalKey, startDate, productName,
+                                                                                               productCategory, billingPeriod, priceList, cancelDate, auditLogs, chargedThroughDate,
+                                                                                               billingStartDate, billingEndDate, new Integer(1), "OK");
+
+        Assert.assertEquals(subscriptionJsonNoEvents.getEntitlementId(), entitlementId);
         Assert.assertEquals(subscriptionJsonNoEvents.getBundleId(), bundleId);
         Assert.assertEquals(subscriptionJsonNoEvents.getStartDate(), startDate);
         Assert.assertEquals(subscriptionJsonNoEvents.getProductName(), productName);
         Assert.assertEquals(subscriptionJsonNoEvents.getProductCategory(), productCategory);
         Assert.assertEquals(subscriptionJsonNoEvents.getBillingPeriod(), billingPeriod);
         Assert.assertEquals(subscriptionJsonNoEvents.getPriceList(), priceList);
-        // STEPH_ENT
-        //Assert.assertEquals(subscriptionJsonNoEvents.getChargedThroughDate(), chargedThroughDate);
+        Assert.assertEquals(subscriptionJsonNoEvents.getChargedThroughDate(), chargedThroughDate);
         Assert.assertEquals(subscriptionJsonNoEvents.getAuditLogs(), auditLogs);
 
         final String asJson = mapper.writeValueAsString(subscriptionJsonNoEvents);
 
-        final EntitlementJsonNoEvents fromJson = mapper.readValue(asJson, EntitlementJsonNoEvents.class);
+        final SubscriptionJsonNoEvents fromJson = mapper.readValue(asJson, SubscriptionJsonNoEvents.class);
         Assert.assertEquals(fromJson, subscriptionJsonNoEvents);
     }
-
-    @Test(groups = "fast")
-    public void testFromSubscriptionSubscription() throws Exception {
-        final Product product = Mockito.mock(Product.class);
-        Mockito.when(product.getName()).thenReturn(UUID.randomUUID().toString());
-        Mockito.when(product.getCategory()).thenReturn(ProductCategory.STANDALONE);
-
-        final InternationalPrice price = Mockito.mock(InternationalPrice.class);
-        final PlanPhase planPhase = Mockito.mock(PlanPhase.class);
-        Mockito.when(planPhase.getRecurringPrice()).thenReturn(price);
-
-        final Plan plan = Mockito.mock(Plan.class);
-        Mockito.when(plan.getProduct()).thenReturn(product);
-        Mockito.when(plan.getName()).thenReturn(UUID.randomUUID().toString());
-        Mockito.when(plan.getBillingPeriod()).thenReturn(BillingPeriod.QUARTERLY);
-        Mockito.when(plan.getFinalPhase()).thenReturn(planPhase);
-
-        final PriceList priceList = Mockito.mock(PriceList.class);
-
-        final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
-        Mockito.when(subscription.getId()).thenReturn(UUID.randomUUID());
-        Mockito.when(subscription.getBundleId()).thenReturn(UUID.randomUUID());
-        Mockito.when(subscription.getStartDate()).thenReturn(new DateTime(DateTimeZone.UTC));
-        Mockito.when(subscription.getCurrentPlan()).thenReturn(plan);
-        Mockito.when(subscription.getCurrentPriceList()).thenReturn(priceList);
-        Mockito.when(subscription.getChargedThroughDate()).thenReturn(new DateTime(DateTimeZone.UTC));
-        final String productName = product.getName();
-        Mockito.when(subscription.getLastActiveProductName()).thenReturn(productName);
-        final String productCategory = plan.getProduct().getCategory().toString();
-        Mockito.when(subscription.getLastActiveCategoryName()).thenReturn(productCategory);
-        final String billingPeriod = plan.getBillingPeriod().toString();
-        Mockito.when(subscription.getLastActiveBillingPeriod()).thenReturn(billingPeriod);
-
-        final EntitlementJsonNoEvents subscriptionJsonNoEvents = null; // STEPH_ENT new EntitlementJsonNoEvents(subscription, null);
-        Assert.assertEquals(subscriptionJsonNoEvents.getEntitlementId(), subscription.getId().toString());
-        Assert.assertEquals(subscriptionJsonNoEvents.getStartDate(), subscription.getStartDate());
-        Assert.assertEquals(subscriptionJsonNoEvents.getBundleId(), subscription.getBundleId().toString());
-        Assert.assertEquals(subscriptionJsonNoEvents.getProductName(), subscription.getCurrentPlan().getProduct().getName());
-        Assert.assertEquals(subscriptionJsonNoEvents.getProductCategory(), subscription.getCurrentPlan().getProduct().getCategory().toString());
-        Assert.assertEquals(subscriptionJsonNoEvents.getBillingPeriod(), subscription.getCurrentPlan().getBillingPeriod().toString());
-        // STEPH_ENT
-        //Assert.assertEquals(subscriptionJsonNoEvents.getChargedThroughDate(), subscription.getChargedThroughDate());
-        Assert.assertNull(subscriptionJsonNoEvents.getAuditLogs());
-    }
 }