package org.ovirt.engine.api.restapi.resource; import static org.junit.Assert.assertEquals; import java.util.List; import org.junit.Test; import org.ovirt.engine.api.model.Disk; import org.ovirt.engine.api.model.Statistic; import org.ovirt.engine.core.common.businessentities.storage.DiskImage; import org.ovirt.engine.core.compat.Guid; public class DiskStatisticalQueryTest { private static final double EPSILON = 0.1; private static final double READ_LATENCY = 1.1; private static final double WRITE_LATENCY = 2.2; private static final double FLUSH_LATENCY = 3.3; private static final int READ_RATE = 4; private static final int WRITE_RATE = 5; private DiskStatisticalQuery query = new DiskStatisticalQuery(getParent()); @Test public void testQuery() { List<Statistic> statistics = query.getStatistics(getDisk()); assertEquals(5, statistics.size()); for (Statistic statistic : statistics) { verifyStatistic(statistic); } } private Disk getParent() { Disk disk = new Disk(); disk.setId(Guid.Empty.toString()); return disk; } private DiskImage getDisk() { DiskImage disk = new DiskImage(); disk.setReadRate(READ_RATE); disk.setWriteRate(WRITE_RATE); disk.setReadLatency(READ_LATENCY); disk.setWriteLatency(WRITE_LATENCY); disk.setFlushLatency(FLUSH_LATENCY); return disk; } private void verifyStatistic(Statistic statistic) { if (statistic.getName().equals(DiskStatisticalQuery.DATA_READ.getName())) { assertEquals(READ_RATE, statistic.getValues().getValues().get(0).getDatum().intValue()); } if (statistic.getName().equals(DiskStatisticalQuery.DATA_WRITE.getName())) { assertEquals(WRITE_RATE, statistic.getValues().getValues().get(0).getDatum().intValue()); } if (statistic.getName().equals(DiskStatisticalQuery.READ_LATENCY.getName())) { assertEquals(READ_LATENCY, statistic.getValues().getValues().get(0).getDatum().doubleValue(), EPSILON); } if (statistic.getName().equals(DiskStatisticalQuery.WRITE_LATENCY.getName())) { assertEquals(WRITE_LATENCY, statistic.getValues().getValues().get(0).getDatum().doubleValue(), EPSILON); } if (statistic.getName().equals(DiskStatisticalQuery.FLUSH_LATENCY.getName())) { assertEquals(FLUSH_LATENCY, statistic.getValues().getValues().get(0).getDatum().doubleValue(), EPSILON); } } }