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());
+ }
}