killbill-aplcache

jaxrs: add test for BundleJsonNoSubscriptions Signed-off-by:

6/8/2012 1:18:39 PM

Details

jaxrs/pom.xml 5(+5 -0)

diff --git a/jaxrs/pom.xml b/jaxrs/pom.xml
index da838a5..e0e04cb 100644
--- a/jaxrs/pom.xml
+++ b/jaxrs/pom.xml
@@ -67,6 +67,11 @@
             <artifactId>slf4j-log4j12</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-all</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleJsonNoSubscriptions.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleJsonNoSubscriptions.java
index 1c0fe54..09d7fe2 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleJsonNoSubscriptions.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleJsonNoSubscriptions.java
@@ -16,6 +16,7 @@
 
 package com.ning.billing.jaxrs.json;
 
+import javax.annotation.Nullable;
 import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonCreator;
@@ -31,7 +32,7 @@ public class BundleJsonNoSubscriptions extends BundleJsonSimple {
     public BundleJsonNoSubscriptions(@JsonProperty("bundleId") final String bundleId,
                                      @JsonProperty("accountId") final String accountId,
                                      @JsonProperty("externalKey") final String externalKey,
-                                     @JsonProperty("subscriptions") final List<SubscriptionJsonWithEvents> subscriptions) {
+                                     @JsonProperty("subscriptions") @Nullable final List<SubscriptionJsonWithEvents> subscriptions) {
         super(bundleId, externalKey);
         this.accountId = accountId;
     }
@@ -40,7 +41,6 @@ public class BundleJsonNoSubscriptions extends BundleJsonSimple {
         return accountId;
     }
 
-
     public BundleJsonNoSubscriptions(final SubscriptionBundle bundle) {
         super(bundle.getId().toString(), bundle.getKey());
         this.accountId = bundle.getAccountId().toString();
@@ -107,6 +107,4 @@ public class BundleJsonNoSubscriptions extends BundleJsonSimple {
         }
         return true;
     }
-
-
 }
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleJsonNoSubscriptions.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleJsonNoSubscriptions.java
new file mode 100644
index 0000000..c5a40cf
--- /dev/null
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleJsonNoSubscriptions.java
@@ -0,0 +1,49 @@
+package com.ning.billing.jaxrs.json;
+
+import java.util.UUID;
+
+import org.mockito.Mockito;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ning.billing.entitlement.api.user.SubscriptionBundle;
+
+public class TestBundleJsonNoSubscriptions {
+    private static final ObjectMapper mapper = new ObjectMapper();
+
+    @Test(groups = "fast")
+    public void testJson() throws Exception {
+        final String bundleId = UUID.randomUUID().toString();
+        final String accountId = UUID.randomUUID().toString();
+        final String externalKey = UUID.randomUUID().toString();
+        final BundleJsonNoSubscriptions bundleJsonNoSubscriptions = new BundleJsonNoSubscriptions(bundleId, accountId, externalKey, null);
+        Assert.assertEquals(bundleJsonNoSubscriptions.getBundleId(), bundleId);
+        Assert.assertEquals(bundleJsonNoSubscriptions.getAccountId(), accountId);
+        Assert.assertEquals(bundleJsonNoSubscriptions.getExternalKey(), externalKey);
+
+        final String asJson = mapper.writeValueAsString(bundleJsonNoSubscriptions);
+        Assert.assertEquals(asJson, "{\"bundleId\":\"" + bundleJsonNoSubscriptions.getBundleId() + "\"," +
+                "\"accountId\":\"" + bundleJsonNoSubscriptions.getAccountId() + "\"," +
+                "\"externalKey\":\"" + bundleJsonNoSubscriptions.getExternalKey() + "\"}");
+
+        final BundleJsonNoSubscriptions fromJson = mapper.readValue(asJson, BundleJsonNoSubscriptions.class);
+        Assert.assertEquals(fromJson, bundleJsonNoSubscriptions);
+    }
+
+    @Test(groups = "fast")
+    public void testFromSubscriptionBundle() throws Exception {
+        final SubscriptionBundle bundle = Mockito.mock(SubscriptionBundle.class);
+        final UUID bundleId = UUID.randomUUID();
+        final String externalKey = UUID.randomUUID().toString();
+        final UUID accountId = UUID.randomUUID();
+        Mockito.when(bundle.getId()).thenReturn(bundleId);
+        Mockito.when(bundle.getKey()).thenReturn(externalKey);
+        Mockito.when(bundle.getAccountId()).thenReturn(accountId);
+
+        final BundleJsonNoSubscriptions bundleJsonNoSubscriptions = new BundleJsonNoSubscriptions(bundle);
+        Assert.assertEquals(bundleJsonNoSubscriptions.getBundleId(), bundleId.toString());
+        Assert.assertEquals(bundleJsonNoSubscriptions.getExternalKey(), externalKey);
+        Assert.assertEquals(bundleJsonNoSubscriptions.getAccountId(), accountId.toString());
+    }
+}