package org.ovirt.engine.core.dao.network; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.List; import javax.inject.Inject; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.network.VmNicFilterParameter; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.BaseDaoTestCase; import org.ovirt.engine.core.dao.FixturesTool; public class VmNicFilterParameterDaoTest extends BaseDaoTestCase { @Inject private VmNicFilterParameterDao dao; /** * Ensures null is returned. */ @Test public void testGetWithNonExistingId() { VmNicFilterParameter result = dao.get(Guid.newGuid()); assertNull(result); } /** * Ensures that the network filter parameter is returned. */ @Test public void testGet() { VmNicFilterParameter result = dao.get(FixturesTool.VM_NETWORK_FILTER_PARAMETER); assertNotNull(result); assertEquals(FixturesTool.VM_NETWORK_FILTER_PARAMETER, result.getId()); } /** * Ensures that the expected number of network filter parameters is returned. */ @Test public void testGetAll() { List<VmNicFilterParameter> parameters = dao.getAll(); assertNotNull(parameters); assertEquals(FixturesTool.NUMBER_OF_VM_NETWORK_FILTER_PARAMETERS, parameters.size()); } /** * Ensures that the returned network filter parameters are associated to the network interface. */ @Test public void testGetAllForVmNic() { List<VmNicFilterParameter> result = dao.getAllForVmNic(FixturesTool.VM_NETWORK_INTERFACE); assertNotNull(result); assertEquals(FixturesTool.NUMBER_OF_VM_NETWORK_FILTER_PARAMETERS_OF_VM_NETWORK_INTERFACE, result.size()); for (VmNicFilterParameter parameter : result) { assertEquals(FixturesTool.VM_NETWORK_INTERFACE, parameter.getVmInterfaceId()); } } /** * Ensures an empty collection is returned. */ @Test public void testGetAllInterfacesForVmWithInvalidNic() { List<VmNicFilterParameter> result = dao.getAllForVmNic(Guid.newGuid()); assertNotNull(result); assertTrue(result.isEmpty()); } /** * Ensures that after an update, the network filter parameter is indeed persisted with new values. */ @Test public void testUpdate() { VmNicFilterParameter updatedParameter = new VmNicFilterParameter(); updatedParameter.setId(FixturesTool.VM_NETWORK_FILTER_PARAMETER); updatedParameter.setName("IP"); updatedParameter.setValue("192.168.122.1"); updatedParameter.setVmInterfaceId(FixturesTool.VM_NETWORK_INTERFACE); assertNotEquals(updatedParameter, dao.get(FixturesTool.VM_NETWORK_FILTER_PARAMETER)); dao.update(updatedParameter); assertEquals(updatedParameter, dao.get(FixturesTool.VM_NETWORK_FILTER_PARAMETER)); } /** * Ensures that a pre-existing network filter parameter is removed. */ @Test public void testRemove() { assertNotNull(dao.get(FixturesTool.VM_NETWORK_FILTER_PARAMETER)); dao.remove(FixturesTool.VM_NETWORK_FILTER_PARAMETER); assertNull(dao.get(FixturesTool.VM_NETWORK_FILTER_PARAMETER)); } /** * Ensures that a newly-created network filter parameter is properly persisted. */ @Test public void testSave() { VmNicFilterParameter parameter = new VmNicFilterParameter(); parameter.setId(Guid.newGuid()); parameter.setName("IP"); parameter.setValue("192.168.122.2"); parameter.setVmInterfaceId(FixturesTool.VM_NETWORK_INTERFACE); assertNull(dao.get(parameter.getId())); dao.save(parameter); assertEquals(parameter, dao.get(parameter.getId())); } }