package org.ovirt.engine.core.dao.network;
import static org.junit.Assert.assertEquals;
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.NetworkFilter;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.compat.Version;
import org.ovirt.engine.core.dao.BaseDaoTestCase;
import org.ovirt.engine.core.dao.FixturesTool;
public class NetworkFilterDaoTest extends BaseDaoTestCase {
private static final String INVALID_NETWORK_FILTER_NAME = "invalid-network-filter-name";
private static final String INVALID_VERSION = "1.0";
@Inject
private NetworkFilterDao dao;
@Test
public void testGetAllNetworkFilters() {
final List<NetworkFilter> allNetworkFilter = dao.getAllNetworkFilters();
assertNotNull(allNetworkFilter);
assertEquals(3, allNetworkFilter.size());
NetworkFilter networkFilter = expectedNetworkFilter();
assertEquals(networkFilter, allNetworkFilter.get(0));
}
@Test
public void testGetAllSupportedNetworkFiltersByVersion() {
final Version version = new Version("4.0");
final List<NetworkFilter> allNetworkFilter = dao.getAllSupportedNetworkFiltersByVersion(version);
assertNotNull(allNetworkFilter);
assertEquals(3, allNetworkFilter.size());
NetworkFilter expectedNetworkFilter = initOvirtNoFilter();
assertEquals(expectedNetworkFilter, allNetworkFilter.get(1));
expectedNetworkFilter = expectedNetworkFilter();
assertEquals(expectedNetworkFilter, allNetworkFilter.get(0));
}
@Test
public void testGetAllSupportedNetworkFiltersByVersionMediumVersion() {
final Version version = new Version("3.5");
assertFirstVersionOnly(version);
}
@Test
public void testGetAllSupportedNetworkFiltersByVersionFirstVersion() {
final Version version = new Version("3.0");
assertFirstVersionOnly(version);
}
@Test
public void testGetAllSupportedNetworkFiltersByInvalidVersion() {
final Version version = new Version(INVALID_VERSION);
final List<NetworkFilter> allNetworkFilter = dao.getAllSupportedNetworkFiltersByVersion(version);
assertTrue(allNetworkFilter.isEmpty());
}
private void assertFirstVersionOnly(Version version) {
final List<NetworkFilter> allNetworkFilter = dao.getAllSupportedNetworkFiltersByVersion(version);
assertNotNull(allNetworkFilter);
assertEquals(1, allNetworkFilter.size());
NetworkFilter expectedNetworkFilter = initOvirtNoFilter();
assertEquals(expectedNetworkFilter, allNetworkFilter.get(0));
}
@Test
public void testGetFilterById() {
final NetworkFilter actualNetworkFilter = dao.getNetworkFilterById(FixturesTool.NETWORK_FILTER);
final NetworkFilter expectedNetworkFilter = expectedNetworkFilter();
assertEquals(expectedNetworkFilter, actualNetworkFilter);
}
@Test
public void testGetFilterByInvalidId() {
final NetworkFilter actualNetworkFilter = dao.getNetworkFilterById(Guid.newGuid());
assertNull(actualNetworkFilter);
}
@Test
public void testGetFilterByName() {
final NetworkFilter actualNetworkFilter = dao.getNetworkFilterByName(FixturesTool.NETWORK_FILTER_NAME);
final NetworkFilter expectedNetworkFilter = expectedNetworkFilter();
assertEquals(expectedNetworkFilter, actualNetworkFilter);
}
@Test
public void testGetFilterByInvalidName() {
final NetworkFilter actualNetworkFilter = dao.getNetworkFilterByName(INVALID_NETWORK_FILTER_NAME);
assertNull(actualNetworkFilter);
}
private NetworkFilter expectedNetworkFilter() {
NetworkFilter networkFilter = new NetworkFilter();
networkFilter.setName(FixturesTool.NETWORK_FILTER_NAME);
networkFilter.setVersion(FixturesTool.NETWORK_FILTER_VERSION);
networkFilter.setId(FixturesTool.NETWORK_FILTER);
return networkFilter;
}
private NetworkFilter initOvirtNoFilter() {
NetworkFilter networkFilter = new NetworkFilter();
networkFilter.setName(FixturesTool.OVIRT_NO_FILTER_NETWORK_FILTER_NAME);
networkFilter.setVersion(FixturesTool.OVIRT_NO_FILTER_MINIMAL_SUPPORTED_VERSION);
networkFilter.setId(FixturesTool.OVIRT_NO_FILTER_NETWORK_FILTER);
return networkFilter;
}
}