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 static org.assertj.core.api.Assertions.assertThat; class CommonWebAutoConfigurationTest { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(CommonWebAutoConfiguration.class)); @Test void registersExceptionHandlerAndCorrelationFilterOutsideComponentScan() { contextRunner.run(context -> { assertThat(context).hasSingleBean(GlobalExceptionHandler.class); assertThat(context).hasSingleBean(CorrelationIdFilter.class); }); } @Test void backsOffWhenApplicationProvidesItsOwnBeans() { contextRunner.withBean(GlobalExceptionHandler.class, GlobalExceptionHandler::new) .withBean(CorrelationIdFilter.class, CorrelationIdFilter::new) .run(context -> { assertThat(context).hasSingleBean(GlobalExceptionHandler.class); assertThat(context).hasSingleBean(CorrelationIdFilter.class); }); } }