package org.ovirt.engine.core.dao;
import org.junit.Assert;
import org.junit.Test;
public class DaoFactoryTest extends Assert {
private <T extends DAO> void testLoadClass(Class<T> clz) {
T instance = DaoFactory.get(clz);
assertNotNull(instance);
assertTrue(clz.isInstance(instance));
}
@Test public void testActionGroup() { testLoadClass(ActionGroupDAO.class); }
@Test public void testAdGroup() { testLoadClass(AdGroupDAO.class); }
@Test public void testAsyncTask() { testLoadClass(AsyncTaskDAO.class); }
@Test public void testAuditLog() { testLoadClass(AuditLogDAO.class); }
@Test public void testBookmark() { testLoadClass(BookmarkDAO.class); }
@Test public void testDbUser() { testLoadClass(DbUserDAO.class); }
@Test public void testDiskImage() { testLoadClass(DiskImageDAO.class); }
@Test public void testEvent() { testLoadClass(EventDAO.class); }
@Test public void testInterface() { testLoadClass(InterfaceDAO.class); }
@Test public void testLun() { testLoadClass(LunDAO.class); }
@Test public void testNetwork() { testLoadClass(NetworkDAO.class); }
@Test public void testNetworkCluster() { testLoadClass(NetworkClusterDAO.class); }
@Test public void testPermission() { testLoadClass(PermissionDAO.class); }
@Test public void testRole() { testLoadClass(RoleDAO.class); }
@Test public void testRoleGroupMap() { testLoadClass(RoleGroupMapDAO.class); }
@Test public void testStorageDomain() { testLoadClass(StorageDomainDAO.class); }
@Test public void testStoragePool() { testLoadClass(StoragePoolDAO.class); }
@Test public void testStorageServerConnection() { testLoadClass(StorageServerConnectionDAO.class); }
@Test public void testTag() { testLoadClass(TagDAO.class); }
@Test public void testVdcOption() { testLoadClass(VdcOptionDAO.class); }
@Test public void testVds() { testLoadClass(VdsDAO.class); }
@Test public void testVdsGroup() { testLoadClass(VdsGroupDAO.class); }
@Test public void testVm() { testLoadClass(VmDAO.class); }
private class NonExistentDAO implements DAO {
}
@Test
public void testException() {
try {
DaoFactory.get(NonExistentDAO.class);
fail("expected DaoFactoryException");
} catch (DaoFactoryException ex) {
assertEquals(NonExistentDAO.class, ex.getDaoType());
assertEquals("engine-daos.properties", ex.getPropsFile());
}
}
}