1   package test.net.sourceforge.pmd.renderers;
2   
3   import java.io.File;
4   import java.io.IOException;
5   
6   import net.sourceforge.pmd.Report.ProcessingError;
7   import net.sourceforge.pmd.renderers.AbstractRenderer;
8   import net.sourceforge.pmd.renderers.YAHTMLRenderer;
9   
10  import org.junit.After;
11  import org.junit.Before;
12  
13  public class YAHTMLRendererTest extends AbstractRendererTst {
14  
15      private String outputDir;
16  
17      @Before
18      public void setUp() throws IOException {
19          outputDir = getTemporaryDirectory("pmdtest").getAbsolutePath();
20      }
21  
22      @After
23      public void cleanUp() {
24          deleteDirectory(new File(outputDir));
25      }
26  
27      private File getTemporaryDirectory(String prefix) throws IOException {
28          // TODO: move to util class?
29          File dir = File.createTempFile(prefix, "");
30          dir.delete();
31          dir.mkdir();
32          return dir;
33      }
34  
35      private void deleteDirectory(File dir) {
36          // TODO: move to util class?
37          File[] a = dir.listFiles();
38          if (a != null) {
39              for (File f: a) {
40                  if (f.isDirectory()) {
41                      deleteDirectory(f);
42                  } else {
43                      f.delete();
44                  }
45              }
46          }
47          dir.delete();        
48      }
49  
50      public AbstractRenderer getRenderer() {
51          return new YAHTMLRenderer(outputDir);
52      }
53  
54      public String getExpected() {
55          return "<h3 align=\"center\">The HTML files are located in '" + outputDir + "'.</h3>";
56      }
57  
58      public String getExpectedEmpty() {
59          return getExpected();
60      }
61      
62      public String getExpectedMultiple() {
63          return getExpected();
64      }
65      
66      public String getExpectedError(ProcessingError error) {
67          return getExpected();
68      }
69  
70      public static junit.framework.Test suite() {
71          return new junit.framework.JUnit4TestAdapter(YAHTMLRendererTest.class);
72      }
73  }