|
|
@ -14,14 +14,17 @@
|
|
|
|
* limitations under the License.
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
package org.springframework.boot.autoconfigure.kubernetes;
|
|
|
|
package org.springframework.boot.autoconfigure.availability;
|
|
|
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
|
|
|
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
|
|
|
import org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration;
|
|
|
|
|
|
|
|
import org.springframework.boot.availability.ApplicationAvailability;
|
|
|
|
import org.springframework.boot.availability.ApplicationAvailability;
|
|
|
|
|
|
|
|
import org.springframework.boot.availability.AvailabilityChangeEvent;
|
|
|
|
|
|
|
|
import org.springframework.boot.availability.AvailabilityState;
|
|
|
|
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
|
|
|
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
|
|
|
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
|
|
|
|
|
|
|
|
|
@ -29,6 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|
|
|
* Tests for {@link ApplicationAvailabilityAutoConfiguration}
|
|
|
|
* Tests for {@link ApplicationAvailabilityAutoConfiguration}
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @author Brian Clozel
|
|
|
|
* @author Brian Clozel
|
|
|
|
|
|
|
|
* @author Taeik Lim
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
class ApplicationAvailabilityAutoConfigurationTests {
|
|
|
|
class ApplicationAvailabilityAutoConfigurationTests {
|
|
|
|
|
|
|
|
|
|
|
@ -36,8 +40,41 @@ class ApplicationAvailabilityAutoConfigurationTests {
|
|
|
|
.withConfiguration(AutoConfigurations.of(ApplicationAvailabilityAutoConfiguration.class));
|
|
|
|
.withConfiguration(AutoConfigurations.of(ApplicationAvailabilityAutoConfiguration.class));
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
void providerIsPresent() {
|
|
|
|
void providerIsPresentWhenNotRegistered() {
|
|
|
|
this.contextRunner.run(((context) -> assertThat(context).hasSingleBean(ApplicationAvailability.class)));
|
|
|
|
this.contextRunner.run(((context) -> assertThat(context).hasSingleBean(ApplicationAvailability.class)
|
|
|
|
|
|
|
|
.hasBean("applicationAvailability")));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
void providerIsPresentWithRegisteredOne() {
|
|
|
|
|
|
|
|
this.contextRunner.withUserConfiguration(ApplicationAvailabilityConfig.class)
|
|
|
|
|
|
|
|
.run(((context) -> assertThat(context).hasSingleBean(ApplicationAvailability.class)
|
|
|
|
|
|
|
|
.hasBean("customApplicationAvailability")));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Configuration(proxyBeanMethods = false)
|
|
|
|
|
|
|
|
static class ApplicationAvailabilityConfig {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Bean
|
|
|
|
|
|
|
|
ApplicationAvailability customApplicationAvailability() {
|
|
|
|
|
|
|
|
return new ApplicationAvailability() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public <S extends AvailabilityState> S getState(Class<S> stateType, S defaultState) {
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public <S extends AvailabilityState> S getState(Class<S> stateType) {
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public <S extends AvailabilityState> AvailabilityChangeEvent<S> getLastChangeEvent(Class<S> stateType) {
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|