package org.ovirt.engine.core.dal.dbbroker.auditloghandling; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.junit.Test; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.storage_domains; import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.common.interfaces.IVdcUser; import org.ovirt.engine.core.common.users.VdcUser; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.NGuid; import org.ovirt.engine.core.dao.StorageDomainDAO; import org.ovirt.engine.core.dao.StoragePoolDAO; import org.ovirt.engine.core.dao.VdsDAO; import org.ovirt.engine.core.dao.VdsGroupDAO; import org.ovirt.engine.core.dao.VmDAO; import org.ovirt.engine.core.dao.VmTemplateDAO; public class AuditLogableBaseTest { private static final Guid GUID = new Guid("11111111-1111-1111-1111-111111111111"); private static final Guid GUID2 = new Guid("11111111-1111-1111-1111-111111111112"); private static final Guid GUID3 = new Guid("11111111-1111-1111-1111-111111111113"); private static final String NAME = "testName"; @Test public void nGuidCtor() { final AuditLogableBase b = new AuditLogableBase(GUID); final Guid v = b.getVdsId(); assertEquals(GUID, v); } @Test public void nGuidCtorNull() { final NGuid n = null; final AuditLogableBase b = new AuditLogableBase(n); final Guid g = b.getVdsId(); assertEquals(Guid.Empty, g); } @Test public void nGuidGuidCtor() { final AuditLogableBase b = new AuditLogableBase(GUID, GUID2); final Guid g = b.getVdsId(); assertEquals(GUID, g); final Guid gu = b.getVmId(); assertEquals(GUID2, gu); } @Test public void nGuidGuidCtorNullNGuid() { final AuditLogableBase b = new AuditLogableBase(null, GUID2); final Guid g = b.getVdsId(); assertEquals(Guid.Empty, g); final Guid gu = b.getVmId(); assertEquals(GUID2, gu); } @Test public void nGuidGuidCtorNullGuid() { final AuditLogableBase b = new AuditLogableBase(GUID, null); final Guid g = b.getVdsId(); assertEquals(GUID, g); final Guid gu = b.getVmId(); assertEquals(Guid.Empty, gu); } @Test public void nGuidGuidCtorNull() { final AuditLogableBase b = new AuditLogableBase(null, null); final Guid g = b.getVdsId(); assertEquals(Guid.Empty, g); final Guid gu = b.getVmId(); assertEquals(Guid.Empty, gu); } @Test public void getUserIdDefault() { final AuditLogableBase b = new AuditLogableBase(); final NGuid g = b.getUserId(); assertEquals(Guid.Empty, g); } @Test public void getUserIdIdSet() { final AuditLogableBase b = new AuditLogableBase(); b.setUserId(GUID); final NGuid g = b.getUserId(); assertEquals(GUID, g); } @Test public void getUserIdVdcUserDefault() { final AuditLogableBase b = new AuditLogableBase(); final VdcUser u = new VdcUser(); b.setCurrentUser(u); final NGuid g = b.getUserId(); assertEquals(Guid.Empty, g); } @Test public void getUserIdVdcUserId() { final AuditLogableBase b = new AuditLogableBase(); final VdcUser u = new VdcUser(); u.setUserId(GUID); b.setCurrentUser(u); final NGuid g = b.getUserId(); assertEquals(GUID, g); } @Test public void getUserNameDefault() { final AuditLogableBase b = new AuditLogableBase(); final String n = b.getUserName(); assertNull(n); } @Test public void getUserNameNull() { final AuditLogableBase b = new AuditLogableBase(); b.setUserName(null); final String n = b.getUserName(); assertNull(n); } @Test public void getUserName() { final AuditLogableBase b = new AuditLogableBase(); b.setUserName(NAME); final String n = b.getUserName(); assertEquals(NAME, n); } @Test public void GetUserNameFromUser() { final AuditLogableBase b = new AuditLogableBase(); final VdcUser u = new VdcUser(); u.setUserName(NAME); b.setCurrentUser(u); final String un = b.getUserName(); assertEquals(NAME, un); } @Test public void currentUserDefault() { final AuditLogableBase b = new AuditLogableBase(); final IVdcUser u = b.getCurrentUser(); assertNull(u); } @Test public void currentUserNull() { final AuditLogableBase b = new AuditLogableBase(); final IVdcUser u = null; b.setCurrentUser(u); final IVdcUser cu = b.getCurrentUser(); assertEquals(u, cu); } @Test public void currentUser() { final AuditLogableBase b = new AuditLogableBase(); final IVdcUser u = new VdcUser(); b.setCurrentUser(u); final IVdcUser cu = b.getCurrentUser(); assertEquals(u, cu); } @Test public void vmTemplateIdDefault() { final AuditLogableBase b = new AuditLogableBase(); final Guid g = b.getVmTemplateId(); assertEquals(Guid.Empty, g); } @Test public void vmTemplateId() { final AuditLogableBase b = new AuditLogableBase(); b.setVmTemplateId(GUID); final Guid g = b.getVmTemplateId(); assertEquals(GUID, g); } @Test public void vmTemplateIdRefDefault() { final AuditLogableBase b = new AuditLogableBase(); final NGuid g = b.getVmTemplateIdRef(); assertNull(g); } @Test public void vmTemplateIdRef() { final AuditLogableBase b = new AuditLogableBase(); b.setVmTemplateId(GUID); final NGuid g = b.getVmTemplateIdRef(); assertEquals(GUID, g); } @Test public void vmTemplateIdRefWithVm() { final AuditLogableBase b = new TestAuditLogableBase(); final VM v = new VM(); b.setVm(v); final NGuid g = b.getVmTemplateIdRef(); assertEquals(GUID, g); } @Test public void vmTemplateNameDefault() { final AuditLogableBase b = new AuditLogableBase(); final String n = b.getVmTemplateName(); assertNull(n); } @Test public void vmTemplateName() { final AuditLogableBase b = new AuditLogableBase(); b.setVmTemplateName(NAME); final String nm = b.getVmTemplateName(); assertEquals(NAME, nm); } @Test public void vmTemplateNameWithVm() { final AuditLogableBase b = new TestAuditLogableBase(); final VM v = new VM(); b.setVm(v); final String n = b.getVmTemplateName(); assertEquals(NAME, n); } @Test public void vmIdDefault() { final AuditLogableBase b = new AuditLogableBase(); final Guid i = b.getVmId(); assertEquals(Guid.Empty, i); } @Test public void vmIdNull() { final AuditLogableBase b = new AuditLogableBase(); b.setVmId(null); final Guid i = b.getVmId(); assertEquals(Guid.Empty, i); } @Test public void vmId() { final AuditLogableBase b = new AuditLogableBase(); b.setVmId(GUID); final Guid i = b.getVmId(); assertEquals(GUID, i); } @Test public void snapshotNameDefault() { final AuditLogableBase b = new AuditLogableBase(); final String s = b.getSnapshotName(); assertNull(s); } @Test public void snapshotNameNull() { final AuditLogableBase b = new AuditLogableBase(); b.setSnapshotName(null); final String s = b.getSnapshotName(); assertNull(s); } @Test public void snapshotNameEmpty() { final AuditLogableBase b = new AuditLogableBase(); final String e = ""; b.setSnapshotName(e); final String s = b.getSnapshotName(); assertEquals(e, s); } @Test public void snapshotName() { final AuditLogableBase b = new AuditLogableBase(); b.setSnapshotName(NAME); final String s = b.getSnapshotName(); assertEquals(NAME, s); } @Test public void vmIdRefDefault() { final AuditLogableBase b = new AuditLogableBase(); final NGuid g = b.getVmIdRef(); assertEquals(Guid.Empty, g); } @Test public void vmIdRefNullVmId() { final AuditLogableBase b = new AuditLogableBase(); b.setVmId(null); final NGuid g = b.getVmIdRef(); assertNull(g); } @Test public void vmIdRefNullVm() { final AuditLogableBase b = new AuditLogableBase(); b.setVmId(null); final VM v = new VM(); v.setvm_guid(GUID); b.setVm(v); final NGuid g = b.getVmIdRef(); assertEquals(GUID, g); } @Test public void vmNameDefault() { final AuditLogableBase b = new AuditLogableBase(); final String n = b.getVmName(); assertNull(n); } @Test public void vmNameNull() { final AuditLogableBase b = new AuditLogableBase(); b.setVmName(null); final String n = b.getVmName(); assertNull(n); } @Test public void vmNameNullVm() { final AuditLogableBase b = new AuditLogableBase(); b.setVmName(null); final VM v = new VM(); v.setvm_name(NAME); b.setVm(v); final String n = b.getVmName(); assertEquals(NAME, n); } @Test public void vmName() { final AuditLogableBase b = new AuditLogableBase(); b.setVmName(NAME); final String n = b.getVmName(); assertEquals(NAME, n); } @Test public void vdsIdRefDefault() { final AuditLogableBase b = new AuditLogableBase(); final NGuid g = b.getVdsIdRef(); assertNull(g); } @Test public void vdsIdRefNull() { final AuditLogableBase b = new AuditLogableBase(); b.setVdsIdRef(null); final NGuid g = b.getVdsIdRef(); assertNull(g); } @Test public void vdsIdRef() { final AuditLogableBase b = new AuditLogableBase(); b.setVdsIdRef(GUID); final NGuid g = b.getVdsIdRef(); assertEquals(GUID, g); } @Test public void VdsIdRefVds() { final AuditLogableBase b = new AuditLogableBase(); b.setVdsIdRef(null); final VDS v = new VDS(); v.setvds_id(GUID); b.setVds(v); final NGuid g = b.getVdsIdRef(); assertEquals(GUID, g); } @Test public void vdsIdDefault() { final AuditLogableBase b = new AuditLogableBase(); final Guid g = b.getVdsId(); assertEquals(Guid.Empty, g); } @Test public void vdsIdNull() { final AuditLogableBase b = new AuditLogableBase(); b.setVdsId(null); final Guid g = b.getVdsId(); assertEquals(Guid.Empty, g); } @Test public void vdsId() { final AuditLogableBase b = new AuditLogableBase(); b.setVdsId(GUID); final Guid g = b.getVdsId(); assertEquals(GUID, g); } @Test public void vdsNameDefault() { final AuditLogableBase b = new AuditLogableBase(); final String s = b.getVdsName(); assertNull(s); } @Test public void vdsNameNull() { final AuditLogableBase b = new AuditLogableBase(); b.setVdsName(null); final String s = b.getVdsName(); assertNull(s); } @Test public void vdsName() { final AuditLogableBase b = new AuditLogableBase(); b.setVdsName(NAME); final String s = b.getVdsName(); assertEquals(NAME, s); } @Test public void VdsNameVds() { final AuditLogableBase b = new AuditLogableBase(); b.setVdsName(null); final VDS v = new VDS(); v.setvds_name(NAME); b.setVds(v); final String s = b.getVdsName(); assertEquals(NAME, s); } @Test public void storageDomainDefault() { final AuditLogableBase b = new AuditLogableBase(); final storage_domains s = b.getStorageDomain(); assertNull(s); } @Test public void storageDomainNull() { final AuditLogableBase b = new AuditLogableBase(); b.setStorageDomain(null); final storage_domains s = b.getStorageDomain(); assertNull(s); } @Test public void storageDomain() { final AuditLogableBase b = new AuditLogableBase(); final storage_domains s = new storage_domains(); b.setStorageDomain(s); final storage_domains st = b.getStorageDomain(); assertEquals(s, st); } @Test public void storageDomainWithId() { final TestAuditLogableBase b = new TestAuditLogableBase(); b.setStorageDomainId(GUID); b.setStoragePoolId(GUID); final storage_domains s = b.getStorageDomain(); assertEquals(b.STORAGE_DOMAIN, s); } @Test public void storageDomainWithIdNullPool() { final TestAuditLogableBase b = new TestAuditLogableBase(); b.setStorageDomainId(GUID); b.setStoragePoolId(GUID2); final storage_domains s = b.getStorageDomain(); assertNull(s); } @Test public void storageDomainWithNullId() { final TestAuditLogableBase b = new TestAuditLogableBase(); b.setStorageDomainId(GUID2); final storage_domains s = b.getStorageDomain(); assertEquals(b.STORAGE_DOMAIN, s); } @Test public void storageDomainIdDefault() { final AuditLogableBase b = new AuditLogableBase(); final NGuid g = b.getStorageDomainId(); assertNull(g); } @Test public void storageDomainIdNull() { final AuditLogableBase b = new AuditLogableBase(); b.setStorageDomainId(null); final NGuid g = b.getStorageDomainId(); assertNull(g); } @Test public void storageDomainId() { final AuditLogableBase b = new AuditLogableBase(); b.setStorageDomainId(GUID); final NGuid g = b.getStorageDomainId(); assertEquals(GUID, g); } @Test public void storageDomainIdWithStorageDomain() { final AuditLogableBase b = new AuditLogableBase(); final storage_domains s = new storage_domains(); s.setid(GUID); b.setStorageDomain(s); final NGuid g = b.getStorageDomainId(); assertEquals(GUID, g); } @Test public void storageDomainNameDefault() { final AuditLogableBase b = new AuditLogableBase(); final String s = b.getStorageDomainName(); assertEquals("", s); } @Test public void storageDomainName() { final AuditLogableBase b = new AuditLogableBase(); final storage_domains s = new storage_domains(); s.setstorage_name(NAME); b.setStorageDomain(s); final String n = b.getStorageDomainName(); assertEquals(NAME, n); } @Test public void storagePoolDefault() { final AuditLogableBase b = new AuditLogableBase(); final storage_pool p = b.getStoragePool(); assertNull(p); } @Test public void storagePoolWithId() { final AuditLogableBase b = new TestAuditLogableBase(); b.setStoragePoolId(GUID); final storage_pool p = b.getStoragePool(); assertNotNull(p); } @Test public void storagePool() { final AuditLogableBase b = new AuditLogableBase(); final storage_pool p = new storage_pool(); b.setStoragePool(p); final storage_pool sp = b.getStoragePool(); assertEquals(p, sp); } @Test public void storagePoolIdDefault() { final AuditLogableBase b = new AuditLogableBase(); final NGuid n = b.getStoragePoolId(); assertNull(n); } @Test public void storagePoolIdNull() { final AuditLogableBase b = new AuditLogableBase(); b.setStoragePoolId(null); final NGuid n = b.getStoragePoolId(); assertNull(n); } @Test public void storagePoolId() { final AuditLogableBase b = new AuditLogableBase(); b.setStoragePoolId(GUID); final NGuid n = b.getStoragePoolId(); assertEquals(GUID, n); } @Test public void storagePoolIdWithStoragePool() { final AuditLogableBase b = new AuditLogableBase(); b.setStoragePoolId(null); final storage_pool p = new storage_pool(); p.setId(GUID); b.setStoragePool(p); final NGuid n = b.getStoragePoolId(); assertEquals(GUID, n); } @Test public void storagePoolIdWithStorageDomain() { final AuditLogableBase b = new AuditLogableBase(); b.setStoragePoolId(null); b.setStoragePool(null); final storage_domains s = new storage_domains(); s.setstorage_pool_id(GUID); b.setStorageDomain(s); final NGuid n = b.getStoragePoolId(); assertEquals(GUID, n); } @Test public void storagePoolNameDefault() { final AuditLogableBase b = new AuditLogableBase(); final String s = b.getStoragePoolName(); assertEquals("", s); } @Test public void storagePoolName() { final AuditLogableBase b = new AuditLogableBase(); final storage_pool p = new storage_pool(); p.setname(NAME); b.setStoragePool(p); final String s = b.getStoragePoolName(); assertEquals(NAME, s); } @Test public void auditLogTypeValue() { final AuditLogableBase b = new AuditLogableBase(); final AuditLogType t = b.getAuditLogTypeValue(); assertEquals(AuditLogType.UNASSIGNED, t); } @Test public void getVdsDefault() { final AuditLogableBase b = new AuditLogableBase(); final VDS v = b.getVds(); assertNull(v); } @Test public void getVdsNullAll() { final AuditLogableBase b = new AuditLogableBase(); final VDS vds = null; final VM vm = null; final Guid vdsId = null; b.setVds(vds); b.setVdsId(vdsId); b.setVm(vm); final VDS v = b.getVds(); assertNull(v); } @Test public void getVdsNullVdsId() { final AuditLogableBase b = new TestAuditLogableBase(); final VDS vds = null; final VM vm = new VM(); vm.setrun_on_vds(GUID3); final Guid vdsId = null; b.setVds(vds); b.setVdsId(vdsId); b.setVm(vm); final VDS v = b.getVds(); assertNull(v); } @Test public void getVdsNullRun() { final AuditLogableBase b = new AuditLogableBase(); final VDS vds = null; final VM vm = new VM(); vm.setrun_on_vds(null); final Guid vdsId = null; b.setVds(vds); b.setVdsId(vdsId); b.setVm(vm); final VDS v = b.getVds(); assertNull(v); } @Test public void getVdsWithVds() { final AuditLogableBase b = new AuditLogableBase(); final VDS vds = new VDS(); final VM vm = null; final Guid vdsId = null; b.setVds(vds); b.setVdsId(vdsId); b.setVm(vm); final VDS v = b.getVds(); assertEquals(vds, v); } @Test public void getVdsWithVdsId() { final AuditLogableBase b = new TestAuditLogableBase(); final VDS vds = null; final VM vm = new VM(); vm.setrun_on_vds(GUID2); final Guid vdsId = GUID; b.setVds(vds); b.setVdsId(vdsId); b.setVm(vm); final VDS v = b.getVds(); assertEquals(GUID, v.getvds_id()); } @Test public void getVdsWithVm() { final AuditLogableBase b = new TestAuditLogableBase(); final VDS vds = null; final VM vm = new VM(); vm.setrun_on_vds(GUID2); final Guid vdsId = null; b.setVds(vds); b.setVdsId(vdsId); b.setVm(vm); final VDS v = b.getVds(); assertEquals(GUID2, v.getvds_id()); } @Test public void getVdsSwallowsException() { final AuditLogableBase b = new TestAuditLogableBase(); final VDS vds = null; final VM vm = new VM(); vm.setrun_on_vds(GUID2); final Guid vdsId = GUID3; b.setVds(vds); b.setVdsId(vdsId); b.setVm(vm); final VDS v = b.getVds(); assertNull(v); } @Test public void getVmDefault() { final AuditLogableBase b = new AuditLogableBase(); final VM v = b.getVm(); assertNull(v); } @Test public void getVm() { final AuditLogableBase b = new AuditLogableBase(); final VM v = new VM(); b.setVm(v); final VM vm = b.getVm(); assertEquals(v, vm); } @Test public void getVmNullId() { final AuditLogableBase b = new AuditLogableBase(); final VM v = null; b.setVm(v); b.setVmId(null); final VM vm = b.getVm(); assertNull(vm); } @Test public void getVmEmptyId() { final AuditLogableBase b = new AuditLogableBase(); final VM v = null; b.setVm(v); b.setVmId(Guid.Empty); final VM vm = b.getVm(); assertNull(vm); } @Test public void getVmFromId() { final AuditLogableBase b = new TestAuditLogableBase(); final VM v = null; b.setVm(v); b.setVmId(GUID); final VM vm = b.getVm(); assertNotNull(vm); } @Test public void getVmSwallowsExceptions() { final AuditLogableBase b = new TestAuditLogableBase(); final VM v = null; b.setVm(v); b.setVmId(GUID3); final VM vm = b.getVm(); assertNull(vm); } @Test public void getVmTemplateDefault() { final AuditLogableBase b = new AuditLogableBase(); final VmTemplate t = b.getVmTemplate(); assertNull(t); } @Test public void getVmTemplateNull() { final AuditLogableBase b = new AuditLogableBase(); b.setVmTemplate(null); final VmTemplate t = b.getVmTemplate(); assertNull(t); } @Test public void getVmTemplateWithId() { final AuditLogableBase b = new TestAuditLogableBase(); b.setVmTemplate(null); b.setVmTemplateId(GUID); final VmTemplate t = b.getVmTemplate(); assertNotNull(t); } @Test public void getVmTemplateWithVm() { final AuditLogableBase b = new TestAuditLogableBase(); b.setVmTemplate(null); b.setVmTemplateId(null); final VM vm = new VM(); vm.setvmt_guid(GUID); b.setVm(vm); final VmTemplate t = b.getVmTemplate(); assertNotNull(t); } @Test public void getVdsGroupIdDefault() { final AuditLogableBase b = new AuditLogableBase(); final Guid g = b.getVdsGroupId(); assertEquals(Guid.Empty, g); } @Test public void getVdsGroupId() { final AuditLogableBase b = new AuditLogableBase(); b.setVdsGroupId(GUID); final Guid g = b.getVdsGroupId(); assertEquals(GUID, g); } @Test public void getVdsGroupIdVdsGroup() { final AuditLogableBase b = new AuditLogableBase(); final VDSGroup gr = new VDSGroup(); gr.setID(GUID); b.setVdsGroup(gr); final Guid g = b.getVdsGroupId(); assertEquals(GUID, g); } @Test public void getVdsGroupDefault() { final AuditLogableBase b = new AuditLogableBase(); final VDSGroup g = b.getVdsGroup(); assertNull(g); } @Test public void getVdsGroupNotNull() { final AuditLogableBase b = new AuditLogableBase(); final VDSGroup g = new VDSGroup(); b.setVdsGroup(g); final VDSGroup gr = b.getVdsGroup(); assertEquals(g, gr); } @Test public void getVdsGroupWithId() { final AuditLogableBase b = new TestAuditLogableBase(); b.setVdsGroupId(GUID); final VDSGroup g = b.getVdsGroup(); assertEquals(GUID, g.getID()); } @Test public void getVdsGroupWithVds() { final AuditLogableBase b = new TestAuditLogableBase(); final VDS v = new VDS(); v.setvds_group_id(GUID); b.setVds(v); final VDSGroup g = b.getVdsGroup(); assertEquals(GUID, g.getID()); } @Test public void getVdsGroupWithVm() { final AuditLogableBase b = new TestAuditLogableBase(); final VM v = new VM(); v.setvds_group_id(GUID); b.setVm(v); final VDSGroup g = b.getVdsGroup(); assertEquals(GUID, g.getID()); } @Test public void getVdsGroupNameDefault() { final AuditLogableBase b = new TestAuditLogableBase(); final String n = b.getVdsGroupName(); assertEquals("", n); } @Test public void getVdsGroupNameNullVds() { final AuditLogableBase b = new TestAuditLogableBase(); final VDSGroup g = null; b.setVdsGroup(g); final String n = b.getVdsGroupName(); assertEquals("", n); } @Test public void getVdsGroupName() { final AuditLogableBase b = new TestAuditLogableBase(); final VDSGroup g = new VDSGroup(); g.setname(NAME); b.setVdsGroup(g); final String n = b.getVdsGroupName(); assertEquals(NAME, n); } @Test(expected = NullPointerException.class) public void addCustomValueDoesNotHandleNullKeys() { final AuditLogableBase b = new TestAuditLogableBase(); final String key = null; final String value = NAME; b.AddCustomValue(key, value); final String v = b.GetCustomValue(key); assertEquals(value, v); } @Test public void addCustomValueWillNotReturnANull() { final AuditLogableBase b = new TestAuditLogableBase(); final String key = NAME; final String value = null; b.AddCustomValue(key, value); final String v = b.GetCustomValue(key); assertEquals("", v); } @Test public void customValue() { final AuditLogableBase b = new TestAuditLogableBase(); final String key = "foo"; final String value = NAME; b.AddCustomValue(key, value); final String v = b.GetCustomValue(key); assertEquals(value, v); } @Test public void getCustomValuesLeaksInternalStructure() { final AuditLogableBase b = new TestAuditLogableBase(); final String key = "foo"; final String value = NAME; b.AddCustomValue(key, value); final String v = b.GetCustomValue(key); assertEquals(value, v); final Map<String, String> m = b.getCustomValues(); m.clear(); final String s = b.GetCustomValue(key); assertEquals("", s); } @Test public void appendCustomValue() { final AuditLogableBase b = new TestAuditLogableBase(); final String key = "foo"; final String value = NAME; final String sep = "_"; b.AppendCustomValue(key, value, sep); final String s = b.GetCustomValue(key); assertEquals(value, s); } @Test public void appendCustomValueAppend() { final AuditLogableBase b = new TestAuditLogableBase(); final String key = "foo"; final String value = NAME; final String newVal = "bar"; final String sep = "_"; b.AddCustomValue(key, value); b.AppendCustomValue(key, newVal, sep); final String s = b.GetCustomValue(key); assertEquals(value + sep + newVal, s); } @Test(expected = NullPointerException.class) public void appendCustomValueDoesntHandleNullKeys() { final AuditLogableBase b = new TestAuditLogableBase(); final String key = null; final String value = NAME; final String sep = "_"; b.AppendCustomValue(key, value, sep); final String s = b.GetCustomValue(key); assertEquals(value, s); } @Test public void appendCustomValueAppendsWithNull() { final AuditLogableBase b = new TestAuditLogableBase(); final String key = "foo"; final String value = null; final String newVal = "bar"; final String sep = "_"; b.AddCustomValue(key, value); b.AppendCustomValue(key, newVal, sep); final String s = b.GetCustomValue(key); assertEquals(value + sep + newVal, s); } @Test public void appendCustomValueUsesNullSeparator() { final AuditLogableBase b = new TestAuditLogableBase(); final String key = "foo"; final String value = NAME; final String newVal = "bar"; final String sep = null; b.AddCustomValue(key, value); b.AppendCustomValue(key, newVal, sep); final String s = b.GetCustomValue(key); assertEquals(value + sep + newVal, s); } @Test public void getCustomValueFromEmptyMap() { final AuditLogableBase b = new TestAuditLogableBase(); final String s = b.GetCustomValue(NAME); assertEquals("", s); } @Test public void key() { final AuditLogableBase b = new TestAuditLogableBase(); final String s = b.getKey(); assertEquals(AuditLogType.UNASSIGNED.toString(), s); } private class TestAuditLogableBase extends AuditLogableBase { public final storage_domains STORAGE_DOMAIN = new storage_domains(); @Override public VmTemplateDAO getVmTemplateDAO() { final VmTemplateDAO vt = mock(VmTemplateDAO.class); final VmTemplate t = new VmTemplate(); t.setId(GUID); t.setname(NAME); when(vt.get(Guid.Empty)).thenReturn(t); when(vt.get(GUID)).thenReturn(new VmTemplate()); return vt; } @Override protected VmDAO getVmDAO() { final VmDAO v = mock(VmDAO.class); when(v.getById(GUID)).thenReturn(new VM()); when(v.getById(GUID3)).thenThrow(new RuntimeException()); return v; } @Override public StorageDomainDAO getStorageDomainDAO() { final StorageDomainDAO d = mock(StorageDomainDAO.class); when(d.getForStoragePool(GUID, GUID)).thenReturn(STORAGE_DOMAIN); when(d.getAllForStorageDomain(GUID2)).thenReturn(getStorageDomainList()); return d; } @Override public StoragePoolDAO getStoragePoolDAO() { final StoragePoolDAO s = mock(StoragePoolDAO.class); final storage_pool p = new storage_pool(); p.setId(GUID); when(s.get(GUID)).thenReturn(p); when(s.get(GUID2)).thenReturn(null); return s; } @Override public VdsDAO getVdsDAO() { final VdsDAO v = mock(VdsDAO.class); final VDS vds1 = new VDS(); vds1.setvds_id(GUID); final VDS vds2 = new VDS(); vds2.setvds_id(GUID2); when(v.get(GUID)).thenReturn(vds1); when(v.get(GUID2)).thenReturn(vds2); when(v.get(GUID3)).thenThrow(new RuntimeException()); return v; } @Override protected VdsGroupDAO getVdsGroupDAO() { final VdsGroupDAO v = mock(VdsGroupDAO.class); final VDSGroup g = new VDSGroup(); g.setvds_group_id(GUID); when(v.get(GUID)).thenReturn(g); return v; } private List<storage_domains> getStorageDomainList() { final List<storage_domains> l = new ArrayList<storage_domains>(); final storage_domains s = new storage_domains(); s.setstatus(StorageDomainStatus.InActive); l.add(s); final storage_domains s2 = new storage_domains(); s2.setstatus(null); l.add(s2); STORAGE_DOMAIN.setstatus(StorageDomainStatus.Active); l.add(STORAGE_DOMAIN); return l; } } }