@ -44,7 +44,10 @@ import org.springframework.boot.test.context.runner.ContextConsumer;
@@ -44,7 +44,10 @@ import org.springframework.boot.test.context.runner.ContextConsumer;
import org.springframework.context.ConfigurableApplicationContext ;
import org.springframework.context.annotation.Bean ;
import org.springframework.context.annotation.Configuration ;
import org.springframework.core.env.ConfigurableEnvironment ;
import org.springframework.core.env.Environment ;
import org.springframework.core.env.MapPropertySource ;
import org.springframework.core.env.PropertySource ;
import org.springframework.mock.env.MockPropertySource ;
import org.springframework.util.unit.DataSize ;
@ -143,6 +146,21 @@ class ConfigurationPropertiesReportEndpointTests {
@@ -143,6 +146,21 @@ class ConfigurationPropertiesReportEndpointTests {
. isEqualTo ( Duration . ofSeconds ( 10 ) . toString ( ) ) ) ) ;
}
@Test // gh-36076
void descriptorWithWrapperProperty ( ) {
this . contextRunner . withUserConfiguration ( TestPropertiesConfiguration . class ) . withInitializer ( ( context ) - > {
ConfigurableEnvironment environment = context . getEnvironment ( ) ;
Map < String , Object > map = Collections . singletonMap ( "test.wrapper" , 10 ) ;
PropertySource < ? > propertySource = new MapPropertySource ( "test" , map ) ;
environment . getPropertySources ( ) . addLast ( propertySource ) ;
} )
. run ( assertProperties ( "test" , ( properties ) - > assertThat ( properties . get ( "wrapper" ) ) . isEqualTo ( 10 ) ,
( inputs ) - > {
Map < String , Object > wrapper = ( Map < String , Object > ) inputs . get ( "wrapper" ) ;
assertThat ( wrapper . get ( "value" ) ) . isEqualTo ( 10 ) ;
} ) ) ;
}
@Test
void descriptorWithNonCamelCaseProperty ( ) {
this . contextRunner . withUserConfiguration ( MixedCasePropertiesConfiguration . class )
@ -476,6 +494,8 @@ class ConfigurationPropertiesReportEndpointTests {
@@ -476,6 +494,8 @@ class ConfigurationPropertiesReportEndpointTests {
private String ignored = "dummy" ;
private Integer wrapper ;
public String getDbPassword ( ) {
return this . dbPassword ;
}
@ -512,6 +532,14 @@ class ConfigurationPropertiesReportEndpointTests {
@@ -512,6 +532,14 @@ class ConfigurationPropertiesReportEndpointTests {
return this . ignored ;
}
public Integer getWrapper ( ) {
return this . wrapper ;
}
public void setWrapper ( Integer wrapper ) {
this . wrapper = wrapper ;
}
}
@Configuration ( proxyBeanMethods = false )