@Test public void single_arg_constructor_sets_fields_as_expected() { // given setupMetricRegistryAndCodahaleMetricsCollector(); // when CodahaleMetricsListener instance = new CodahaleMetricsListener(cmcMock); // then verifyServerStatisticMetrics(instance); assertThat(instance.getMetricsCollector()).isSameAs(cmcMock); assertThat(instance.metricsCollector).isSameAs(cmcMock); assertThat(instance.endpointMetricsHandler) .isNotNull() .isInstanceOf(EndpointMetricsHandlerDefaultImpl.class); assertThat(instance.getEndpointMetricsHandler()).isSameAs(instance.endpointMetricsHandler); assertThat(instance.includeServerConfigMetrics).isFalse(); assertNamingStrategyIsDefault(instance.serverStatsMetricNamingStrategy, DEFAULT_PREFIX, DEFAULT_WORD_DELIMITER); assertNamingStrategyIsDefault(instance.serverConfigMetricNamingStrategy, ServerConfig.class.getSimpleName(), DEFAULT_WORD_DELIMITER); assertThat(registeredGauges).isEmpty(); }
@Before public void setUp() throws Exception { executor = Executors.newCachedThreadPool(); serverConfig = new MetricsTestConfig(); metricsListener = (CodahaleMetricsListener) serverConfig.metricsListener(); endpointMetricsHandler = (EndpointMetricsHandlerDefaultImpl) metricsListener.getEndpointMetricsHandler(); assertTrue(serverConfig.endpointsPort() > 0); logger.info("Dynamically chose server port {}", serverConfig.endpointsPort()); nonblockingEndpointUrl = "http://127.0.0.1:" + serverConfig.endpointsPort() + NON_BLOCKING_MATCHING_PATH; server = new Server(serverConfig); server.startup(); // Perform a "warmup" to get the Server ready to go - the first call is always slower than normal. List<Future<?>> warmupCalls = new ArrayList<>(); warmupCalls.add(sendServerRequest(nonblockingEndpointUrl)); for (Future f : warmupCalls) { f.get(); } }
@Test public void kitchen_sink_constructor_handles_default_args() { // given setupMetricRegistryAndCodahaleMetricsCollector(); // when CodahaleMetricsListener instance = new CodahaleMetricsListener( cmcMock, null, false, null, null, null ); // then verifyServerStatisticMetrics(instance); assertThat(instance.getMetricsCollector()).isSameAs(cmcMock); assertThat(instance.metricsCollector).isSameAs(cmcMock); assertThat(instance.endpointMetricsHandler) .isNotNull() .isInstanceOf(EndpointMetricsHandlerDefaultImpl.class); assertThat(instance.getEndpointMetricsHandler()).isSameAs(instance.endpointMetricsHandler); assertThat(instance.includeServerConfigMetrics).isFalse(); assertNamingStrategyIsDefault(instance.serverStatsMetricNamingStrategy, DEFAULT_PREFIX, DEFAULT_WORD_DELIMITER); assertNamingStrategyIsDefault(instance.serverConfigMetricNamingStrategy, ServerConfig.class.getSimpleName(), DEFAULT_WORD_DELIMITER); assertThat(instance.requestAndResponseSizeHistogramSupplier) .isSameAs(DEFAULT_REQUEST_AND_RESPONSE_SIZE_HISTOGRAM_SUPPLIER); assertThat(registeredGauges).isEmpty(); }
@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(); }