/sigmah/src/test/java/org/sigmah/client/page/project/pivot/LayoutComposerTest.java

http://sigma-h.googlecode.com/ · Java · 104 lines · 68 code · 35 blank · 1 comment · 0 complexity · 8ef871d0ad10bb69652451c7ac54595a MD5 · raw file

  1. package org.sigmah.client.page.project.pivot;
  2. import static org.hamcrest.CoreMatchers.equalTo;
  3. import static org.junit.Assert.assertThat;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. import java.util.List;
  7. import org.junit.Before;
  8. import org.junit.Test;
  9. import org.junit.runner.RunWith;
  10. import org.sigmah.server.dao.OnDataSet;
  11. import org.sigmah.server.endpoint.gwtrpc.CommandTestCase;
  12. import org.sigmah.server.util.DateUtilCalendarImpl;
  13. import org.sigmah.shared.command.GenerateElement;
  14. import org.sigmah.shared.command.GetProject;
  15. import org.sigmah.shared.date.DateUtil;
  16. import org.sigmah.shared.dto.ProjectDTO;
  17. import org.sigmah.shared.exception.CommandException;
  18. import org.sigmah.shared.report.content.EntityCategory;
  19. import org.sigmah.shared.report.content.PivotContent;
  20. import org.sigmah.shared.report.content.PivotTableData.Axis;
  21. import org.sigmah.shared.report.model.DimensionType;
  22. import org.sigmah.shared.report.model.PivotTableElement;
  23. import org.sigmah.test.InjectionSupport;
  24. @RunWith(InjectionSupport.class)
  25. @OnDataSet("/dbunit/project-indicator.db.xml")
  26. public class LayoutComposerTest extends CommandTestCase {
  27. private LayoutComposer composer;
  28. private DateUtil dateUtil = new DateUtilCalendarImpl();
  29. public void setupComposer() throws CommandException {
  30. setUser(1);
  31. ProjectDTO project = execute(new GetProject(1));
  32. composer = new LayoutComposer(new DateUtilCalendarImpl(), project);
  33. }
  34. @Test
  35. public void dateFixed() throws CommandException {
  36. setupComposer();
  37. PivotTableElement element = executeLayout(composer.fixDateRange(dateUtil.monthRange(2010, 1), false));
  38. System.out.println(element.getContent());
  39. List<Axis> indicatorColumns = element.getContent().getData().getRootColumn().getDescendantsAtDepth(2);
  40. assertThat(indicatorColumns.size(), equalTo(4));
  41. // make sure that empty admin levels are skipped
  42. Axis nordKivu = element.getContent().getData().getRootRow().getChild(new EntityCategory(3));
  43. Axis goma = nordKivu.firstChild();
  44. assertThat( goma.getDimension().getType(), equalTo(DimensionType.Site) );
  45. }
  46. @Test
  47. public void siteFixed() throws CommandException {
  48. setupComposer();
  49. PivotTableElement element = executeLayout(composer.fixSite(1));
  50. System.out.println(element.getContent());
  51. }
  52. @Test
  53. public void siteFixedWithNoDataEntered() throws CommandException {
  54. setupComposer();
  55. PivotTableElement element = executeLayout(composer.fixSite(4));
  56. System.out.println(element.getContent());
  57. }
  58. @Test
  59. public void indicatorFixed() throws CommandException {
  60. setupComposer();
  61. PivotTableElement element = executeLayout(composer.fixSite(1));
  62. System.out.println(element.getContent());
  63. }
  64. private PivotTableElement executeLayout(PivotTableElement element) throws CommandException {
  65. PivotContent content = execute(new GenerateElement<PivotContent>(element));
  66. element.setContent(content);
  67. return element;
  68. }
  69. }