forked from phoedos/pmd
Refactor command line tests for CPD and create a BaseCPDCLITest class
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
/**
|
||||
* 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 net.sourceforge.pmd.cpd.CPD;
|
||||
import net.sourceforge.pmd.cpd.CPDCommandLineInterface;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user