Search in sources :

Example 1 with EntityAudit

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());
}
Also used : CallOrigin(org.killbill.billing.util.callcontext.CallOrigin) ClockMock(org.killbill.clock.ClockMock) CallContext(org.killbill.billing.util.callcontext.CallContext) DefaultCallContext(org.killbill.billing.callcontext.DefaultCallContext) EntityAudit(org.killbill.billing.util.dao.EntityAudit) TableName(org.killbill.billing.util.dao.TableName) DefaultCallContext(org.killbill.billing.callcontext.DefaultCallContext) AuditLogModelDao(org.killbill.billing.util.audit.dao.AuditLogModelDao) UUID(java.util.UUID) UserType(org.killbill.billing.util.callcontext.UserType) Test(org.testng.annotations.Test)

Example 2 with EntityAudit

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());
}
Also used : EntityAudit(org.killbill.billing.util.dao.EntityAudit) TableName(org.killbill.billing.util.dao.TableName) DefaultAuditLog(org.killbill.billing.util.audit.DefaultAuditLog) ChangeType(org.killbill.billing.util.audit.ChangeType) AuditLogModelDao(org.killbill.billing.util.audit.dao.AuditLogModelDao) AuditLog(org.killbill.billing.util.audit.AuditLog) DefaultAuditLog(org.killbill.billing.util.audit.DefaultAuditLog) Test(org.testng.annotations.Test)

Example 3 with EntityAudit

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);
        }
    }
}
Also used : EntityAudit(org.killbill.billing.util.dao.EntityAudit) TableName(org.killbill.billing.util.dao.TableName) InternalCallContext(org.killbill.billing.callcontext.InternalCallContext)

Example 4 with EntityAudit

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);
}
Also used : EntityAudit(org.killbill.billing.util.dao.EntityAudit) TableName(org.killbill.billing.util.dao.TableName) DefaultCallContext(org.killbill.billing.callcontext.DefaultCallContext) AuditLogModelDao(org.killbill.billing.util.audit.dao.AuditLogModelDao) CallOrigin(org.killbill.billing.util.callcontext.CallOrigin) ClockMock(org.killbill.clock.ClockMock) UUID(java.util.UUID) UserType(org.killbill.billing.util.callcontext.UserType) CallContext(org.killbill.billing.util.callcontext.CallContext) DefaultCallContext(org.killbill.billing.callcontext.DefaultCallContext) Test(org.testng.annotations.Test)

Aggregations

EntityAudit (org.killbill.billing.util.dao.EntityAudit)4 TableName (org.killbill.billing.util.dao.TableName)4 AuditLogModelDao (org.killbill.billing.util.audit.dao.AuditLogModelDao)3 Test (org.testng.annotations.Test)3 UUID (java.util.UUID)2 DefaultCallContext (org.killbill.billing.callcontext.DefaultCallContext)2 CallContext (org.killbill.billing.util.callcontext.CallContext)2 CallOrigin (org.killbill.billing.util.callcontext.CallOrigin)2 UserType (org.killbill.billing.util.callcontext.UserType)2 ClockMock (org.killbill.clock.ClockMock)2 InternalCallContext (org.killbill.billing.callcontext.InternalCallContext)1 AuditLog (org.killbill.billing.util.audit.AuditLog)1 ChangeType (org.killbill.billing.util.audit.ChangeType)1 DefaultAuditLog (org.killbill.billing.util.audit.DefaultAuditLog)1