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 0000000000000000000000000000000000000000..7856321ede8f5915acc5a9114afb3c855be2db8a --- /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)); + + } + +}