/sigmah/src/test/java/org/sigmah/server/endpoint/gwtrpc/handler/GetAdminEntitiesHandlerTest.java

http://sigma-h.googlecode.com/ · Java · 134 lines · 95 code · 35 blank · 4 comment · 0 complexity · f15ed84024582fea7b1bf90d5537a35f 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.handler;
  6. import org.dozer.Mapper;
  7. import org.junit.Before;
  8. import org.junit.Test;
  9. import org.sigmah.shared.dao.AdminDAO;
  10. import org.sigmah.shared.domain.*;
  11. import org.sigmah.shared.command.GetAdminEntities;
  12. import org.sigmah.shared.command.result.AdminEntityResult;
  13. import org.sigmah.shared.dto.AdminEntityDTO;
  14. import org.sigmah.shared.exception.CommandException;
  15. import java.util.Collections;
  16. import java.util.List;
  17. import static org.easymock.EasyMock.*;
  18. import static org.junit.Assert.assertEquals;
  19. public class GetAdminEntitiesHandlerTest {
  20. private User user;
  21. private AdminDAO adminDAO;
  22. private Mapper mapper;
  23. private static final int LEVEL_ID = 1;
  24. private static final int ACTIVITY_ID = 4;
  25. private static final int PARENT_ID = ACTIVITY_ID;
  26. private AdminDAO.Query query;
  27. @Test
  28. public void testRootLevelQuery() throws Exception {
  29. GetAdminEntities cmd = new GetAdminEntities(LEVEL_ID);
  30. expect(query.level(LEVEL_ID)).andReturn(query);
  31. expect(query.execute()).andReturn(nCopies(15));
  32. replay(query);
  33. AdminEntityResult result = execute(cmd);
  34. assertEquals(15, result.getData().size());
  35. }
  36. @Test
  37. public void testEmptyRootLevelQuery() throws Exception {
  38. GetAdminEntities cmd = new GetAdminEntities(LEVEL_ID);
  39. expect(query.level(LEVEL_ID)).andReturn(query);
  40. expect(query.execute()).andReturn(nCopies(0));
  41. replay(query);
  42. AdminEntityResult result = execute(cmd);
  43. assertEquals(0, result.getData().size());
  44. }
  45. @Test
  46. public void testChildQuery() throws Exception {
  47. GetAdminEntities cmd = new GetAdminEntities(LEVEL_ID, PARENT_ID);
  48. expect(query.level(LEVEL_ID)).andReturn(query);
  49. expect(query.withParentEntityId(PARENT_ID)).andReturn(query);
  50. expect(query.execute()).andReturn(nCopies(3));
  51. replay(query);
  52. AdminEntityResult result = execute(cmd);
  53. assertEquals(3, result.getData().size());
  54. }
  55. @Test
  56. public void testSiteQuery() throws Exception {
  57. int expectedCount = 3;
  58. GetAdminEntities cmd = new GetAdminEntities(LEVEL_ID, PARENT_ID);
  59. cmd.setActivityId(ACTIVITY_ID);
  60. expect(query.level(LEVEL_ID)).andReturn(query);
  61. expect(query.withParentEntityId(PARENT_ID)).andReturn(query);
  62. expect(query.withSitesOfActivityId(ACTIVITY_ID)).andReturn(query);
  63. expect(query.execute()).andReturn(nCopies(expectedCount));
  64. replay(query);
  65. AdminEntityResult result = execute(cmd);
  66. assertEquals(expectedCount, result.getData().size());
  67. }
  68. @Before
  69. public void setupUser() {
  70. user = new User();
  71. user.setId(LEVEL_ID);
  72. user.setEmail("alex@bertram");
  73. }
  74. @Before
  75. public void setupMapper() {
  76. mapper = createMock(Mapper.class);
  77. expect(mapper.map(isA(AdminEntity.class), eq(AdminEntityDTO.class)))
  78. .andReturn(new AdminEntityDTO())
  79. .anyTimes();
  80. replay(mapper);
  81. }
  82. @Before
  83. public void setupAdminDAO() {
  84. adminDAO = createMock(AdminDAO.class);
  85. expect(adminDAO.query()).andReturn(query);
  86. replay(adminDAO);
  87. }
  88. @Before
  89. public void createQueryMock() {
  90. query = createMock(AdminDAO.Query.class);
  91. }
  92. public AdminEntityResult execute(GetAdminEntities cmd) throws CommandException {
  93. GetAdminEntitiesHandler handler = new GetAdminEntitiesHandler(adminDAO, mapper);
  94. return (AdminEntityResult) handler.execute(cmd, user);
  95. }
  96. private List<AdminEntity> nCopies(int entitiesToReturn) {
  97. return Collections.nCopies(entitiesToReturn, new AdminEntity());
  98. }
  99. }