Details
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockSubscription.java b/analytics/src/test/java/com/ning/billing/analytics/MockSubscription.java
index 1a17c2d..a756447 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockSubscription.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockSubscription.java
@@ -126,4 +126,9 @@ public class MockSubscription implements ISubscription
{
return null;
}
+
+ @Override
+ public DateTime getEndDate() {
+ return null;
+ }
}
diff --git a/api/src/main/java/com/ning/billing/entitlement/api/user/ISubscription.java b/api/src/main/java/com/ning/billing/entitlement/api/user/ISubscription.java
index 574de30..922e8f1 100644
--- a/api/src/main/java/com/ning/billing/entitlement/api/user/ISubscription.java
+++ b/api/src/main/java/com/ning/billing/entitlement/api/user/ISubscription.java
@@ -59,6 +59,8 @@ public interface ISubscription extends IPrivateFields {
public DateTime getStartDate();
+ public DateTime getEndDate();
+
public IPlan getCurrentPlan();
public String getCurrentPriceList();
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/Subscription.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/Subscription.java
index c266f61..b1c0b82 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/Subscription.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/Subscription.java
@@ -211,6 +211,16 @@ public class Subscription extends PrivateFields implements ISubscription {
@Override
+ public DateTime getEndDate() {
+ ISubscriptionTransition latestTransition = getLatestTranstion();
+ if (latestTransition.getNextState() == SubscriptionState.CANCELLED) {
+ return latestTransition.getEffectiveTransitionTime();
+ }
+ return null;
+ }
+
+
+ @Override
public void cancel(DateTime requestedDate, boolean eot) throws EntitlementUserApiException {
SubscriptionState currentState = getState();