use of org.killbill.billing.util.dao.EntityAudit in project killbill by killbill.
the class TestDefaultAuditLog method testGetters.
@Test(groups = "fast")
public void testGetters() 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, null);
final UUID tenantId = UUID.randomUUID();
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(tenantId, userName, callOrigin, userType, userToken, clock);
final AuditLog auditLog = new DefaultAuditLog(new AuditLogModelDao(entityAudit, callContext), ObjectType.ACCOUNT_EMAIL, UUID.randomUUID());
Assert.assertEquals(auditLog.getChangeType(), changeType);
Assert.assertNull(auditLog.getComment());
Assert.assertNotNull(auditLog.getCreatedDate());
Assert.assertNull(auditLog.getReasonCode());
Assert.assertEquals(auditLog.getUserName(), userName);
Assert.assertEquals(auditLog.getUserToken(), userToken.toString());
}
use of org.killbill.billing.util.dao.EntityAudit in project killbill by killbill.
the class TestAuditLogJson method testConstructor.
@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, null);
final AuditLog auditLog = new DefaultAuditLog(new AuditLogModelDao(entityAudit, callContext), ObjectType.ACCOUNT_EMAIL, UUID.randomUUID());
final AuditLogJson auditLogJson = new AuditLogJson(auditLog);
Assert.assertEquals(auditLogJson.getChangeType(), changeType.toString());
Assert.assertNotNull(auditLogJson.getChangeDate());
Assert.assertEquals(auditLogJson.getChangedBy(), callContext.getUserName());
Assert.assertEquals(auditLogJson.getReasonCode(), callContext.getReasonCode());
Assert.assertEquals(auditLogJson.getComments(), callContext.getComments());
Assert.assertEquals(auditLogJson.getUserToken(), callContext.getUserToken().toString());
}
use of org.killbill.billing.util.dao.EntityAudit in project killbill by killbill.
the class EntitySqlDaoWrapperInvocationHandler method insertAudits.
private void insertAudits(final TableName tableName, final Long entityRecordId, final Long historyRecordId, final ChangeType changeType, final InternalCallContext contextMaybeWithoutAccountRecordId) {
final TableName destinationTableName = MoreObjects.firstNonNull(tableName.getHistoryTableName(), tableName);
final EntityAudit audit = new EntityAudit(destinationTableName, historyRecordId, changeType, clock.getUTCNow());
final InternalCallContext context;
// Populate the account record id when creating the account record
if (TableName.ACCOUNT.equals(tableName) && ChangeType.INSERT.equals(changeType)) {
context = internalCallContextFactory.createInternalCallContext(entityRecordId, contextMaybeWithoutAccountRecordId);
} else {
context = contextMaybeWithoutAccountRecordId;
}
sqlDao.insertAuditFromTransaction(audit, context);
// TODO Knowledge on how the key is constructed is also in AuditSqlDao
if (tableName.getHistoryTableName() != null) {
final CacheController<Object, Object> cacheController = cacheControllerDispatcher.getCacheController(CacheType.AUDIT_LOG_VIA_HISTORY);
if (cacheController != null) {
final String key = buildCacheKey(ImmutableMap.<Integer, Object>of(0, tableName.getHistoryTableName(), 1, tableName.getHistoryTableName(), 2, entityRecordId));
cacheController.remove(key);
}
} else {
final CacheController<Object, Object> cacheController = cacheControllerDispatcher.getCacheController(CacheType.AUDIT_LOG);
if (cacheController != null) {
final String key = buildCacheKey(ImmutableMap.<Integer, Object>of(0, tableName, 1, entityRecordId));
cacheController.remove(key);
}
}
}
use of org.killbill.billing.util.dao.EntityAudit in project killbill by killbill.
the class TestDefaultAuditLog method testEquals.
@Test(groups = "fast")
public void testEquals() 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, null);
final UUID tenantId = UUID.randomUUID();
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(tenantId, userName, callOrigin, userType, userToken, clock);
final AuditLogModelDao auditLog = new AuditLogModelDao(entityAudit, callContext);
Assert.assertEquals(auditLog, auditLog);
final AuditLogModelDao sameAuditLog = new AuditLogModelDao(entityAudit, callContext);
Assert.assertEquals(sameAuditLog, auditLog);
clock.addMonths(1);
final CallContext otherCallContext = new DefaultCallContext(tenantId, userName, callOrigin, userType, userToken, clock);
final AuditLogModelDao otherAuditLog = new AuditLogModelDao(entityAudit, otherCallContext);
Assert.assertNotEquals(otherAuditLog, auditLog);
}
Aggregations