@Test public void testPrepare() { CustomCollector collector = new CustomCollector(); TestQueryBolt bolt = new TestQueryBolt(new BulletStormConfig()); ComponentUtils.prepare(bolt, collector); Assert.assertEquals(collector.getAckedCount(), 0); bolt.getCollector().ack(null); Assert.assertEquals(collector.getAckedCount(), 1); Assert.assertEquals(bolt.getQueries().size(), 0); Assert.assertEquals(bolt.getMetricsMapping(), BulletStormConfig.DEFAULT_TOPOLOGY_METRICS_BUILT_IN_EMIT_INTERVAL_MAPPING); Assert.assertEquals(bolt.isMetricsEnabled(), BulletStormConfig.DEFAULT_TOPOLOGY_METRICS_ENABLE); Tuple tuple = mock(Tuple.class); doReturn(TopologyConstants.RECORD_COMPONENT).when(tuple).getSourceComponent(); Assert.assertEquals(bolt.getClassifier().classify(tuple), Optional.of(Type.RECORD_TUPLE)); }
@Test public void testMetricsUpdateOnMetricsDisabled() { CustomTopologyContext context = new CustomTopologyContext(); CustomCollector collector = new CustomCollector(); TestQueryBolt bolt = new TestQueryBolt(new BulletStormConfig()); ComponentUtils.prepare(new HashMap<>(), bolt, context, collector); Assert.assertFalse(bolt.isMetricsEnabled()); bolt.execute(null); IMetric averager = context.getRegisteredMetricByName("foo"); IMetric counter = context.getRegisteredMetricByName("bar"); Assert.assertNull(averager.getValueAndReset()); Assert.assertEquals(counter.getValueAndReset(), 0L); }
@Test public void testMetricsUpdateOnMetricsEnabled() { CustomTopologyContext context = new CustomTopologyContext(); CustomCollector collector = new CustomCollector(); BulletStormConfig config = new BulletStormConfig(); config.set(BulletStormConfig.TOPOLOGY_METRICS_BUILT_IN_ENABLE, true); config.validate(); TestQueryBolt bolt = new TestQueryBolt(config); ComponentUtils.prepare(new HashMap<>(), bolt, context, collector); Assert.assertTrue(bolt.isMetricsEnabled()); bolt.execute(null); IMetric averager = context.getRegisteredMetricByName("foo"); IMetric counter = context.getRegisteredMetricByName("bar"); Assert.assertEquals(averager.getValueAndReset(), 1.0); Assert.assertEquals(counter.getValueAndReset(), 1L); }