/sigmah/src/test/java/org/sigmah/server/report/StaticElementRenderTest.java

http://sigma-h.googlecode.com/ · Java · 131 lines · 106 code · 25 blank · 0 comment · 0 complexity · 40a9c0334ff82a8b5faa3f010265e23f MD5 · raw file

  1. package org.sigmah.server.report;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.FileWriter;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.util.ArrayList;
  8. import javax.xml.bind.JAXBContext;
  9. import javax.xml.bind.JAXBException;
  10. import javax.xml.bind.Marshaller;
  11. import javax.xml.bind.Unmarshaller;
  12. import org.junit.Before;
  13. import org.junit.Test;
  14. import org.sigmah.server.report.renderer.excel.ExcelChartRenderer;
  15. import org.sigmah.server.report.renderer.excel.ExcelPivotTableRenderer;
  16. import org.sigmah.server.report.renderer.excel.ExcelReportRenderer;
  17. import org.sigmah.server.report.renderer.excel.ExcelStaticRenderer;
  18. import org.sigmah.server.report.renderer.excel.ExcelTableRenderer;
  19. import org.sigmah.server.report.renderer.itext.HtmlReportRenderer;
  20. import org.sigmah.server.report.renderer.itext.ItextChartRenderer;
  21. import org.sigmah.server.report.renderer.itext.ItextMapRenderer;
  22. import org.sigmah.server.report.renderer.itext.ItextPivotTableRenderer;
  23. import org.sigmah.server.report.renderer.itext.ItextStaticRenderer;
  24. import org.sigmah.server.report.renderer.itext.ItextTableRenderer;
  25. import org.sigmah.server.report.renderer.itext.PdfReportRenderer;
  26. import org.sigmah.server.report.renderer.itext.RtfReportRenderer;
  27. import org.sigmah.server.report.util.HtmlWriter;
  28. import org.sigmah.shared.report.content.FilterDescription;
  29. import org.sigmah.shared.report.content.ReportContent;
  30. import org.sigmah.shared.report.model.Report;
  31. public class StaticElementRenderTest{
  32. @Before
  33. public void setup() {
  34. File file = new File("target/report-tests");
  35. file.mkdirs();
  36. }
  37. public Report parseXml(String filename) throws JAXBException {
  38. JAXBContext jc = JAXBContext.newInstance(Report.class.getPackage().getName());
  39. Unmarshaller um = jc.createUnmarshaller();
  40. um.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler());
  41. return (Report) um.unmarshal(new InputStreamReader(
  42. getClass().getResourceAsStream("/report-def/parse-test/" + filename)));
  43. }
  44. public Report getStatic() throws JAXBException {
  45. Report r = parseXml("static.xml");
  46. r.setContent( new ReportContent());
  47. r.getContent().setFilterDescriptions(new ArrayList <FilterDescription> ());
  48. return r;
  49. }
  50. public static void dumpXml(Report report) throws JAXBException {
  51. JAXBContext jc = JAXBContext.newInstance(Report.class.getPackage().getName());
  52. Marshaller m = jc.createMarshaller();
  53. m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
  54. m.marshal(report, System.out);
  55. }
  56. @Test
  57. public void testPdfRender() throws JAXBException, IOException {
  58. Report r = getStatic();
  59. PdfReportRenderer renderer = new PdfReportRenderer(new ItextPivotTableRenderer(),
  60. new ItextChartRenderer(null), new ItextMapRenderer(null), new ItextTableRenderer(null), new ItextStaticRenderer());
  61. FileOutputStream fos = new FileOutputStream("target/report-tests/render-static" + renderer.getFileSuffix());
  62. renderer.render(r, fos);
  63. fos.close();
  64. }
  65. @Test
  66. public void testRtfRender() throws JAXBException, IOException {
  67. Report r = getStatic();
  68. RtfReportRenderer renderer = new RtfReportRenderer(new ItextPivotTableRenderer(),
  69. new ItextChartRenderer(null), new ItextMapRenderer(null), new ItextTableRenderer(null), new ItextStaticRenderer());
  70. FileOutputStream fos = new FileOutputStream("target/report-tests/render-static" + renderer.getFileSuffix());
  71. renderer.render(r, fos);
  72. fos.close();
  73. }
  74. @Test
  75. public void testExcelRender() throws JAXBException, IOException {
  76. Report r = getStatic();
  77. ExcelReportRenderer renderer = new ExcelReportRenderer(new ExcelPivotTableRenderer(),
  78. new ExcelTableRenderer(), new ExcelChartRenderer(), new ExcelStaticRenderer());
  79. FileOutputStream fos = new FileOutputStream("target/report-tests/render-static" + renderer.getFileSuffix());
  80. renderer.render(r, fos);
  81. fos.close();
  82. }
  83. @Test
  84. public void testHtmlRender() throws JAXBException, IOException {
  85. Report r = getStatic();
  86. HtmlReportRenderer renderer =new HtmlReportRenderer(new ItextPivotTableRenderer(),
  87. new ItextChartRenderer(null), new ItextMapRenderer(null), new ItextTableRenderer(null), new ItextStaticRenderer());
  88. FileOutputStream fos = new FileOutputStream("target/report-tests/render-static" + renderer.getFileSuffix());
  89. renderer.render(r, fos);
  90. fos.close();
  91. }
  92. @Test
  93. public void testOldHtmlRender() throws JAXBException, IOException {
  94. Report r = getStatic();
  95. org.sigmah.server.report.renderer.html.HtmlReportRenderer renderer = new org.sigmah.server.report.renderer.html.HtmlReportRenderer(new org.sigmah.server.report.renderer.html.HtmlPivotTableRenderer(),
  96. new org.sigmah.server.report.renderer.html.HtmlChartRendererJC(),
  97. new org.sigmah.server.report.renderer.html.HtmlTableRenderer(null),
  98. new org.sigmah.server.report.renderer.html.HtmlMapRenderer(null),
  99. new org.sigmah.server.report.renderer.html.HtmlStaticRenderer());
  100. FileWriter fw = new FileWriter("target/report-tests/render-static-old.html");
  101. HtmlWriter writer = new HtmlWriter();;
  102. renderer.render(writer, new NullImageStorageProvider(), r);
  103. fw.write(writer.toString());
  104. fw.close();
  105. }
  106. }