serverConfigMetricNamingStrategy = new DefaultMetricNamingStrategy<>( ServerConfig.class.getSimpleName(), DefaultMetricNamingStrategy.DEFAULT_WORD_DELIMITER );
@DataProvider(value = { // Underscore word delimiters on the next two "null | _ | foo_bar | single", "somePrefix | _ | somePrefix.foo_bar | somePrefix.single", // Word delimiter on the next line is a dash '-', not an underscore '_' "null | - | foo-bar | single", "other.Prefix | weirddelimiter | other.Prefix.fooweirddelimiterbar | other.Prefix.single", " | | foobar | single", "null | null | foobar | single", "yetMorePrefix | null | yetMorePrefix.foobar | yetMorePrefix.single" }, splitBy = "\\|") @Test public void defaultMetricNamingStrategy_works_as_expected( String prefix, String wordDelimiter, String expectedFooBarName, String expectedSingleName ) { // given DefaultMetricNamingStrategy<FooMetricName> strat = new DefaultMetricNamingStrategy<>(prefix, wordDelimiter); // when String actualFooBarName = strat.nameFor(FooMetricName.FOO_BAR); String actualSingleName = strat.nameFor(FooMetricName.SINGLE); // then assertThat(actualFooBarName).isEqualTo(expectedFooBarName); assertThat(actualSingleName).isEqualTo(expectedSingleName); }
doReturn(metricRegistryMock).when(alternateCmcMock).getMetricRegistry(); MetricNamingStrategy<ServerStatisticsMetricNames> statsNamingStrat = new DefaultMetricNamingStrategy<>(); MetricNamingStrategy<ServerConfigMetricNames> configNamingStrat = new DefaultMetricNamingStrategy<>(); Supplier<Histogram> histogramSupplier = () -> mock(Histogram.class);
@DataProvider(value = { "true", "false" }) @Test public void kitchen_sink_constructor_sets_fields_as_expected(boolean includeServerConfigMetrics) { // given setupMetricRegistryAndCodahaleMetricsCollector(); MetricNamingStrategy<ServerStatisticsMetricNames> statsNamingStrategyMock = new DefaultMetricNamingStrategy<>(); MetricNamingStrategy<ServerConfigMetricNames> configNamingStrategyMock = new DefaultMetricNamingStrategy<>(); Supplier<Histogram> customRequestAndResponseSizeHistogramSupplier = () -> mock(Histogram.class); // when CodahaleMetricsListener instance = new CodahaleMetricsListener( cmcMock, endpointMetricsHandlerMock, includeServerConfigMetrics, statsNamingStrategyMock, configNamingStrategyMock, customRequestAndResponseSizeHistogramSupplier ); // then verifyServerStatisticMetrics(instance); assertThat(instance.getMetricsCollector()).isSameAs(cmcMock); assertThat(instance.metricsCollector).isSameAs(cmcMock); assertThat(instance.getEndpointMetricsHandler()).isSameAs(endpointMetricsHandlerMock); assertThat(instance.endpointMetricsHandler).isSameAs(endpointMetricsHandlerMock); assertThat(instance.includeServerConfigMetrics).isEqualTo(includeServerConfigMetrics); assertThat(instance.serverStatsMetricNamingStrategy).isSameAs(statsNamingStrategyMock); assertThat(instance.serverConfigMetricNamingStrategy).isSameAs(configNamingStrategyMock); assertThat(instance.requestAndResponseSizeHistogramSupplier) .isSameAs(customRequestAndResponseSizeHistogramSupplier); assertThat(registeredGauges).isEmpty(); }
/** * @return A {@link DefaultMetricNamingStrategy} with the given prefix and word delimiter settings. */ static <T extends Enum> MetricNamingStrategy<T> defaultImpl(String prefix, String wordDelimiter) { return new DefaultMetricNamingStrategy<>(prefix, wordDelimiter); } }
/** * @return A default {@link DefaultMetricNamingStrategy}. */ static <T extends Enum> MetricNamingStrategy<T> defaultImpl() { return new DefaultMetricNamingStrategy<>(); }