killbill-memoizeit

jaxrs: add new constructor to AuditLogJson Signed-off-by:

7/30/2012 3:42:16 PM

Details

diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AuditLogJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AuditLogJson.java
index fb587f4..333a7d4 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AuditLogJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AuditLogJson.java
@@ -18,6 +18,8 @@ package com.ning.billing.jaxrs.json;
 
 import org.joda.time.DateTime;
 
+import com.ning.billing.util.audit.AuditLog;
+
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
@@ -45,6 +47,11 @@ public class AuditLogJson {
         this.userToken = userToken;
     }
 
+    public AuditLogJson(final AuditLog auditLog) {
+        this(auditLog.getChangeType().toString(), auditLog.getCreatedDate(), auditLog.getUserName(), auditLog.getReasonCode(),
+             auditLog.getComment(), auditLog.getUserToken());
+    }
+
     public String getChangeType() {
         return changeType;
     }
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestAuditLogJson.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestAuditLogJson.java
index d313c2d..3c7e31c 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestAuditLogJson.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestAuditLogJson.java
@@ -23,8 +23,18 @@ import org.testng.Assert;
 import org.testng.annotations.Test;
 
 import com.ning.billing.jaxrs.JaxrsTestSuite;
+import com.ning.billing.util.ChangeType;
+import com.ning.billing.util.audit.AuditLog;
+import com.ning.billing.util.audit.DefaultAuditLog;
+import com.ning.billing.util.callcontext.CallContext;
+import com.ning.billing.util.callcontext.CallOrigin;
+import com.ning.billing.util.callcontext.DefaultCallContext;
+import com.ning.billing.util.callcontext.UserType;
 import com.ning.billing.util.clock.Clock;
+import com.ning.billing.util.clock.ClockMock;
 import com.ning.billing.util.clock.DefaultClock;
+import com.ning.billing.util.dao.EntityAudit;
+import com.ning.billing.util.dao.TableName;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
@@ -69,4 +79,29 @@ public class TestAuditLogJson extends JaxrsTestSuite {
         final AuditLogJson fromJson = mapper.readValue(asJson, AuditLogJson.class);
         Assert.assertEquals(fromJson, auditLogJson);
     }
+
+    @Test(groups = "fast")
+    public void testConstructor() throws Exception {
+        final TableName tableName = TableName.ACCOUNT_EMAIL_HISTORY;
+        final long recordId = Long.MAX_VALUE;
+        final ChangeType changeType = ChangeType.DELETE;
+        final EntityAudit entityAudit = new EntityAudit(tableName, recordId, changeType);
+
+        final String userName = UUID.randomUUID().toString();
+        final CallOrigin callOrigin = CallOrigin.EXTERNAL;
+        final UserType userType = UserType.CUSTOMER;
+        final UUID userToken = UUID.randomUUID();
+        final ClockMock clock = new ClockMock();
+        final CallContext callContext = new DefaultCallContext(userName, callOrigin, userType, userToken, clock);
+
+        final AuditLog auditLog = new DefaultAuditLog(entityAudit, callContext);
+
+        final AuditLogJson auditLogJson = new AuditLogJson(auditLog);
+        Assert.assertEquals(auditLogJson.getChangeType(), changeType.toString());
+        Assert.assertNotNull(auditLogJson.getChangeDate());
+        Assert.assertEquals(auditLogJson.getChangedBy(), userName);
+        Assert.assertNull(auditLogJson.getReasonCode());
+        Assert.assertNull(auditLogJson.getComments());
+        Assert.assertEquals(auditLogJson.getUserToken(), userToken.toString());
+    }
 }