package rocks.inspectit.shared.all.communication.valueobject; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import rocks.inspectit.shared.all.communication.DefaultData; import rocks.inspectit.shared.all.communication.data.TimerData; /** * Tests the functionality of {@link TimerRawVO}. * * @author Ivan Senic * */ @SuppressWarnings("PMD") public class TimerRawVOTest { private static final long PLATFORM_ID = 10L; private static final long SENSOR_ID = 20L; private static final long METHOD_ID = 30L; /** * Class under test. */ private TimerRawVO timerRawVO; /** * Init method. */ @BeforeMethod public void init() { timerRawVO = new TimerRawVO(null, PLATFORM_ID, SENSOR_ID, METHOD_ID, null, false); } /** * Tests adding of time only. */ @Test public void time() { double time1 = 5.5d; double time2 = 13.688d; timerRawVO.add(time1); timerRawVO.add(time2); DefaultData data = timerRawVO.finalizeData(); assertThat(data, is(instanceOf(TimerData.class))); TimerData timerData = (TimerData) data; assertThat(timerData.getPlatformIdent(), is(PLATFORM_ID)); assertThat(timerData.getSensorTypeIdent(), is(SENSOR_ID)); assertThat(timerData.getMethodIdent(), is(METHOD_ID)); assertThat(timerData.getCount(), is(2l)); assertThat(timerData.isTimeDataAvailable(), is(true)); assertThat(timerData.getAverage(), is((time1 + time2) / 2)); assertThat(timerData.getDuration(), is(time1 + time2)); assertThat(timerData.getMin(), is(Math.min(time1, time2))); assertThat(timerData.getMax(), is(Math.max(time1, time2))); assertThat(timerData.isExclusiveTimeDataAvailable(), is(false)); assertThat(timerData.isCpuMetricDataAvailable(), is(false)); } /** * Tests adding of time and cpu time. */ @Test public void timeAndCpu() { double time1 = 7.54545d; double time2 = 187.688d; double cpu1 = 5.65646d; double cpu2 = 155.2323d; timerRawVO.add(time1, cpu1); timerRawVO.add(time2, cpu2); DefaultData data = timerRawVO.finalizeData(); assertThat(data, is(instanceOf(TimerData.class))); TimerData timerData = (TimerData) data; assertThat(timerData.getPlatformIdent(), is(PLATFORM_ID)); assertThat(timerData.getSensorTypeIdent(), is(SENSOR_ID)); assertThat(timerData.getMethodIdent(), is(METHOD_ID)); assertThat(timerData.getCount(), is(2l)); assertThat(timerData.isTimeDataAvailable(), is(true)); assertThat(timerData.getAverage(), is((time1 + time2) / 2)); assertThat(timerData.getDuration(), is(time1 + time2)); assertThat(timerData.getMin(), is(Math.min(time1, time2))); assertThat(timerData.getMax(), is(Math.max(time1, time2))); assertThat(timerData.isExclusiveTimeDataAvailable(), is(false)); assertThat(timerData.isCpuMetricDataAvailable(), is(true)); assertThat(timerData.getCpuAverage(), is((cpu1 + cpu2) / 2)); assertThat(timerData.getCpuDuration(), is(cpu1 + cpu2)); assertThat(timerData.getCpuMin(), is(Math.min(cpu1, cpu2))); assertThat(timerData.getCpuMax(), is(Math.max(cpu1, cpu2))); } }