package org.ovirt.engine.core.dao.network;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.network.NetworkInterface;
import org.ovirt.engine.core.common.businessentities.network.NetworkStatistics;
import org.ovirt.engine.core.dao.BaseDaoTestCase;
public abstract class NetworkStatisticsDaoTest<T extends NetworkStatistics> extends BaseDaoTestCase {
protected abstract List<? extends NetworkInterface<T>> getAllInterfaces();
protected abstract void updateStatistics(T stats);
/**
* Ensures that updating statistics for an interface works as expected.
*/
protected void testUpdateStatistics(Double doubleValue, Long longValue) {
List<? extends NetworkInterface<T>> before = getAllInterfaces();
T stats = before.get(0).getStatistics();
stats.setReceiveDropRate(999.0);
stats.setReceiveRate(999.0);
stats.setReceivedBytes(longValue);
stats.setReceivedBytesOffset(longValue);
stats.setTransmitDropRate(999.0);
stats.setTransmitRate(999.0);
stats.setTransmitDropRate(999.0);
stats.setTransmittedBytes(longValue);
stats.setTransmittedBytesOffset(longValue);
stats.setSampleTime(doubleValue);
updateStatistics(stats);
List<? extends NetworkInterface<T>> after = getAllInterfaces();
boolean found = false;
for (NetworkInterface<T> ifaced : after) {
if (ifaced.getStatistics().getId().equals(stats.getId())) {
found = true;
assertEquals(stats.getReceiveDropRate(), ifaced.getStatistics().getReceiveDropRate());
assertEquals(stats.getReceiveRate(), ifaced.getStatistics().getReceiveRate());
assertEquals(stats.getReceivedBytes(), ifaced.getStatistics().getReceivedBytes());
assertEquals(stats.getReceivedBytesOffset(), ifaced.getStatistics().getReceivedBytesOffset());
assertEquals(stats.getTransmitDropRate(), ifaced.getStatistics().getTransmitDropRate());
assertEquals(stats.getTransmitRate(), ifaced.getStatistics().getTransmitRate());
assertEquals(stats.getTransmitDropRate(), ifaced.getStatistics().getTransmitDropRate());
assertEquals(stats.getTransmittedBytes(), ifaced.getStatistics().getTransmittedBytes());
assertEquals(stats.getTransmittedBytesOffset(), ifaced.getStatistics().getTransmittedBytesOffset());
assertEquals(stats.getSampleTime(), ifaced.getStatistics().getSampleTime());
}
}
if (!found) {
fail("Did not find statistics which is bad.");
}
}
}