package com.github.johrstrom.listener.updater; import com.github.johrstrom.collector.BaseCollectorConfig; import com.github.johrstrom.listener.ListenerCollectorConfig; import com.github.johrstrom.test.TestUtilities; import org.apache.jmeter.samplers.SampleEvent; import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.threads.JMeterContextService; import org.apache.jmeter.threads.JMeterVariables; import org.junit.Assert; import org.junit.Test; public class AbstractUpdaterTest { public static class TestUpdater extends AbstractUpdater { public TestUpdater(ListenerCollectorConfig cfg) { super(cfg); } @Override public void update(SampleEvent e) { // do nothing } } @Test public void testKeywords() { BaseCollectorConfig base = TestUtilities.simpleCounterCfg(); base.setLabels(new String[] {"label","code"}); ListenerCollectorConfig cfg = new ListenerCollectorConfig(base); TestUpdater u = new TestUpdater(cfg); SampleResult res = new SampleResult(); res.setSampleLabel("test_label"); res.setResponseCode("204"); SampleEvent event = new SampleEvent(res,"test_tg", new JMeterVariables()); String[] labels = u.labelValues(event); Assert.assertTrue(labels.length == 2); Assert.assertArrayEquals(new String[] {"test_label", "204"}, labels); } @Test public void testVariables() { BaseCollectorConfig base = TestUtilities.simpleCounterCfg(); base.setLabels(new String[] {"foo", "bar"}); ListenerCollectorConfig cfg = new ListenerCollectorConfig(base); TestUpdater u = new TestUpdater(cfg); JMeterVariables vars = new JMeterVariables(); vars.put("foo", "funny"); vars.put("bar", "banal"); JMeterContextService.getContext().setVariables(vars); SampleEvent event = new SampleEvent(new SampleResult(),"tg1", vars); String[] labels = u.labelValues(event); Assert.assertTrue(labels.length == 2); Assert.assertArrayEquals(new String[] {"funny", "banal"}, labels); } @Test public void testCombo() { BaseCollectorConfig base = TestUtilities.simpleCounterCfg(); base.setLabels(new String[] {"foo", "code", "bar", "label"}); ListenerCollectorConfig cfg = new ListenerCollectorConfig(base); TestUpdater u = new TestUpdater(cfg); JMeterVariables vars = new JMeterVariables(); vars.put("foo", "funnier"); vars.put("bar", "more banal"); JMeterContextService.getContext().setVariables(vars); SampleResult res = new SampleResult(); res.setSampleLabel("one after the"); res.setResponseCode("909"); SampleEvent event = new SampleEvent(res,"tg1", vars); String[] labels = u.labelValues(event); Assert.assertTrue(labels.length == 4); Assert.assertArrayEquals(new String[] {"funnier", "909", "more banal", "one after the"}, labels); } @Test public void testNulls() { BaseCollectorConfig base = TestUtilities.simpleCounterCfg(); base.setLabels(new String[] {"be_null_one", "be_null_two", "code"}); ListenerCollectorConfig cfg = new ListenerCollectorConfig(base); TestUpdater u = new TestUpdater(cfg); SampleResult res = new SampleResult(); res.setResponseCode("304"); SampleEvent event = new SampleEvent(res ,"tg1", new JMeterVariables()); String[] labels = u.labelValues(event); Assert.assertTrue(labels.length == 3); Assert.assertArrayEquals(new String[] {"null", "null", "304"}, labels); } }