From 40e69ece27e1ab97fae0739a9366ce279d47e8d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lars=20Blu=CC=88mke?= <lbl@informatik.uni-kiel.de>
Date: Wed, 20 Apr 2016 10:35:39 +0200
Subject: [PATCH] Test case for ThreadsStatusDisplayFilter

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

diff --git a/src/test/java/kieker/analysis/plugin/filter/sink/ThreadsStatusDisplayFilterTest.java b/src/test/java/kieker/analysis/plugin/filter/sink/ThreadsStatusDisplayFilterTest.java
new file mode 100644
index 00000000..7856321e
--- /dev/null
+++ b/src/test/java/kieker/analysis/plugin/filter/sink/ThreadsStatusDisplayFilterTest.java
@@ -0,0 +1,59 @@
+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.jvm.ThreadsStatusRecord;
+
+public class ThreadsStatusDisplayFilterTest {
+	private ThreadsStatusRecord record;
+	private ThreadsStatusDisplayFilter threadsStatusFilter;
+
+	private final int numberOfEntries = 3;
+	private final TimeUnit recordsTimeUnit = TimeUnit.MILLISECONDS;
+
+	private final long timestamp = 1L;
+	private final String hostname = "test_host";
+	private final String vmName = "test_vm";
+	private final long threadCount = 2;
+	private final long daemonThreadCount = 1;
+	private final long peakThreadCount = 4;
+	private final long totalStartedThreadCount = 3;
+
+	@Before
+	public void initializeThreadStatusDisplayFilter() {
+		record = new ThreadsStatusRecord(timestamp, hostname, vmName, threadCount, daemonThreadCount, peakThreadCount, totalStartedThreadCount);
+		threadsStatusFilter = new ThreadsStatusDisplayFilter(numberOfEntries, recordsTimeUnit);
+	}
+
+	@Test
+	public void xyPlotEntriesShouldBeCorrect() {
+		test(threadsStatusFilter).and().send(record).to(threadsStatusFilter.getInputPort()).start();
+
+		final Date date = new Date(TimeUnit.MILLISECONDS.convert(record.getLoggingTimestamp(), recordsTimeUnit));
+		final String minutesAndSeconds = date.toString().substring(14, 19);
+
+		final String id = record.getHostname() + " - " + record.getVmName();
+
+		long actualThreadCount = (long) threadsStatusFilter.getXYPlot().getEntries(id + " - " + ThreadsStatusDisplayFilter.THREADS).get(minutesAndSeconds);
+		long actualTotalStartedThreadCount = (long) threadsStatusFilter.getXYPlot().getEntries(id + " - " + ThreadsStatusDisplayFilter.TOTAL_THREADS)
+				.get(minutesAndSeconds);
+		long actualPeakThreadCount = (long) threadsStatusFilter.getXYPlot().getEntries(id + " - " + ThreadsStatusDisplayFilter.PEAK_THREADS).get(minutesAndSeconds);
+		long actualDaemonThreadCount = (long) threadsStatusFilter.getXYPlot().getEntries(id + " - " + ThreadsStatusDisplayFilter.DAEMON_THREADS)
+				.get(minutesAndSeconds);
+
+		assertThat(actualThreadCount, is(threadCount));
+		assertThat(actualTotalStartedThreadCount, is(totalStartedThreadCount));
+		assertThat(actualPeakThreadCount, is(peakThreadCount));
+		assertThat(actualDaemonThreadCount, is(daemonThreadCount));
+
+	}
+
+}
-- 
GitLab