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 org.junit.Test;
import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.BaseDaoTestCase;
import org.ovirt.engine.core.dao.FixturesTool;
import org.springframework.dao.DuplicateKeyException;
public class NetworkQosDaoTest extends BaseDaoTestCase {
private NetworkQoSDao dao;
private static final Guid qosAId = Guid.createGuidFromString("de956031-6be2-43d6-bb90-5191c9253314");
private static final Guid qosBId = Guid.createGuidFromString("de956031-6be2-43d6-bb90-5191c9253315");
private static final Guid qosCId = Guid.createGuidFromString("de956031-6be2-43d6-bb90-5191c9253316");
private static final Guid qosDId = Guid.createGuidFromString("de956031-6be2-43d6-bb90-5191c9253317");
@Override
public void setUp() throws Exception {
super.setUp();
dao = getDbFacade().getNetworkQosDao();
}
/**
* Ensures that retrieving with an invalid ID returns null.
*/
@Test
public void testGetWithInvalidId() {
NetworkQoS result = dao.get(Guid.newGuid());
assertNull(result);
}
/**
* Ensures that retrieving VDS by ID works as expected.
*/
@Test
public void testGetNetworkQos() {
NetworkQoS result = dao.get(qosAId);
NetworkQoS trueA = new NetworkQoS();
trueA.setId(qosAId);
trueA.setName("network_qos_a");
trueA.setStoragePoolId(FixturesTool.STORAGE_POOL_MIXED_TYPES);
trueA.setInboundAverage(1000);
trueA.setInboundPeak(2000);
trueA.setInboundBurst(500);
trueA.setOutboundAverage(1000);
trueA.setOutboundPeak(2000);
trueA.setOutboundBurst(500);
assertNotNull(result);
assertEquals(trueA, result);
}
/**
* Test getAll
*/
@Test
public void testGetAllNetworkQos() {
assertEquals(2, dao.getAllForStoragePoolId(FixturesTool.STORAGE_POOL_MIXED_TYPES).size());
}
/**
* test update
*/
@Test
public void testUpdateNetworkQos() {
NetworkQoS newB = new NetworkQoS();
newB.setId(qosBId);
newB.setName("newB");
newB.setStoragePoolId(FixturesTool.STORAGE_POOL_MIXED_TYPES);
newB.setInboundAverage(30);
newB.setInboundPeak(30);
newB.setInboundBurst(30);
newB.setOutboundAverage(30);
newB.setOutboundPeak(30);
newB.setOutboundBurst(30);
dao.update(newB);
NetworkQoS afterUpdate = dao.get(qosBId);
assertEquals(newB, afterUpdate);
}
/**
* test remove
*/
@Test
public void testRemoveNetworkQos() {
dao.remove(qosCId);
NetworkQoS afterRemove = dao.get(qosCId);
assertNull(afterRemove);
}
/**
* test save
*/
@Test
public void testSaveNetworkQos() {
NetworkQoS qosD = new NetworkQoS();
qosD.setId(qosDId);
qosD.setName("qos_d");
qosD.setStoragePoolId(FixturesTool.STORAGE_POOL_MIXED_TYPES);
qosD.setInboundAverage(200);
qosD.setInboundPeak(200);
qosD.setInboundBurst(200);
qosD.setOutboundAverage(200);
qosD.setOutboundPeak(200);
qosD.setOutboundBurst(200);
dao.save(qosD);
NetworkQoS returnedD = dao.get(qosDId);
assertEquals(qosD, returnedD);
}
/**
* Test getAllForStoragePool
*/
@Test
public void testGetAllNetworkQosForStoragePool() {
assertEquals(2, dao.getAllForStoragePoolId(FixturesTool.STORAGE_POOL_MIXED_TYPES).size());
}
@Test
public void testCheckNullNameNotUnique() {
checkNameUniquness(null);
}
@Test(expected = DuplicateKeyException.class)
public void testCheckNameUniquness() {
checkNameUniquness("SomeName");
}
public void checkNameUniquness(String name) {
NetworkQoS entity = new NetworkQoS();
entity.setId(Guid.newGuid());
entity.setName(name);
entity.setStoragePoolId(FixturesTool.STORAGE_POOL_MIXED_TYPES);
dao.save(entity);
entity.setId(Guid.newGuid());
dao.save(entity);
}
}