/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.cli;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import org.junit.After;
import org.junit.Before;
import net.sourceforge.pmd.cpd.CPD;
import net.sourceforge.pmd.cpd.CPDCommandLineInterface;
public abstract class BaseCPDCLITest {
private ByteArrayOutputStream bufferStdout;
private PrintStream originalStdout;
private PrintStream originalStderr;
@Before
public void setup() throws UnsupportedEncodingException {
originalStdout = System.out;
originalStderr = System.err;
bufferStdout = new ByteArrayOutputStream();
System.setOut(new PrintStream(bufferStdout, false, "UTF-8"));
System.setErr(System.out);
}
@After
public void teardown() {
System.setOut(originalStdout);
System.setErr(originalStderr);
}
public final String getOutput() {
try {
return bufferStdout.toString("UTF-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
protected void runCPD(String... args) {
System.setProperty(CPDCommandLineInterface.NO_EXIT_AFTER_RUN, "true");
CPD.main(args);
}
}