diff --git a/spring-boot-cli/pom.xml b/spring-boot-cli/pom.xml
index 1d789a4afe..211a709360 100644
--- a/spring-boot-cli/pom.xml
+++ b/spring-boot-cli/pom.xml
@@ -34,6 +34,14 @@
groovy-templates
true
+
+
+ ${project.groupId}
+ spring-boot
+ ${project.version}
+ tests
+ test
+
org.javassist
javassist
diff --git a/spring-boot-cli/src/test/java/org/springframework/boot/cli/SampleIntegrationTests.java b/spring-boot-cli/src/test/java/org/springframework/boot/cli/SampleIntegrationTests.java
index 804740b3f7..9bb0e36a5c 100644
--- a/spring-boot-cli/src/test/java/org/springframework/boot/cli/SampleIntegrationTests.java
+++ b/spring-boot-cli/src/test/java/org/springframework/boot/cli/SampleIntegrationTests.java
@@ -16,8 +16,6 @@
package org.springframework.boot.cli;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
import java.net.URL;
import java.util.concurrent.Callable;
import java.util.concurrent.Executors;
@@ -26,9 +24,10 @@ import java.util.concurrent.TimeUnit;
import org.apache.ivy.util.FileUtil;
import org.junit.After;
-import org.junit.Before;
import org.junit.BeforeClass;
+import org.junit.Rule;
import org.junit.Test;
+import org.springframework.boot.OutputCapture;
import org.springframework.boot.cli.command.RunCommand;
import static org.junit.Assert.assertEquals;
@@ -43,37 +42,14 @@ public class SampleIntegrationTests {
@BeforeClass
public static void cleanGrapes() throws Exception {
- GrapesCleaner.cleanIfNecessary();
+ // GrapesCleaner.cleanIfNecessary();
// System.setProperty("ivy.message.logger.level", "3");
}
- private RunCommand command;
-
- private PrintStream savedOutput;
-
- private ByteArrayOutputStream output;
-
- private PrintStream savedErr;
-
- @Before
- public void init() {
- this.savedOutput = System.out;
- this.savedErr = System.err;
- this.output = new ByteArrayOutputStream();
- System.setOut(new PrintStream(this.output));
- System.setErr(new PrintStream(this.output));
- }
+ @Rule
+ public OutputCapture outputCapture = new OutputCapture();
- @After
- public void clear() {
- System.setOut(this.savedOutput);
- System.setErr(this.savedErr);
- System.out.println(getOutput());
- }
-
- private String getOutput() {
- return this.output.toString();
- }
+ private RunCommand command;
private void start(final String... sample) throws Exception {
Future future = Executors.newSingleThreadExecutor().submit(
@@ -98,21 +74,22 @@ public class SampleIntegrationTests {
@Test
public void appSample() throws Exception {
start("samples/app.groovy");
- String output = getOutput();
+ String output = this.outputCapture.getOutputAndRelease();
assertTrue("Wrong output: " + output, output.contains("Hello World"));
}
@Test
public void templateSample() throws Exception {
start("samples/template.groovy");
- String output = getOutput();
+ String output = this.outputCapture.getOutputAndRelease();
assertTrue("Wrong output: " + output, output.contains("Hello World!"));
}
@Test
public void jobSample() throws Exception {
start("samples/job.groovy", "foo=bar");
- String output = getOutput();
+ String output = this.outputCapture.getOutputAndRelease();
+ System.out.println(output);
assertTrue("Wrong output: " + output,
output.contains("completed with the following parameters"));
}
@@ -120,11 +97,11 @@ public class SampleIntegrationTests {
@Test
public void reactorSample() throws Exception {
start("samples/reactor.groovy", "Phil");
- String output = getOutput();
+ String output = this.outputCapture.getOutputAndRelease();
int count = 0;
while (!output.contains("Hello Phil") && count++ < 5) {
Thread.sleep(200);
- output = getOutput();
+ output = this.outputCapture.getOutputAndRelease();
}
assertTrue("Wrong output: " + output, output.contains("Hello Phil"));
}
@@ -132,7 +109,7 @@ public class SampleIntegrationTests {
@Test
public void jobWebSample() throws Exception {
start("samples/job.groovy", "samples/web.groovy", "foo=bar");
- String output = getOutput();
+ String output = this.outputCapture.getOutputAndRelease();
assertTrue("Wrong output: " + output,
output.contains("completed with the following parameters"));
String result = FileUtil.readEntirely(new URL("http://localhost:8080")
@@ -170,14 +147,14 @@ public class SampleIntegrationTests {
@Test
public void integrationSample() throws Exception {
start("samples/integration.groovy");
- String output = getOutput();
+ String output = this.outputCapture.getOutputAndRelease();
assertTrue("Wrong output: " + output, output.contains("Hello, World"));
}
@Test
public void xmlSample() throws Exception {
start("samples/app.xml", "samples/runner.groovy");
- String output = getOutput();
+ String output = this.outputCapture.getOutputAndRelease();
assertTrue("Wrong output: " + output, output.contains("Hello World"));
}
diff --git a/spring-boot-samples/spring-boot-sample-batch/src/test/java/org/springframework/boot/sample/batch/SampleBatchApplicationTests.java b/spring-boot-samples/spring-boot-sample-batch/src/test/java/org/springframework/boot/sample/batch/SampleBatchApplicationTests.java
index 0aa3719b8c..5e7c08a6c5 100644
--- a/spring-boot-samples/spring-boot-sample-batch/src/test/java/org/springframework/boot/sample/batch/SampleBatchApplicationTests.java
+++ b/spring-boot-samples/spring-boot-sample-batch/src/test/java/org/springframework/boot/sample/batch/SampleBatchApplicationTests.java
@@ -16,48 +16,24 @@
package org.springframework.boot.sample.batch;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
-import org.junit.After;
-import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.springframework.boot.OutputCapture;
import org.springframework.boot.SpringApplication;
-import org.springframework.boot.sample.batch.SampleBatchApplication;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class SampleBatchApplicationTests {
- private PrintStream savedOutput;
- private PrintStream savedErr;
- private ByteArrayOutputStream output;
-
- @Before
- public void init() {
- this.savedOutput = System.out;
- this.savedErr = System.err;
- this.output = new ByteArrayOutputStream();
- System.setOut(new PrintStream(this.output));
- System.setErr(new PrintStream(this.output));
- }
-
- @After
- public void after() {
- System.setOut(this.savedOutput);
- System.setErr(this.savedErr);
- }
-
- private String getOutput() {
- return this.output.toString();
- }
+ @Rule
+ public OutputCapture outputCapture = new OutputCapture();
@Test
public void testDefaultSettings() throws Exception {
assertEquals(0, SpringApplication.exit(SpringApplication
.run(SampleBatchApplication.class)));
- String output = getOutput();
+ String output = this.outputCapture.toString();
assertTrue("Wrong output: " + output,
output.contains("completed with the following parameters"));
}
diff --git a/spring-boot-samples/spring-boot-sample-profile/src/test/java/org/springframework/boot/sample/profile/SampleProfileApplicationTests.java b/spring-boot-samples/spring-boot-sample-profile/src/test/java/org/springframework/boot/sample/profile/SampleProfileApplicationTests.java
index d5f9e37d48..1674e24c64 100644
--- a/spring-boot-samples/spring-boot-sample-profile/src/test/java/org/springframework/boot/sample/profile/SampleProfileApplicationTests.java
+++ b/spring-boot-samples/spring-boot-sample-profile/src/test/java/org/springframework/boot/sample/profile/SampleProfileApplicationTests.java
@@ -16,30 +16,20 @@
package org.springframework.boot.sample.profile;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
import org.junit.After;
-import org.junit.AfterClass;
import org.junit.Before;
-import org.junit.BeforeClass;
+import org.junit.Rule;
import org.junit.Test;
-import org.springframework.boot.sample.profile.SampleProfileApplication;
+import org.springframework.boot.OutputCapture;
import static org.junit.Assert.assertTrue;
public class SampleProfileApplicationTests {
- private static PrintStream savedOutput;
- private static ByteArrayOutputStream output;
- private String profiles;
+ @Rule
+ public OutputCapture outputCapture = new OutputCapture();
- @BeforeClass
- public static void init() {
- savedOutput = System.out;
- output = new ByteArrayOutputStream();
- System.setOut(new PrintStream(output));
- }
+ private String profiles;
@Before
public void before() {
@@ -56,19 +46,10 @@ public class SampleProfileApplicationTests {
}
}
- @AfterClass
- public static void clear() {
- System.setOut(savedOutput);
- }
-
- private static String getOutput() {
- return output.toString();
- }
-
@Test
public void testDefaultProfile() throws Exception {
SampleProfileApplication.main(new String[0]);
- String output = getOutput();
+ String output = this.outputCapture.toString();
assertTrue("Wrong output: " + output, output.contains("Hello Phil"));
}
@@ -76,7 +57,7 @@ public class SampleProfileApplicationTests {
public void testGoodbyeProfile() throws Exception {
System.setProperty("spring.profiles.active", "goodbye");
SampleProfileApplication.main(new String[0]);
- String output = getOutput();
+ String output = this.outputCapture.toString();
assertTrue("Wrong output: " + output, output.contains("Goodbye Everyone"));
}
@@ -84,7 +65,7 @@ public class SampleProfileApplicationTests {
public void testGoodbyeProfileFromCommandline() throws Exception {
SampleProfileApplication
.main(new String[] { "--spring.profiles.active=goodbye" });
- String output = getOutput();
+ String output = this.outputCapture.toString();
assertTrue("Wrong output: " + output, output.contains("Goodbye Everyone"));
}
diff --git a/spring-boot-samples/spring-boot-sample-simple/src/test/java/org/springframework/boot/sample/simple/SampleSimpleApplicationTests.java b/spring-boot-samples/spring-boot-sample-simple/src/test/java/org/springframework/boot/sample/simple/SampleSimpleApplicationTests.java
index a1f1f6addb..3c1ccf9cd7 100644
--- a/spring-boot-samples/spring-boot-sample-simple/src/test/java/org/springframework/boot/sample/simple/SampleSimpleApplicationTests.java
+++ b/spring-boot-samples/spring-boot-sample-simple/src/test/java/org/springframework/boot/sample/simple/SampleSimpleApplicationTests.java
@@ -16,13 +16,11 @@
package org.springframework.boot.sample.simple;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
-import org.springframework.boot.sample.simple.SampleSimpleApplication;
+import org.springframework.boot.OutputCapture;
import static org.junit.Assert.assertTrue;
@@ -34,17 +32,13 @@ import static org.junit.Assert.assertTrue;
*/
public class SampleSimpleApplicationTests {
- private PrintStream savedOutput;
-
- private ByteArrayOutputStream output;
+ @Rule
+ public OutputCapture outputCapture = new OutputCapture();
private String profiles;
@Before
public void init() {
- this.savedOutput = System.out;
- this.output = new ByteArrayOutputStream();
- System.setOut(new PrintStream(this.output));
this.profiles = System.getProperty("spring.profiles.active");
}
@@ -56,24 +50,19 @@ public class SampleSimpleApplicationTests {
else {
System.clearProperty("spring.profiles.active");
}
- System.setOut(this.savedOutput);
- }
-
- private String getOutput() {
- return this.output.toString();
}
@Test
public void testDefaultSettings() throws Exception {
SampleSimpleApplication.main(new String[0]);
- String output = getOutput();
+ String output = this.outputCapture.toString();
assertTrue("Wrong output: " + output, output.contains("Hello Phil"));
}
@Test
public void testCommandLineOverrides() throws Exception {
SampleSimpleApplication.main(new String[] { "--name=Gordon" });
- String output = getOutput();
+ String output = this.outputCapture.toString();
assertTrue("Wrong output: " + output, output.contains("Hello Gordon"));
}
diff --git a/spring-boot-samples/spring-boot-sample-xml/src/test/java/org/springframework/boot/sample/xml/SampleSpringXmlApplicationTests.java b/spring-boot-samples/spring-boot-sample-xml/src/test/java/org/springframework/boot/sample/xml/SampleSpringXmlApplicationTests.java
index afeadfdf06..637a417b8b 100644
--- a/spring-boot-samples/spring-boot-sample-xml/src/test/java/org/springframework/boot/sample/xml/SampleSpringXmlApplicationTests.java
+++ b/spring-boot-samples/spring-boot-sample-xml/src/test/java/org/springframework/boot/sample/xml/SampleSpringXmlApplicationTests.java
@@ -16,41 +16,21 @@
package org.springframework.boot.sample.xml;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.junit.Rule;
import org.junit.Test;
-import org.springframework.boot.sample.xml.SampleSpringXmlApplication;
+import org.springframework.boot.OutputCapture;
import static org.junit.Assert.assertTrue;
public class SampleSpringXmlApplicationTests {
- private static PrintStream savedOutput;
- private static ByteArrayOutputStream output;
-
- @BeforeClass
- public static void init() {
- savedOutput = System.out;
- output = new ByteArrayOutputStream();
- System.setOut(new PrintStream(output));
- }
-
- @AfterClass
- public static void clear() {
- System.setOut(savedOutput);
- }
-
- private static String getOutput() {
- return output.toString();
- }
+ @Rule
+ public OutputCapture outputCapture = new OutputCapture();
@Test
public void testDefaultSettings() throws Exception {
SampleSpringXmlApplication.main(new String[0]);
- String output = getOutput();
+ String output = this.outputCapture.toString();
assertTrue("Wrong output: " + output, output.contains("Hello World"));
}
diff --git a/spring-boot/src/test/java/org/springframework/boot/OutputCapture.java b/spring-boot/src/test/java/org/springframework/boot/OutputCapture.java
new file mode 100644
index 0000000000..ca39ca7bd5
--- /dev/null
+++ b/spring-boot/src/test/java/org/springframework/boot/OutputCapture.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2012-2013 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.boot;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+
+/**
+ * Capture output from System.out and System.err.
+ *
+ * @author Phillip Webb
+ */
+public class OutputCapture implements TestRule {
+
+ private CaptureOutputStream captureOut;
+
+ private CaptureOutputStream captureErr;
+
+ private ByteArrayOutputStream copy;
+
+ @Override
+ public Statement apply(final Statement base, Description description) {
+ return new Statement() {
+ @Override
+ public void evaluate() throws Throwable {
+ captureOutput();
+ try {
+ base.evaluate();
+ }
+ finally {
+ releaseOutput();
+ }
+ }
+ };
+ }
+
+ protected void captureOutput() {
+ this.copy = new ByteArrayOutputStream();
+ this.captureOut = new CaptureOutputStream(System.out, this.copy);
+ this.captureErr = new CaptureOutputStream(System.err, this.copy);
+ System.setOut(new PrintStream(this.captureOut));
+ System.setErr(new PrintStream(this.captureErr));
+ }
+
+ protected void releaseOutput() {
+ System.setOut(this.captureOut.getOriginal());
+ System.setErr(this.captureErr.getOriginal());
+ this.copy = null;
+ }
+
+ public String getOutputAndRelease() {
+ try {
+ return toString();
+ }
+ finally {
+ releaseOutput();
+ }
+ }
+
+ @Override
+ public String toString() {
+ return this.copy.toString();
+ }
+
+ private static class CaptureOutputStream extends OutputStream {
+
+ private final PrintStream original;
+
+ private final OutputStream copy;
+
+ public CaptureOutputStream(PrintStream original, OutputStream copy) {
+ this.original = original;
+ this.copy = copy;
+ }
+
+ @Override
+ public void write(int b) throws IOException {
+ this.copy.write(b);
+ this.original.write(b);
+ this.original.flush();
+ }
+
+ @Override
+ public void write(byte[] b) throws IOException {
+ write(b, 0, b.length);
+ }
+
+ @Override
+ public void write(byte[] b, int off, int len) throws IOException {
+ this.copy.write(b, off, len);
+ this.original.write(b, off, len);
+ this.original.flush();
+ }
+
+ public PrintStream getOriginal() {
+ return this.original;
+ }
+ }
+
+}
diff --git a/spring-boot/src/test/java/org/springframework/boot/SimpleMainTests.java b/spring-boot/src/test/java/org/springframework/boot/SimpleMainTests.java
index 53ed0dc932..a976764dab 100644
--- a/spring-boot/src/test/java/org/springframework/boot/SimpleMainTests.java
+++ b/spring-boot/src/test/java/org/springframework/boot/SimpleMainTests.java
@@ -16,14 +16,11 @@
package org.springframework.boot;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.junit.After;
-import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ClassUtils;
@@ -39,22 +36,10 @@ import static org.junit.Assert.assertTrue;
@Configuration
public class SimpleMainTests {
- private static final String SPRING_STARTUP = "root of context hierarchy";
- private PrintStream savedOutput;
- private ByteArrayOutputStream output;
-
- @Before
- public void open() {
- this.savedOutput = System.out;
- this.output = new ByteArrayOutputStream();
- System.setOut(new PrintStream(this.output));
- }
+ @Rule
+ public OutputCapture outputCapture = new OutputCapture();
- @After
- public void after() {
- System.setOut(this.savedOutput);
- System.out.println(getOutput());
- }
+ private static final String SPRING_STARTUP = "root of context hierarchy";
@Test(expected = IllegalArgumentException.class)
public void emptyApplicationContext() throws Exception {
@@ -99,7 +84,7 @@ public class SimpleMainTests {
}
private String getOutput() {
- return this.output.toString();
+ return this.outputCapture.toString();
}
}
diff --git a/spring-boot/src/test/java/org/springframework/boot/context/initializer/LoggingApplicationContextInitializerTests.java b/spring-boot/src/test/java/org/springframework/boot/context/initializer/LoggingApplicationContextInitializerTests.java
index 4a62b498b5..10f08cc6ae 100644
--- a/spring-boot/src/test/java/org/springframework/boot/context/initializer/LoggingApplicationContextInitializerTests.java
+++ b/spring-boot/src/test/java/org/springframework/boot/context/initializer/LoggingApplicationContextInitializerTests.java
@@ -16,9 +16,7 @@
package org.springframework.boot.context.initializer;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.PrintStream;
import java.util.logging.LogManager;
import org.apache.commons.logging.Log;
@@ -29,8 +27,8 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
+import org.springframework.boot.OutputCapture;
import org.springframework.boot.SpringApplication;
-import org.springframework.boot.context.initializer.LoggingApplicationContextInitializer;
import org.springframework.boot.logging.java.JavaLoggingSystem;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.env.PropertySource;
@@ -48,19 +46,15 @@ public class LoggingApplicationContextInitializerTests {
@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();
+ @Rule
+ public OutputCapture outputCapture = new OutputCapture();
+
private LoggingApplicationContextInitializer initializer = new LoggingApplicationContextInitializer();
private Log logger = new SLF4JLogFactory().getInstance(getClass());
- private PrintStream savedOutput;
-
- private ByteArrayOutputStream output;
-
@Before
public void init() throws SecurityException, IOException {
- this.savedOutput = System.err;
- this.output = new ByteArrayOutputStream();
- System.setOut(new PrintStream(this.output));
LogManager.getLogManager().readConfiguration(
JavaLoggingSystem.class.getResourceAsStream("logging.properties"));
this.initializer.initialize(new SpringApplication());
@@ -71,12 +65,6 @@ public class LoggingApplicationContextInitializerTests {
System.clearProperty("LOG_FILE");
System.clearProperty("LOG_PATH");
System.clearProperty("PID");
- System.setOut(this.savedOutput);
- System.out.println(getOutput());
- }
-
- private String getOutput() {
- return this.output.toString();
}
@Test
@@ -84,7 +72,7 @@ public class LoggingApplicationContextInitializerTests {
GenericApplicationContext context = new GenericApplicationContext();
this.initializer.initialize(context);
this.logger.info("Hello world");
- String output = getOutput().trim();
+ String output = this.outputCapture.toString().trim();
assertTrue("Wrong output:\n" + output, output.contains("Hello world"));
assertFalse("Wrong output:\n" + output, output.contains("???"));
}
@@ -104,7 +92,7 @@ public class LoggingApplicationContextInitializerTests {
});
this.initializer.initialize(context);
this.logger.info("Hello world");
- String output = getOutput().trim();
+ String output = this.outputCapture.toString().trim();
assertTrue("Wrong output:\n" + output, output.contains("Hello world"));
assertFalse("Wrong output:\n" + output, output.contains("???"));
assertTrue("Wrong output:\n" + output, output.startsWith("/tmp/spring.log"));
@@ -146,7 +134,7 @@ public class LoggingApplicationContextInitializerTests {
this.initializer.initialize(context);
Log logger = LogFactory.getLog(LoggingApplicationContextInitializerTests.class);
logger.info("Hello world");
- String output = getOutput().trim();
+ String output = this.outputCapture.toString().trim();
assertTrue("Wrong output:\n" + output, output.startsWith("foo.log"));
}
@@ -169,7 +157,7 @@ public class LoggingApplicationContextInitializerTests {
this.initializer.initialize(context);
Log logger = LogFactory.getLog(LoggingApplicationContextInitializerTests.class);
logger.info("Hello world");
- String output = getOutput().trim();
+ String output = this.outputCapture.toString().trim();
assertTrue("Wrong output:\n" + output, output.startsWith("foo/spring.log"));
}
diff --git a/spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackLoggingSystemTests.java b/spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackLoggingSystemTests.java
index bfa265a265..051555aaf8 100644
--- a/spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackLoggingSystemTests.java
+++ b/spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackLoggingSystemTests.java
@@ -16,15 +16,12 @@
package org.springframework.boot.logging.logback;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.After;
-import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
-import org.springframework.boot.logging.logback.LogbackLoggingSystem;
+import org.springframework.boot.OutputCapture;
import static org.junit.Assert.assertTrue;
@@ -35,30 +32,17 @@ import static org.junit.Assert.assertTrue;
*/
public class LogbackLoggingSystemTests {
+ @Rule
+ public OutputCapture outputCapture = new OutputCapture();
+
private LogbackLoggingSystem loggingSystem = new LogbackLoggingSystem(getClass()
.getClassLoader());
- private PrintStream savedOutput;
-
- private ByteArrayOutputStream output;
-
- @Before
- public void init() {
- this.savedOutput = System.out;
- this.output = new ByteArrayOutputStream();
- System.setOut(new PrintStream(this.output));
- }
-
@After
public void clear() {
System.clearProperty("LOG_FILE");
System.clearProperty("LOG_PATH");
System.clearProperty("PID");
- System.setOut(this.savedOutput);
- }
-
- private String getOutput() {
- return this.output.toString();
}
@Test
@@ -66,7 +50,7 @@ public class LogbackLoggingSystemTests {
this.loggingSystem.initialize("classpath:logback-nondefault.xml");
Log logger = LogFactory.getLog(LogbackLoggingSystemTests.class);
logger.info("Hello world");
- String output = getOutput().trim();
+ String output = this.outputCapture.toString().trim();
assertTrue("Wrong output:\n" + output, output.contains("Hello world"));
assertTrue("Wrong output:\n" + output, output.startsWith("/tmp/spring.log"));
}