From 0b1c34270e90f7a20308bc488d126b82aae5926f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lars=20Blu=CC=88mke?= <lbl@informatik.uni-kiel.de>
Date: Wed, 13 Apr 2016 12:16:53 +0200
Subject: [PATCH] Test cases for GPUUtilization Filter

---
 .../sink/CPUUtilizationDisplayFilterTest.java | 78 +++++++++++++++++++
 1 file changed, 78 insertions(+)
 create mode 100644 src/test/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilterTest.java

diff --git a/src/test/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilterTest.java b/src/test/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilterTest.java
new file mode 100644
index 00000000..6d21b328
--- /dev/null
+++ b/src/test/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilterTest.java
@@ -0,0 +1,78 @@
+package kieker.analysis.plugin.filter.sink;
+
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+import static teetime.framework.test.StageTester.test;
+
+import java.util.Date;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import kieker.common.record.system.CPUUtilizationRecord;
+
+/**
+ * Test cases for CPUUtilizationDisplayFilter
+ *
+ * @author Lars Erik Bluemke
+ */
+public class CPUUtilizationDisplayFilterTest {
+
+	private CPUUtilizationRecord record;
+	private CPUUtilizationDisplayFilter cpuUtilFilter;
+	private String id;
+
+	// Constructor arguments for filter
+	private final int numberOfEntries = 3;
+	private final TimeUnit recordsTimeUnit = TimeUnit.MILLISECONDS;
+	private final Number[] warningIntervals = { 1, 2, 3 };
+
+	// Record data
+	private final long timestamp = 1L;
+	private final String hostname = "hostname";
+	private final String cpuID = "cpu_1";
+	private final double user = 2.0;
+	private final double system = 3.0;
+	private final double wait = 4.0;
+	private final double nice = 5.0;
+	private final double irq = 6.0;
+	private final double totalUtilisation = 7.0;
+	private final double idle = 8.0;
+
+	@Before
+	public void initializeCPUUtilizationDisplayFilter() {
+		record = new CPUUtilizationRecord(timestamp, hostname, cpuID, user, system, wait, nice, irq, totalUtilisation, idle);
+		cpuUtilFilter = new CPUUtilizationDisplayFilter(numberOfEntries, warningIntervals, recordsTimeUnit);
+		id = record.getHostname() + " - " + record.getCpuID();
+	}
+
+	@Test
+	public void meterGaugeValueShouldBeCorrect() {
+		test(cpuUtilFilter).and().send(record).to(cpuUtilFilter.getInputPort()).start();
+
+		assertThat((double) cpuUtilFilter.getMeterGauge().getValue(id) / 100, is(totalUtilisation));
+	}
+
+	@Test
+	public void xyPlotEntriesShouldBeCorrect() {
+		test(cpuUtilFilter).and().send(record).to(cpuUtilFilter.getInputPort()).start();
+
+		final Date date = new Date(TimeUnit.MILLISECONDS.convert(record.getLoggingTimestamp(), recordsTimeUnit));
+		final String minutesAndSeconds = date.toString().substring(14, 19);
+
+		double actualUser = (double) cpuUtilFilter.getXYPlot().getEntries(id + " - " + "user").get(minutesAndSeconds);
+		double actualSystem = (double) cpuUtilFilter.getXYPlot().getEntries(id + " - " + "system").get(minutesAndSeconds);
+		double actualNice = (double) cpuUtilFilter.getXYPlot().getEntries(id + " - " + "nice").get(minutesAndSeconds);
+		double actualIrq = (double) cpuUtilFilter.getXYPlot().getEntries(id + " - " + "irq").get(minutesAndSeconds);
+		double actualTotalUtilization = (double) cpuUtilFilter.getXYPlot().getEntries(id + " - " + "totalUtilization").get(minutesAndSeconds);
+		double actualIdle = (double) cpuUtilFilter.getXYPlot().getEntries(id + " - " + "idle").get(minutesAndSeconds);
+
+		assertThat(actualUser / 100, is(user));
+		assertThat(actualSystem / 100, is(system));
+		assertThat(actualNice / 100, is(nice));
+		assertThat(actualIrq / 100, is(irq));
+		assertThat(actualTotalUtilization / 100, is(totalUtilisation));
+		assertThat(actualIdle / 100, is(idle));
+	}
+}
-- 
GitLab