package org.ovirt.engine.core.dao; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.List; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.network; import org.ovirt.engine.core.common.businessentities.network_cluster; import org.ovirt.engine.core.compat.Guid; public class NetworkDAOTest extends BaseDAOTestCase { private NetworkDAO dao; private Guid cluster; private Guid datacenter; private network new_net; private String existing_net_name; @Override public void setUp() throws Exception { super.setUp(); dao = prepareDAO(dbFacade.getNetworkDAO()); cluster = new Guid("b399944a-81ab-4ec5-8266-e19ba7c3c9d1"); datacenter = new Guid("6d849ebf-755f-4552-ad09-9a090cda105d"); existing_net_name = "engine"; new_net = new network(); new_net.setname("newnet1"); new_net.setdescription("New network"); new_net.setstorage_pool_id(datacenter); } /** * Ensures that a null network is returned. */ @Test public void testGetByNameWithInvalidName() { network result = dao.getByName("farkle"); assertNull(result); } /** * Ensures that retrieving a network by name works as expected. */ @Test public void testGetByName() { network result = dao.getByName("engine"); assertNotNull(result); assertEquals("engine", result.getname()); } /** * Ensures that all networks are returned. */ @Test public void testGetAll() { List<network> result = dao.getAll(); assertNotNull(result); assertEquals(3, result.size()); } /** * Ensures that an empty collection is returned when the specified cluster has no networks. */ @Test public void testGetAllForClusterWithInvalidCluster() { List<network> result = dao.getAllForCluster(Guid.NewGuid()); assertNotNull(result); assertTrue(result.isEmpty()); } /** * Ensures the right set of networks are returved for the given cluster. */ @Test public void testGetAllForCluster() { List<network> result = dao.getAllForCluster(cluster); assertNotNull(result); assertFalse(result.isEmpty()); } /** * Ensures that an empty collection is returned when the data center has no networks. */ @Test public void testGetAllForDataCenterWithInvalidDataCenter() { List<network> result = dao.getAllForDataCenter(Guid.NewGuid()); assertNotNull(result); assertTrue(result.isEmpty()); } /** * Ensures that the right set of networks are returned for the given data center. */ @Test public void testGetAllForDataCenter() { List<network> result = dao.getAllForDataCenter(datacenter); assertNotNull(result); assertFalse(result.isEmpty()); for (network net : result) { assertEquals(datacenter, net.getstorage_pool_id()); } } /** * Ensures that saving a network works as expected. */ @Test public void testSave() { List<network_cluster> clustersFromDB = dbFacade.getNetworkClusterDAO().getAllForCluster(cluster); network_cluster clusterFromDB = clustersFromDB.get(0); assertNotNull(clusterFromDB); new_net.setCluster(clusterFromDB); new_net.setId(Guid.NewGuid()); dao.save(new_net); network result = dao.getByName(new_net.getname()); assertNotNull(result); assertEquals(new_net, result); } /** * Ensures updating a network works as expected. */ @Test public void testUpdate() { network before = dao.getByName(existing_net_name); before.setdescription("This is a completely changed description"); dao.update(before); network after = dao.getByName(existing_net_name); assertNotNull(after); assertEquals(before, after); } /** * Ensures that removing a network works as expected. */ @Test public void testRemove() { network result = dao.getByName(existing_net_name); assertNotNull(result); dao.remove(result.getId()); result = dao.getByName(existing_net_name); assertNull(result); } }