@ -1,7 +1,5 @@
package org.springframework.cloud.context.refresh ;
package org.springframework.cloud.context.refresh ;
import static org.assertj.core.api.Assertions.assertThat ;
import java.util.ArrayList ;
import java.util.ArrayList ;
import java.util.Collections ;
import java.util.Collections ;
import java.util.HashMap ;
import java.util.HashMap ;
@ -11,7 +9,9 @@ import java.util.Map;
import org.junit.After ;
import org.junit.After ;
import org.junit.Test ;
import org.junit.Test ;
import org.mockito.Mockito ;
import org.mockito.Mockito ;
import org.springframework.boot.SpringApplication ;
import org.springframework.boot.SpringApplication ;
import org.springframework.boot.logging.LoggingSystem ;
import org.springframework.boot.test.util.EnvironmentTestUtils ;
import org.springframework.boot.test.util.EnvironmentTestUtils ;
import org.springframework.cloud.bootstrap.config.PropertySourceLocator ;
import org.springframework.cloud.bootstrap.config.PropertySourceLocator ;
import org.springframework.cloud.context.scope.refresh.RefreshScope ;
import org.springframework.cloud.context.scope.refresh.RefreshScope ;
@ -22,6 +22,8 @@ import org.springframework.core.env.MapPropertySource;
import org.springframework.core.env.MutablePropertySources ;
import org.springframework.core.env.MutablePropertySources ;
import org.springframework.core.env.PropertySource ;
import org.springframework.core.env.PropertySource ;
import static org.assertj.core.api.Assertions.assertThat ;
public class ContextRefresherTests {
public class ContextRefresherTests {
private RefreshScope scope = Mockito . mock ( RefreshScope . class ) ;
private RefreshScope scope = Mockito . mock ( RefreshScope . class ) ;
@ -32,6 +34,8 @@ public class ContextRefresherTests {
if ( context ! = null ) {
if ( context ! = null ) {
context . close ( ) ;
context . close ( ) ;
}
}
System . clearProperty ( LoggingSystem . SYSTEM_PROPERTY ) ;
TestLoggingSystem . count = 0 ;
}
}
@Test
@Test
@ -82,11 +86,33 @@ public class ContextRefresherTests {
EnvironmentTestUtils . addEnvironment ( context ,
EnvironmentTestUtils . addEnvironment ( context ,
"spring.cloud.bootstrap.sources: org.springframework.cloud.context.refresh.ContextRefresherTests.PropertySourceConfiguration\n"
"spring.cloud.bootstrap.sources: org.springframework.cloud.context.refresh.ContextRefresherTests.PropertySourceConfiguration\n"
+ "" ) ;
+ "" ) ;
ConfigurableApplicationContext refresherContext = refresher . addConfigFilesToEnvironment ( ) ;
ConfigurableApplicationContext refresherContext = refresher
assertThat ( refresherContext . getParent ( ) ) . isNotNull ( ) . isInstanceOf ( ConfigurableApplicationContext . class ) ;
. addConfigFilesToEnvironment ( ) ;
ConfigurableApplicationContext parent = ( ConfigurableApplicationContext ) refresherContext . getParent ( ) ;
assertThat ( refresherContext . getParent ( ) ) . isNotNull ( )
. isInstanceOf ( ConfigurableApplicationContext . class ) ;
ConfigurableApplicationContext parent = ( ConfigurableApplicationContext ) refresherContext
. getParent ( ) ;
assertThat ( parent . isActive ( ) ) . isFalse ( ) ;
assertThat ( parent . isActive ( ) ) . isFalse ( ) ;
}
}
@Test
public void loggingSystemNotInitialized ( ) {
System . setProperty ( LoggingSystem . SYSTEM_PROPERTY ,
TestLoggingSystem . class . getName ( ) ) ;
TestLoggingSystem system = ( TestLoggingSystem ) LoggingSystem
. get ( getClass ( ) . getClassLoader ( ) ) ;
assertThat ( system . getCount ( ) ) . isEqualTo ( 0 ) ;
try ( ConfigurableApplicationContext context = SpringApplication . run ( Empty . class ,
"--spring.main.webEnvironment=false" , "--debug=false" ,
"--spring.main.bannerMode=OFF" ,
"--spring.cloud.bootstrap.name=refresh" ) ) {
assertThat ( system . getCount ( ) ) . isEqualTo ( 4 ) ;
ContextRefresher refresher = new ContextRefresher ( context , scope ) ;
refresher . refresh ( ) ;
assertThat ( system . getCount ( ) ) . isEqualTo ( 4 ) ;
}
}
private List < String > names ( MutablePropertySources propertySources ) {
private List < String > names ( MutablePropertySources propertySources ) {
List < String > list = new ArrayList < > ( ) ;
List < String > list = new ArrayList < > ( ) ;
for ( PropertySource < ? > p : propertySources ) {
for ( PropertySource < ? > p : propertySources ) {
@ -109,4 +135,26 @@ public class ContextRefresherTests {
}
}
@Configuration
protected static class Empty {
}
public static class TestLoggingSystem extends LoggingSystem {
private static int count ;
public TestLoggingSystem ( ClassLoader loader ) {
}
public int getCount ( ) {
return count ;
}
@Override
public void beforeInitialize ( ) {
count + + ;
}
}
}
}