|
|
|
|
@ -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 |
|
|
|
|
|