|
16 | 16 |
|
17 | 17 | package org.springframework.boot.actuate.autoconfigure.metrics;
|
18 | 18 |
|
19 |
| -import io.micrometer.core.instrument.binder.kafka.KafkaClientMetrics; |
20 | 19 | import org.junit.jupiter.api.Test;
|
21 | 20 |
|
22 | 21 | import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
|
23 | 22 | import org.springframework.boot.autoconfigure.AutoConfigurations;
|
24 | 23 | import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
|
25 | 24 | import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
26 |
| -import org.springframework.context.annotation.Bean; |
27 |
| -import org.springframework.context.annotation.Configuration; |
| 25 | +import org.springframework.kafka.core.DefaultKafkaConsumerFactory; |
| 26 | +import org.springframework.kafka.core.DefaultKafkaProducerFactory; |
| 27 | +import org.springframework.kafka.core.MicrometerConsumerListener; |
| 28 | +import org.springframework.kafka.core.MicrometerProducerListener; |
28 | 29 |
|
29 | 30 | import static org.assertj.core.api.Assertions.assertThat;
|
30 |
| -import static org.mockito.Mockito.mock; |
31 | 31 |
|
32 | 32 | /**
|
33 | 33 | * Tests for {@link KafkaMetricsAutoConfiguration}.
|
|
37 | 37 | */
|
38 | 38 | class KafkaMetricsAutoConfigurationTests {
|
39 | 39 |
|
40 |
| - private final ApplicationContextRunner contextRunner = new ApplicationContextRunner().with(MetricsRun.simple()) |
| 40 | + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() |
41 | 41 | .withConfiguration(AutoConfigurations.of(KafkaMetricsAutoConfiguration.class));
|
42 | 42 |
|
43 | 43 | @Test
|
44 |
| - void whenThereIsNoProducerFactoryAutoConfigurationBacksOff() { |
45 |
| - this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean(KafkaClientMetrics.class)); |
| 44 | + void whenThereIsAMeterRegistryThenMetricsListenersAreAdded() { |
| 45 | + this.contextRunner.with(MetricsRun.simple()) |
| 46 | + .withConfiguration(AutoConfigurations.of(KafkaAutoConfiguration.class)).run((context) -> { |
| 47 | + assertThat(((DefaultKafkaProducerFactory<?, ?>) context.getBean(DefaultKafkaProducerFactory.class)) |
| 48 | + .getListeners()).hasSize(1).hasOnlyElementsOfTypes(MicrometerProducerListener.class); |
| 49 | + assertThat(((DefaultKafkaConsumerFactory<?, ?>) context.getBean(DefaultKafkaConsumerFactory.class)) |
| 50 | + .getListeners()).hasSize(1).hasOnlyElementsOfTypes(MicrometerConsumerListener.class); |
| 51 | + }); |
46 | 52 | }
|
47 | 53 |
|
48 | 54 | @Test
|
49 |
| - void whenThereIsAProducerFactoryKafkaClientMetricsIsConfigured() { |
50 |
| - this.contextRunner.withConfiguration(AutoConfigurations.of(KafkaAutoConfiguration.class)) |
51 |
| - .run((context) -> assertThat(context).hasSingleBean(KafkaClientMetrics.class)); |
52 |
| - } |
53 |
| - |
54 |
| - @Test |
55 |
| - void allowsCustomKafkaClientMetricsToBeUsed() { |
56 |
| - this.contextRunner.withConfiguration(AutoConfigurations.of(KafkaAutoConfiguration.class)) |
57 |
| - .withUserConfiguration(CustomKafkaClientMetricsConfiguration.class).run((context) -> assertThat(context) |
58 |
| - .hasSingleBean(KafkaClientMetrics.class).hasBean("customKafkaClientMetrics")); |
59 |
| - } |
60 |
| - |
61 |
| - @Configuration(proxyBeanMethods = false) |
62 |
| - static class CustomKafkaClientMetricsConfiguration { |
63 |
| - |
64 |
| - @Bean |
65 |
| - KafkaClientMetrics customKafkaClientMetrics() { |
66 |
| - return mock(KafkaClientMetrics.class); |
67 |
| - } |
68 |
| - |
| 55 | + void whenThereIsNoMeterRegistryThenListenerCustomizationBacksOff() { |
| 56 | + this.contextRunner.withConfiguration(AutoConfigurations.of(KafkaAutoConfiguration.class)).run((context) -> { |
| 57 | + assertThat(((DefaultKafkaProducerFactory<?, ?>) context.getBean(DefaultKafkaProducerFactory.class)) |
| 58 | + .getListeners()).isEmpty(); |
| 59 | + assertThat(((DefaultKafkaConsumerFactory<?, ?>) context.getBean(DefaultKafkaConsumerFactory.class)) |
| 60 | + .getListeners()).isEmpty(); |
| 61 | + }); |
69 | 62 | }
|
70 | 63 |
|
71 | 64 | }
|
0 commit comments