@ -18,6 +18,7 @@ package org.springframework.boot.test.autoconfigure;
@@ -18,6 +18,7 @@ package org.springframework.boot.test.autoconfigure;
import org.junit.Rule ;
import org.junit.Test ;
import org.junit.rules.ExpectedException ;
import org.springframework.boot.SpringApplication ;
import org.springframework.boot.WebApplicationType ;
@ -31,6 +32,7 @@ import org.springframework.test.context.TestContext;
@@ -31,6 +32,7 @@ import org.springframework.test.context.TestContext;
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener ;
import static org.assertj.core.api.Assertions.assertThat ;
import static org.hamcrest.CoreMatchers.is ;
import static org.hamcrest.Matchers.containsString ;
import static org.mockito.BDDMockito.given ;
import static org.mockito.Mockito.mock ;
@ -45,6 +47,9 @@ public class SpringBootDependencyInjectionTestExecutionListenerTests {
@@ -45,6 +47,9 @@ public class SpringBootDependencyInjectionTestExecutionListenerTests {
@Rule
public OutputCapture out = new OutputCapture ( ) ;
@Rule
public ExpectedException thrown = ExpectedException . none ( ) ;
private SpringBootDependencyInjectionTestExecutionListener reportListener = new SpringBootDependencyInjectionTestExecutionListener ( ) ;
@Test
@ -74,6 +79,18 @@ public class SpringBootDependencyInjectionTestExecutionListenerTests {
@@ -74,6 +79,18 @@ public class SpringBootDependencyInjectionTestExecutionListenerTests {
this . out . expect ( containsString ( "Negative matches" ) ) ;
}
@Test
public void originalFailureIsThrownWhenReportGenerationFails ( ) throws Exception {
TestContext testContext = mock ( TestContext . class ) ;
IllegalStateException originalFailure = new IllegalStateException ( ) ;
given ( testContext . getTestInstance ( ) ) . willThrow ( originalFailure ) ;
SpringApplication application = new SpringApplication ( Config . class ) ;
application . setWebEnvironment ( false ) ;
given ( testContext . getApplicationContext ( ) ) . willThrow ( new RuntimeException ( ) ) ;
this . thrown . expect ( is ( originalFailure ) ) ;
this . reportListener . prepareTestInstance ( testContext ) ;
}
@Configuration
@ImportAutoConfiguration ( JacksonAutoConfiguration . class )
static class Config {