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.IscsiBond; import org.ovirt.engine.core.compat.Guid; public class IscsiBondDaoTest extends BaseDaoTestCase { private IscsiBondDao dao; private Guid storagePoolId; private IscsiBond newIscsiBond; private Guid iscsiBondId; private Guid networkId; private String connectionId; @Override public void setUp() throws Exception { super.setUp(); dao = dbFacade.getIscsiBondDao(); storagePoolId = FixturesTool.STORAGE_POOL_RHEL6_ISCSI_OTHER; networkId = FixturesTool.NETWORK_ENGINE_2; iscsiBondId = FixturesTool.ISCSI_BOND_ID; connectionId = FixturesTool.STORAGE_CONNECTION_ID; newIscsiBond = new IscsiBond(); newIscsiBond.setId(Guid.newGuid()); newIscsiBond.setName("Multipath"); newIscsiBond.setDescription("New iscsi bond for multipathing"); newIscsiBond.setStoragePoolId(storagePoolId); } @Test public void testGetAllByStoragePoolId() { List<IscsiBond> iscsiBonds = dao.getAllByStoragePoolId(storagePoolId); assertEquals(1, iscsiBonds.size()); } @Test public void testGetAllByStoragePoolIdStoragePoolDoesNotExist() { List<IscsiBond> iscsiBonds = dao.getAllByStoragePoolId(Guid.Empty); assertTrue(iscsiBonds.isEmpty()); } @Test public void testGetNetworkIdsByIscsiBondId() { List<Guid> networkIds = dao.getNetworkIdsByIscsiBondId(newIscsiBond.getId()); assertTrue(networkIds.isEmpty()); } @Test public void testGetIscsiBondByIscsiBondId() { IscsiBond iscsiBond = dao.get(iscsiBondId); assertNotNull(iscsiBond); } @Test public void testAddNewIscsiBond() { dao.save(newIscsiBond); IscsiBond iscsiBond = dao.get(newIscsiBond.getId()); assertEquals(newIscsiBond, iscsiBond); } @Test public void testUpdateIscsiBond() { final String newDescription = "10GB iscsi bond"; IscsiBond iscsiBond = dao.get(iscsiBondId); assertFalse(newDescription.equals(iscsiBond.getDescription())); iscsiBond.setDescription(newDescription); dao.update(iscsiBond); iscsiBond = dao.get(iscsiBondId); assertEquals(newDescription, iscsiBond.getDescription()); } @Test public void testRemoveIscsiBond() { IscsiBond iscsiBond = dao.get(iscsiBondId); assertNotNull(iscsiBond); dao.remove(iscsiBondId); iscsiBond = dao.get(iscsiBondId); List<Guid> networks = dao.getNetworkIdsByIscsiBondId(iscsiBondId); List<String> connections = dao.getStorageConnectionIdsByIscsiBondId(iscsiBondId); assertNull(iscsiBond); assertTrue(networks.isEmpty()); assertTrue(connections.isEmpty()); } @Test public void testAddNetworkToIscsiBond() { dao.addNetworkToIscsiBond(iscsiBondId, networkId); List<Guid> networks = dao.getNetworkIdsByIscsiBondId(iscsiBondId); assertEquals(2, networks.size()); assertTrue(networks.contains(networkId)); } @Test public void testGetIscsiBondIdByNetworkId() { List<IscsiBond> fetchedIscsiBonds = dao.getIscsiBondsByNetworkId(FixturesTool.NETWORK_ENGINE); assertEquals(1, fetchedIscsiBonds.size()); assertEquals(FixturesTool.ISCSI_BOND_ID, fetchedIscsiBonds.get(0).getId()); } @Test public void testGetEmptyIscsiBondIdByNetworkId() { List<IscsiBond> fetchedIscsiBonds = dao.getIscsiBondsByNetworkId(networkId); assertEquals(0, fetchedIscsiBonds.size()); } @Test public void testGetEmptyIscsiBondIdByNotExistingNetworkId() { List<IscsiBond> fetchedIscsiBonds = dao.getIscsiBondsByNetworkId(Guid.Empty); assertEquals(0, fetchedIscsiBonds.size()); } @Test public void testRemoveNetworkFromIscsiBond() { List<Guid> networks = dao.getNetworkIdsByIscsiBondId(iscsiBondId); networkId = networks.get(0); dao.removeNetworkFromIscsiBond(iscsiBondId, networkId); networks = dao.getNetworkIdsByIscsiBondId(iscsiBondId); assertTrue(networks.isEmpty()); } @Test public void testAddStorageConnectionToIscsiBond() { dao.addStorageConnectionToIscsiBond(iscsiBondId, connectionId); List<String> connections = dao.getStorageConnectionIdsByIscsiBondId(iscsiBondId); assertEquals(3, connections.size()); assertTrue(connections.contains(connectionId)); } @Test public void testRemoveStorageConnectionFromIscsiBond() { List<String> connections = dao.getStorageConnectionIdsByIscsiBondId(iscsiBondId); connectionId = connections.get(0); dao.removeStorageConnectionFromIscsiBond(iscsiBondId, connectionId); connections = dao.getStorageConnectionIdsByIscsiBondId(iscsiBondId); assertEquals(1, connections.size()); assertFalse(connections.contains(connectionId)); } }