1 /** 2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html 3 */ 4 package test.net.sourceforge.pmd.cpd; 5 6 import static org.junit.Assert.assertEquals; 7 import static org.junit.Assert.assertTrue; 8 import net.sourceforge.pmd.cpd.FileReporter; 9 import net.sourceforge.pmd.cpd.ReportException; 10 11 import org.junit.Test; 12 13 import java.io.BufferedReader; 14 import java.io.File; 15 import java.io.FileReader; 16 import java.io.IOException; 17 18 /** 19 * @author Philippe T'Seyen 20 */ 21 public class FileReporterTest { 22 23 @Test 24 public void testCreation() { 25 new FileReporter((String)null); 26 new FileReporter((File)null); 27 } 28 29 @Test 30 public void testEmptyReport() throws ReportException { 31 File reportFile = new File("report.tmp"); 32 FileReporter fileReporter = new FileReporter(reportFile); 33 fileReporter.report(""); 34 assertTrue(reportFile.exists()); 35 assertEquals(0L, reportFile.length()); 36 assertTrue(reportFile.delete()); 37 } 38 39 @Test 40 public void testReport() throws ReportException, IOException { 41 String testString = "first line\nsecond line"; 42 File reportFile = new File("report.tmp"); 43 FileReporter fileReporter = new FileReporter(reportFile); 44 45 fileReporter.report(testString); 46 assertEquals(testString, readFile(reportFile)); 47 assertTrue(reportFile.delete()); 48 } 49 50 @Test(expected = ReportException.class) 51 public void testInvalidFile() throws ReportException { 52 File reportFile = new File("/invalid_folder/report.tmp"); 53 FileReporter fileReporter = new FileReporter(reportFile); 54 fileReporter.report(""); 55 } 56 57 private String readFile(File file) throws IOException { 58 BufferedReader reader = null; 59 try { 60 reader = new BufferedReader(new FileReader(file)); 61 StringBuffer buffer = new StringBuffer(); 62 String line = reader.readLine(); 63 while (line != null) { 64 buffer.append(line); 65 line = reader.readLine(); 66 if (line != null) { 67 buffer.append('\n'); 68 } 69 } 70 return buffer.toString(); 71 } finally { 72 if (reader != null) 73 reader.close(); 74 } 75 } 76 77 public static junit.framework.Test suite() { 78 return new junit.framework.JUnit4TestAdapter(FileReporterTest.class); 79 } 80 }