diff --git a/src/test/java/kieker/analysis/plugin/filter/sink/GCDisplayFilterTest.java b/src/test/java/kieker/analysis/plugin/filter/sink/GCDisplayFilterTest.java new file mode 100644 index 0000000000000000000000000000000000000000..621a87bd1cf274ae11f0742972c1c0b508875938 --- /dev/null +++ b/src/test/java/kieker/analysis/plugin/filter/sink/GCDisplayFilterTest.java @@ -0,0 +1,58 @@ +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.GCRecord; + +/** + * Test cases for GCDisplayFilter + * + * @author Lars Erik Bluemke + */ +public class GCDisplayFilterTest { + + private GCRecord record; + private GCDisplayFilter gcDisplayFilter; + + 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 String gcName = "test_gc"; + private final long collectionCount = 2; + private final long collectionTimeMS = 3; + + @Before + public void initializeGCDisplayFilter() { + record = new GCRecord(timestamp, hostname, vmName, gcName, collectionCount, collectionTimeMS); + gcDisplayFilter = new GCDisplayFilter(numberOfEntries, recordsTimeUnit); + } + + @Test + public void xyPlotEntriesShouldBeCorrect() { + test(gcDisplayFilter).and().send(record).to(gcDisplayFilter.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() + " - " + record.getGcName(); + + long actualCollectionCount = (long) gcDisplayFilter.getXYPlot().getEntries(id + " - " + "Collection Count").get(minutesAndSeconds); + long actualCollectionTime = (long) gcDisplayFilter.getXYPlot().getEntries(id + " - " + "Collection Time").get(minutesAndSeconds); + + assertThat(actualCollectionCount, is(collectionCount)); + assertThat(actualCollectionTime, is(collectionTimeMS)); + + } + +}