@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2012 - 2024 the original author or authors .
* Copyright 2012 - 2025 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -16,6 +16,7 @@
@@ -16,6 +16,7 @@
package org.springframework.boot.test.autoconfigure ;
import org.junit.jupiter.api.BeforeEach ;
import org.junit.jupiter.api.Test ;
import org.junit.jupiter.api.extension.ExtendWith ;
@ -24,9 +25,13 @@ import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
@@ -24,9 +25,13 @@ import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest ;
import org.springframework.boot.test.system.CapturedOutput ;
import org.springframework.boot.test.system.OutputCaptureExtension ;
import org.springframework.boot.testsupport.classpath.resources.WithResource ;
import org.springframework.context.annotation.Bean ;
import org.springframework.context.annotation.Configuration ;
import org.springframework.test.context.TestContextManager ;
import org.springframework.test.context.cache.ContextCache ;
import org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate ;
import org.springframework.test.util.ReflectionTestUtils ;
import static org.assertj.core.api.Assertions.assertThat ;
import static org.assertj.core.api.Assertions.assertThatIllegalStateException ;
@ -39,11 +44,42 @@ import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
@@ -39,11 +44,42 @@ import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
@ExtendWith ( OutputCaptureExtension . class )
class OnFailureConditionReportContextCustomizerFactoryTests {
@BeforeEach
void clearCache ( ) {
ContextCache contextCache = ( ContextCache ) ReflectionTestUtils
. getField ( DefaultCacheAwareContextLoaderDelegate . class , "defaultContextCache" ) ;
if ( contextCache ! = null ) {
contextCache . reset ( ) ;
}
}
@Test
void loadFailureShouldPrintReport ( CapturedOutput output ) {
load ( ) ;
assertThat ( output . getErr ( ) ) . contains ( "JacksonAutoConfiguration matched" ) ;
assertThat ( output ) . contains ( "Error creating bean with name 'faultyBean'" ) ;
}
@Test
@WithResource ( name = "application.xml" , content = "invalid xml" )
void loadFailureShouldNotPrintReportWhenApplicationPropertiesIsBroken ( CapturedOutput output ) {
load ( ) ;
assertThat ( output ) . doesNotContain ( "JacksonAutoConfiguration matched" )
. doesNotContain ( "Error creating bean with name 'faultyBean'" )
. contains ( "java.util.InvalidPropertiesFormatException" ) ;
}
@Test
@WithResource ( name = "application.properties" , content = "spring.test.print-condition-evaluation-report=false" )
void loadFailureShouldNotPrintReportWhenDisabled ( CapturedOutput output ) {
load ( ) ;
assertThat ( output ) . doesNotContain ( "JacksonAutoConfiguration matched" )
. contains ( "Error creating bean with name 'faultyBean'" ) ;
}
private void load ( ) {
assertThatIllegalStateException ( )
. isThrownBy ( ( ) - > new TestContextManager ( FailingTests . class ) . getTestContext ( ) . getApplicationContext ( ) ) ;
assertThat ( output ) . contains ( "JacksonAutoConfiguration matched" ) ;
}
@SpringBootTest