Files
baiyue-firstleg/common-web/src/test/java/com/baiyue/common/web/RestClientTracePropagationAutoConfigurationTest.java
T
2026-08-25 19:07:34 +08:00

38 lines
1.8 KiB
Java

package com.baiyue.common.web;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.boot.web.client.RestClientCustomizer;
import org.springframework.core.Ordered;
import org.springframework.web.client.RestClient;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
class RestClientTracePropagationAutoConfigurationTest {
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(RestClientTracePropagationAutoConfiguration.class));
@Test
void registersInterceptorAndIndependentCustomizer() {
contextRunner.run(context -> {
assertThat(context).hasSingleBean(RestClientTraceInterceptor.class);
assertThat(context).hasBean("baiyueTraceRestClientCustomizer");
assertThat(context.getBeansOfType(RestClientCustomizer.class)).hasSize(1);
RestClientTraceCustomizer customizer = context.getBean(RestClientTraceCustomizer.class);
assertThat(customizer.getOrder()).isEqualTo(Ordered.LOWEST_PRECEDENCE);
RestClient.Builder builder = mock(RestClient.Builder.class);
customizer.customize(builder);
verify(builder).requestInterceptor(context.getBean(RestClientTraceInterceptor.class));
});
}
@Test
void reusesApplicationProvidedTraceInterceptor() {
contextRunner.withBean(RestClientTraceInterceptor.class, RestClientTraceInterceptor::new)
.run(context -> assertThat(context).hasSingleBean(RestClientTraceInterceptor.class));
}
}