38 lines
1.8 KiB
Java
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));
|
||
|
|
}
|
||
|
|
}
|