/sigmah/src/test/java/org/sigmah/server/endpoint/gwtrpc/GetSitesTest.java

http://sigma-h.googlecode.com/ · Java · 217 lines · 138 code · 71 blank · 8 comment · 0 complexity · dcf4fe1167246c09147d5b3501cfd4dd 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.endpoint.gwtrpc;
  6. import com.extjs.gxt.ui.client.Style.SortDir;
  7. import com.extjs.gxt.ui.client.data.PagingLoadResult;
  8. import com.extjs.gxt.ui.client.data.SortInfo;
  9. import junit.framework.Assert;
  10. import org.junit.Test;
  11. import org.junit.runner.RunWith;
  12. import org.sigmah.server.dao.OnDataSet;
  13. import org.sigmah.shared.command.GetSitePoints;
  14. import org.sigmah.shared.command.GetSites;
  15. import org.sigmah.shared.command.result.SitePointList;
  16. import org.sigmah.shared.dao.Filter;
  17. import org.sigmah.shared.dto.IndicatorDTO;
  18. import org.sigmah.shared.dto.SiteDTO;
  19. import org.sigmah.shared.exception.CommandException;
  20. import org.sigmah.shared.report.model.DimensionType;
  21. import org.sigmah.test.InjectionSupport;
  22. @RunWith(InjectionSupport.class)
  23. @OnDataSet("/dbunit/sites-simple1.db.xml")
  24. public class GetSitesTest extends CommandTestCase {
  25. private static final int DATABASE_OWNER = 1;
  26. @Test
  27. public void testActivityQueryBasic() throws CommandException {
  28. setUser(DATABASE_OWNER);
  29. GetSites cmd = new GetSites();
  30. cmd.filter().onActivity(1);
  31. cmd.setSortInfo(new SortInfo("date2", SortDir.DESC));
  32. PagingLoadResult<SiteDTO> result = execute(cmd);
  33. Assert.assertEquals("totalLength", 3, result.getData().size());
  34. Assert.assertEquals("totalLength", 3, result.getTotalLength());
  35. Assert.assertEquals("offset", 0, result.getOffset());
  36. //Assert.assertNull("row(0).activity", result.getData().get(0).getActivity());
  37. // assure sorted
  38. Assert.assertEquals("sorted", 2, result.getData().get(0).getId());
  39. Assert.assertEquals("sorted", 1, result.getData().get(1).getId());
  40. Assert.assertEquals("sorted", 3, result.getData().get(2).getId());
  41. // assure indicators are present (site id=3)
  42. SiteDTO s = result.getData().get(2);
  43. Assert.assertEquals("entityName", "Ituri", s.getAdminEntity(1).getName());
  44. Assert.assertNotNull("admin bounds", s.getAdminEntity(1).getBounds());
  45. Assert.assertEquals("indicator", 10000.0, s.getIndicatorValue(1));
  46. }
  47. @Test
  48. public void testIndicatorSort() throws CommandException {
  49. setUser(DATABASE_OWNER);
  50. GetSites cmd = new GetSites();
  51. cmd.filter().onActivity(1);
  52. cmd.setSortInfo(new SortInfo(IndicatorDTO.getPropertyName(1), SortDir.DESC));
  53. PagingLoadResult<SiteDTO> result = execute(cmd);
  54. // assure sorted
  55. Assert.assertEquals("sorted", 10000.0, result.getData().get(0).getIndicatorValue(1));
  56. Assert.assertEquals("sorted", 3600.0, result.getData().get(1).getIndicatorValue(1));
  57. Assert.assertEquals("sorted", 1500.0, result.getData().get(2).getIndicatorValue(1));
  58. Assert.assertNotNull("activityId", result.getData().get(0).getActivityId());
  59. }
  60. @Test
  61. public void testActivityQueryPaged() throws CommandException {
  62. setUser(DATABASE_OWNER);
  63. GetSites cmd = new GetSites();
  64. cmd.filter().onActivity(1);
  65. cmd.setSortInfo(new SortInfo(IndicatorDTO.getPropertyName(1), SortDir.DESC));
  66. cmd.setLimit(2);
  67. cmd.setOffset(0);
  68. PagingLoadResult<SiteDTO> result = execute(cmd);
  69. Assert.assertEquals("rows retrieved [0,2]", 2, result.getData().size());
  70. Assert.assertEquals("total rows [0,2]", 3, result.getTotalLength());
  71. cmd.setOffset(1);
  72. cmd.setLimit(2);
  73. result = execute(cmd);
  74. Assert.assertEquals("offset [1,2]", 1, result.getOffset());
  75. Assert.assertEquals("rows retrieved [1,2]", 2, result.getData().size());
  76. Assert.assertEquals("total rows [1,2]", 3, result.getTotalLength());
  77. cmd.setOffset(0);
  78. cmd.setLimit(50);
  79. result = execute(cmd);
  80. Assert.assertEquals("offset [0,50]", 0, result.getOffset());
  81. Assert.assertEquals("rows retrieved [0,50]", 3, result.getData().size());
  82. Assert.assertEquals("total rows [0,50]", 3, result.getTotalLength());
  83. }
  84. @Test
  85. public void testDatabase() throws CommandException {
  86. setUser(DATABASE_OWNER);
  87. GetSites cmd = new GetSites();
  88. cmd.filter().addRestriction(DimensionType.Database, 2);
  89. PagingLoadResult<SiteDTO> result = execute(cmd);
  90. Assert.assertEquals("rows", 3, result.getData().size());
  91. Assert.assertNotNull("activityId", result.getData().get(0).getActivityId());
  92. }
  93. @Test
  94. public void testDatabasePaged() throws CommandException {
  95. setUser(DATABASE_OWNER);
  96. GetSites cmd = new GetSites();
  97. cmd.getFilter().addRestriction(DimensionType.Database, 1);
  98. cmd.setLimit(2);
  99. PagingLoadResult<SiteDTO> result = execute(cmd);
  100. Assert.assertEquals("rows", 2, result.getData().size());
  101. }
  102. @Test
  103. public void testDatabasePartner2PartnerVisibility() throws CommandException {
  104. setUser(2); // BAVON (can't see other partner's stuff)
  105. GetSites cmd = new GetSites();
  106. cmd.getFilter().addRestriction(DimensionType.Database, 1);
  107. PagingLoadResult<SiteDTO> result = execute(cmd);
  108. Assert.assertEquals("rows", 3, result.getData().size());
  109. }
  110. @Test
  111. public void testAll() throws CommandException {
  112. setUser(DATABASE_OWNER);
  113. GetSites cmd = new GetSites();
  114. PagingLoadResult<SiteDTO> result = execute(cmd);
  115. Assert.assertEquals("rows", 8, result.getData().size());
  116. Assert.assertNotNull("activityId", result.getData().get(0).getActivityId());
  117. }
  118. @Test
  119. public void testAllWithRemovedUser() throws CommandException {
  120. setUser(5); // Christian (Bad guy!)
  121. PagingLoadResult<SiteDTO> result = execute(new GetSites());
  122. Assert.assertEquals("rows", 0, result.getData().size());
  123. }
  124. @Test
  125. public void testSeekSite() throws Exception {
  126. setUser(DATABASE_OWNER);
  127. GetSites cmd = new GetSites();
  128. cmd.filter().onActivity(1);
  129. cmd.setSortInfo(new SortInfo(IndicatorDTO.getPropertyName(1), SortDir.DESC));
  130. cmd.setLimit(2);
  131. cmd.setSeekToSiteId(1);
  132. PagingLoadResult<SiteDTO> result = execute(cmd);
  133. Assert.assertEquals("second page returned", 2, result.getOffset());
  134. Assert.assertEquals("rows on this page", 1, result.getData().size());
  135. Assert.assertEquals("correct site returned", 1, result.getData().get(0).getId());
  136. }
  137. @Test
  138. public void testSitePointsForIndicator() throws Exception {
  139. setUser(DATABASE_OWNER);
  140. Filter filter = new Filter();
  141. filter.addRestriction(DimensionType.Indicator, 1);
  142. GetSitePoints cmd = new GetSitePoints(filter);
  143. SitePointList list = execute(cmd);
  144. Assert.assertEquals(3, list.getPoints().size());
  145. }
  146. }