From aebb60d8b8c734e4612d7937f4f2ac25074c6f72 Mon Sep 17 00:00:00 2001 From: Madhura Bhave Date: Wed, 10 Jul 2019 18:14:58 -0700 Subject: [PATCH] Fix tests Setting the log file name to a random value in smoke tests doesn't work because the logger context has already been initialized. --- ...ngApplicationListenerIntegrationTests.java | 22 ++++++++++++++++++- ...pertiesSampleActuatorApplicationTests.java | 7 ------ .../application-endpoints.properties | 8 +++---- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerIntegrationTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerIntegrationTests.java index 89ffe1444f1..de0fe793c43 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerIntegrationTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerIntegrationTests.java @@ -18,12 +18,15 @@ package org.springframework.boot.context.logging; import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.WebApplicationType; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.event.ApplicationStartingEvent; +import org.springframework.boot.logging.LogFile; import org.springframework.boot.logging.LoggingSystem; import org.springframework.boot.testsupport.rule.OutputCapture; import org.springframework.context.ApplicationListener; @@ -42,6 +45,9 @@ public class LoggingApplicationListenerIntegrationTests { @Rule public OutputCapture outputCapture = new OutputCapture(); + @Rule + public final TemporaryFolder temp = new TemporaryFolder(); + @Test public void loggingSystemRegisteredInTheContext() { try (ConfigurableApplicationContext context = new SpringApplicationBuilder(SampleService.class) @@ -51,6 +57,17 @@ public class LoggingApplicationListenerIntegrationTests { } } + @Test + public void logFileRegisteredInTheContextWhenApplicable() throws Exception { + String logFile = this.temp.newFile().getAbsolutePath(); + try (ConfigurableApplicationContext context = new SpringApplicationBuilder(SampleService.class) + .web(WebApplicationType.NONE).properties("logging.file=" + logFile).run()) { + SampleService service = context.getBean(SampleService.class); + assertThat(service.logFile).isNotNull(); + assertThat(service.logFile.toString()).isEqualTo(logFile); + } + } + @Test public void loggingPerformedDuringChildApplicationStartIsNotLost() { new SpringApplicationBuilder(Config.class).web(WebApplicationType.NONE).child(Config.class) @@ -72,8 +89,11 @@ public class LoggingApplicationListenerIntegrationTests { private final LoggingSystem loggingSystem; - SampleService(LoggingSystem loggingSystem) { + private final LogFile logFile; + + SampleService(LoggingSystem loggingSystem, ObjectProvider logFile) { this.loggingSystem = loggingSystem; + this.logFile = logFile.getIfAvailable(); } } diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/EndpointsPropertiesSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/EndpointsPropertiesSampleActuatorApplicationTests.java index 3c3980e6f8e..00ad0aa1ae8 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/EndpointsPropertiesSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/EndpointsPropertiesSampleActuatorApplicationTests.java @@ -66,13 +66,6 @@ public class EndpointsPropertiesSampleActuatorApplicationTests { assertThat(entity.getBody()).contains("\"hello\":\"world\""); } - @Test - public void logfileWithRandomName() { - ResponseEntity entity = this.restTemplate.withBasicAuth("user", getPassword()) - .getForEntity("/admin/logfile", String.class); - assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); - } - private String getPassword() { return "password"; } diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/resources/application-endpoints.properties b/spring-boot-samples/spring-boot-sample-actuator/src/test/resources/application-endpoints.properties index fab27a09e53..5f8c1d2bedd 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/resources/application-endpoints.properties +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/resources/application-endpoints.properties @@ -1,5 +1,3 @@ -server.error.path: /oops -management.endpoint.health.show-details: always -management.endpoints.web.base-path: /admin -logging.file=./target/${spring.application.instance_id}.log -spring.application.instance_id=${random.value} +server.error.path:/oops +management.endpoint.health.show-details:always +management.endpoints.web.base-path:/admin