committed by
Spencer Gibb
parent
2b6ad4a118
commit
2e81db24cf
@@ -1,88 +1,157 @@
|
||||
package org.springframework.cloud.autoconfigure;
|
||||
|
||||
import org.assertj.core.util.Lists;
|
||||
import org.junit.Test;
|
||||
import org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.instanceOf;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.cloud.context.environment.EnvironmentManagerMvcEndpoint;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class LifecycleMvcAutoConfigurationTests {
|
||||
|
||||
@Test
|
||||
public void postEnvMvcEndpointDisabled() {
|
||||
try (ConfigurableApplicationContext context = getApplicationContext(Config.class,
|
||||
"server.port=0", "endpoints.env.post.enabled=false")) {
|
||||
assertThat(context
|
||||
.getBeanNamesForType(EnvironmentManagerMvcEndpoint.class).length,
|
||||
is(equalTo(0)));
|
||||
}
|
||||
}
|
||||
// postEnvMvcEndpoint
|
||||
@Test
|
||||
public void postEnvMvcEndpointDisabled() {
|
||||
beanNotCreated("environmentManagerEndpoint",
|
||||
"endpoints.env.post.enabled=false");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pauseMvcEndpointDisabled() {
|
||||
endpointDisabled("endpoints.pause.enabled", "pauseMvcEndpoint");
|
||||
}
|
||||
@Test
|
||||
public void postEnvMvcEndpointGloballyDisabled() {
|
||||
beanNotCreated("environmentManagerEndpoint",
|
||||
"endpoints.enabled=false");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resumeMvcEndpointDisabled() {
|
||||
endpointDisabled("endpoints.resume.enabled", "resumeMvcEndpoint");
|
||||
}
|
||||
@Test
|
||||
public void postEnvMvcEndpointEnabled() {
|
||||
beanCreated("environmentManagerEndpoint",
|
||||
"endpoints.env.post.enabled=true");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void restartMvcEndpointDisabled() {
|
||||
endpointDisabled("endpoints.restart.enabled", "restartMvcEndpoint");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pauseMvcEndpointGloballyDisabled() {
|
||||
endpointDisabled("endpoints.enabled", "pauseMvcEndpoint");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resumeMvcEndpointGloballyDisabled() {
|
||||
endpointDisabled("endpoints.enabled", "resumeMvcEndpoint");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void restartMvcEndpointGloballyDisabled() {
|
||||
endpointDisabled("endpoints.enabled", "restartMvcEndpoint");
|
||||
}
|
||||
// restartMvcEndpoint
|
||||
@Test
|
||||
public void restartMvcEndpointDisabled() {
|
||||
beanNotCreated("restartMvcEndpoint",
|
||||
"endpoints.restart.enabled=false");
|
||||
}
|
||||
|
||||
private void endpointDisabled(String enabledProp, String beanName) {
|
||||
try (ConfigurableApplicationContext context = getApplicationContext(Config.class,
|
||||
"server.port=0", enabledProp + "=false")) {
|
||||
EndpointMvcAdapter endpoint = context.getBean(beanName,
|
||||
EndpointMvcAdapter.class);
|
||||
Object result = endpoint.invoke();
|
||||
assertThat("result is wrong type", result,
|
||||
is(instanceOf(ResponseEntity.class)));
|
||||
ResponseEntity<?> response = (ResponseEntity<?>) result;
|
||||
assertThat("response code was wrong", response.getStatusCode(),
|
||||
equalTo(HttpStatus.NOT_FOUND));
|
||||
}
|
||||
}
|
||||
@Test
|
||||
public void restartMvcEndpointGloballyDisabled() {
|
||||
beanNotCreated("restartMvcEndpoint",
|
||||
"endpoints.enabled=false");
|
||||
}
|
||||
|
||||
private static ConfigurableApplicationContext getApplicationContext(
|
||||
Class<?> configuration, String... properties) {
|
||||
return new SpringApplicationBuilder(configuration).properties(properties).run();
|
||||
}
|
||||
@Test
|
||||
public void restartMvcEndpointEnabled() {
|
||||
beanCreatedAndEndpointEnabled("restartMvcEndpoint",
|
||||
"endpoints.restart.enabled=true");
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@EnableAutoConfiguration
|
||||
static class Config {
|
||||
// pauseMvcEndpoint
|
||||
@Test
|
||||
public void pauseMvcEndpointDisabled() {
|
||||
beanNotCreated("pauseMvcEndpoint",
|
||||
"endpoints.pause.enabled=false");
|
||||
}
|
||||
|
||||
}
|
||||
@Test
|
||||
public void pauseMvcEndpointRestartDisabled() {
|
||||
beanNotCreated("pauseMvcEndpoint",
|
||||
"endpoints.restart.enabled=false",
|
||||
"endpoints.pause.enabled=true");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pauseMvcEndpointGloballyDisabled() {
|
||||
beanNotCreated("pauseMvcEndpoint",
|
||||
"endpoints.enabled=false");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pauseMvcEndpointEnabled() {
|
||||
beanCreatedAndEndpointEnabled("pauseMvcEndpoint",
|
||||
"endpoints.restart.enabled=true",
|
||||
"endpoints.pause.enabled=true");
|
||||
}
|
||||
|
||||
// resumeMvcEndpoint
|
||||
@Test
|
||||
public void resumeMvcEndpointDisabled() {
|
||||
beanNotCreated("resumeMvcEndpoint",
|
||||
"endpoints.restart.enabled=true",
|
||||
"endpoints.resume.enabled=false");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resumeMvcEndpointRestartDisabled() {
|
||||
beanNotCreated("resumeMvcEndpoint",
|
||||
"endpoints.restart.enabled=false",
|
||||
"endpoints.resume.enabled=true");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resumeMvcEndpointGloballyDisabled() {
|
||||
beanNotCreated("resumeMvcEndpoint",
|
||||
"endpoints.enabled=false");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resumeMvcEndpointEnabled() {
|
||||
beanCreatedAndEndpointEnabled("resumeMvcEndpoint",
|
||||
"endpoints.restart.enabled=true",
|
||||
"endpoints.resume.enabled=true");
|
||||
}
|
||||
|
||||
private void beanNotCreated(String beanName, String... contextProperties) {
|
||||
try (ConfigurableApplicationContext context = getApplicationContext(Config.class, contextProperties)) {
|
||||
assertThat("bean was created", context.containsBeanDefinition(beanName), equalTo(false));
|
||||
}
|
||||
}
|
||||
|
||||
private void beanCreated(String beanName, String... contextProperties) {
|
||||
try (ConfigurableApplicationContext context = getApplicationContext(Config.class, contextProperties)) {
|
||||
assertThat("bean was not created", context.containsBeanDefinition(beanName), equalTo(true));
|
||||
}
|
||||
}
|
||||
|
||||
private void beanCreatedAndEndpointEnabled(String beanName, String... properties) {
|
||||
try (ConfigurableApplicationContext context = getApplicationContext(Config.class, properties)) {
|
||||
assertThat("bean was not created", context.containsBeanDefinition(beanName), equalTo(true));
|
||||
|
||||
EndpointMvcAdapter endpoint = context.getBean(beanName, EndpointMvcAdapter.class);
|
||||
Object result = endpoint.invoke();
|
||||
|
||||
assertThat("result is wrong type", result,
|
||||
is(not(instanceOf(ResponseEntity.class))));
|
||||
}
|
||||
}
|
||||
|
||||
private static ConfigurableApplicationContext getApplicationContext(
|
||||
Class<?> configuration, String... properties) {
|
||||
|
||||
List<String> defaultProperties = Lists.newArrayList(properties);
|
||||
defaultProperties.add("server.port=0");
|
||||
defaultProperties.add("spring.jmx.default-domain=${random.uuid}");
|
||||
|
||||
return new SpringApplicationBuilder(configuration).properties(defaultProperties.toArray(new String[]{})).run();
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@EnableAutoConfiguration
|
||||
static class Config {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,14 +24,13 @@ public class RefreshAutoConfigurationClassPathTests {
|
||||
try (ConfigurableApplicationContext context = getApplicationContext(
|
||||
Config.class)) {
|
||||
assertFalse(context.getBeansOfType(RefreshEventListener.class).isEmpty());
|
||||
assertFalse(context.containsBean("refeshEndpoint"));
|
||||
assertFalse(context.containsBean("refreshEndpoint"));
|
||||
}
|
||||
}
|
||||
|
||||
private static ConfigurableApplicationContext getApplicationContext(
|
||||
Class<?> configuration, String... properties) {
|
||||
return new SpringApplicationBuilder(configuration).web(false)
|
||||
.properties(properties).run();
|
||||
return new SpringApplicationBuilder(configuration).web(false).properties(properties).run();
|
||||
}
|
||||
|
||||
@Configuration
|
||||
|
||||
@@ -33,8 +33,7 @@ public class RefreshAutoConfigurationTests {
|
||||
|
||||
private static ConfigurableApplicationContext getApplicationContext(
|
||||
Class<?> configuration, String... properties) {
|
||||
return new SpringApplicationBuilder(configuration).web(false)
|
||||
.properties(properties).run();
|
||||
return new SpringApplicationBuilder(configuration).web(false).properties(properties).run();
|
||||
}
|
||||
|
||||
@Configuration
|
||||
|
||||
Reference in New Issue
Block a user