|
28 | 28 | import reactor.core.publisher.Flux;
|
29 | 29 | import reactor.core.publisher.Mono;
|
30 | 30 |
|
| 31 | +import org.springframework.beans.factory.NoUniqueBeanDefinitionException; |
31 | 32 | import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
32 | 33 | import org.springframework.context.annotation.Bean;
|
33 | 34 | import org.springframework.context.annotation.Configuration;
|
|
49 | 50 |
|
50 | 51 | import static java.time.Duration.ofMillis;
|
51 | 52 | import static org.assertj.core.api.Assertions.assertThat;
|
| 53 | +import static org.assertj.core.api.Assertions.assertThatThrownBy; |
52 | 54 |
|
53 | 55 | /**
|
54 | 56 | * Unit tests for {@link WebHttpHandlerBuilder}.
|
@@ -173,6 +175,14 @@ void observationRegistry() {
|
173 | 175 | .that().hasLowCardinalityKeyValue("uri", "UNKNOWN");
|
174 | 176 | }
|
175 | 177 |
|
| 178 | + @Test |
| 179 | + void shouldRejectDuplicateObservationConvention() { |
| 180 | + AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(ObservationConfig.class, |
| 181 | + DuplicateConventionObservationConfig.class); |
| 182 | + assertThatThrownBy(() -> WebHttpHandlerBuilder.applicationContext(applicationContext).build()) |
| 183 | + .isInstanceOf(NoUniqueBeanDefinitionException.class); |
| 184 | + } |
| 185 | + |
176 | 186 | private static Mono<Void> writeToResponse(ServerWebExchange exchange, String value) {
|
177 | 187 | byte[] bytes = value.getBytes(StandardCharsets.UTF_8);
|
178 | 188 | DataBuffer buffer = DefaultDataBufferFactory.sharedInstance.wrap(bytes);
|
@@ -315,4 +325,14 @@ public WebHandler webHandler() {
|
315 | 325 |
|
316 | 326 | }
|
317 | 327 |
|
| 328 | + @Configuration |
| 329 | + static class DuplicateConventionObservationConfig { |
| 330 | + |
| 331 | + @Bean |
| 332 | + public ServerRequestObservationConvention duplicateRequestObservationConvention() { |
| 333 | + return new DefaultServerRequestObservationConvention(); |
| 334 | + } |
| 335 | + |
| 336 | + } |
| 337 | + |
318 | 338 | }
|
0 commit comments