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

http://sigma-h.googlecode.com/ · Java · 85 lines · 47 code · 21 blank · 17 comment · 3 complexity · a594a520e47251365fd31c1001119eca MD5 · raw file

  1. /*
  2. * All Sigmah code is released under the GNU General Public License v3
  3. * See COPYRIGHT.txt and LICENSE.txt.
  4. */
  5. package org.sigmah.server.report;
  6. import com.google.inject.Inject;
  7. import org.junit.Ignore;
  8. import org.junit.Test;
  9. import org.junit.runner.RunWith;
  10. import org.sigmah.server.dao.hibernate.HibernateModule;
  11. import org.sigmah.shared.domain.User;
  12. import org.sigmah.server.report.generator.ReportGenerator;
  13. import org.sigmah.server.report.renderer.Renderer;
  14. import org.sigmah.server.report.renderer.RendererFactory;
  15. import org.sigmah.shared.command.RenderElement;
  16. import org.sigmah.shared.report.model.Report;
  17. import org.sigmah.test.InjectionSupport;
  18. import org.sigmah.test.Modules;
  19. import javax.persistence.EntityManager;
  20. import java.io.File;
  21. import java.io.FileOutputStream;
  22. import java.io.InputStreamReader;
  23. @Ignore("Needs to be rewritten -- figure out what to do with dependency on the map icons folder")
  24. @RunWith(InjectionSupport.class)
  25. @Modules({ReportModule.class, HibernateModule.class})
  26. public class FullTest {
  27. @Inject
  28. private EntityManager em;
  29. @Inject
  30. private ReportGenerator rgtor;
  31. @Inject
  32. private RendererFactory factory;
  33. @Test
  34. public void test() throws Throwable {
  35. /*
  36. *
  37. * Parse the XML report definition
  38. */
  39. Report report = ReportParserJaxb.parseXML(new InputStreamReader(
  40. getClass().getResourceAsStream("/report-def/full-test.xml")));
  41. /*
  42. * Set up our envionnement
  43. */
  44. User user = (User) em.createQuery("select u from User u where u.email = :email")
  45. .setParameter("email", "akbertram@gmail.com").getResultList().get(0);
  46. /*
  47. * Generate
  48. */
  49. rgtor.generate(user, report, null, null);
  50. File file = new File("target/report-test");
  51. file.mkdirs();
  52. /*
  53. * Render
  54. */
  55. for (RenderElement.Format format : RenderElement.Format.values()) {
  56. if (format != RenderElement.Format.Excel_Data) {
  57. Renderer renderer = factory.get(format);
  58. FileOutputStream fos = new FileOutputStream("target/report-tests/full-test" + renderer.getFileSuffix());
  59. renderer.render(report, fos);
  60. fos.close();
  61. }
  62. }
  63. }
  64. }