/src/test/java/com/google/ie/business/dao/impl/IdeaDaoImplTest.java

http://thoughtsite.googlecode.com/ · Java · 202 lines · 174 code · 23 blank · 5 comment · 2 complexity · 151314ea214a888b3cf7d2218135e6e4 MD5 · raw file

  1. package com.google.ie.business.dao.impl;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertNotNull;
  4. import com.google.appengine.api.datastore.DatastoreServiceFactory;
  5. import com.google.appengine.api.datastore.Query;
  6. import com.google.ie.business.domain.Idea;
  7. import com.google.ie.business.domain.Tag;
  8. import com.google.ie.business.domain.User;
  9. import com.google.ie.business.service.ServiceConstants;
  10. import com.google.ie.dto.RetrievalInfo;
  11. import com.google.ie.test.DatastoreTest;
  12. import org.junit.Before;
  13. import org.junit.Test;
  14. import java.util.HashSet;
  15. import java.util.List;
  16. import java.util.Set;
  17. /**
  18. * Test cases for IdeaDaoImpl class
  19. *
  20. * @author abraina
  21. */
  22. public class IdeaDaoImplTest extends DatastoreTest {
  23. private IdeaDaoImpl ideaDao;
  24. private UserDaoImpl userDao;
  25. private TagDaoImpl tagDao;
  26. @Before
  27. public void setUp() {
  28. super.setUp();
  29. if (ideaDao == null) {
  30. ideaDao = new IdeaDaoImpl();
  31. ideaDao.setPersistenceManagerFactory(pmf);
  32. userDao = new UserDaoImpl();
  33. userDao.setPersistenceManagerFactory(pmf);
  34. tagDao = new TagDaoImpl();
  35. tagDao.setPersistenceManagerFactory(pmf);
  36. }
  37. }
  38. @Test
  39. public void save() {
  40. Idea idea = new Idea();
  41. idea.setTitle("Title");
  42. ideaDao.saveIdea(idea);
  43. Query query = new Query(Idea.class.getSimpleName());
  44. assertEquals(1,
  45. DatastoreServiceFactory.getDatastoreService().prepare(query)
  46. .countEntities());
  47. }
  48. @Test
  49. public void save_existingIdea() {
  50. Idea idea = new Idea();
  51. idea.setTitle("Title");
  52. idea = ideaDao.saveIdea(idea);
  53. idea.setTitle("Title1234");
  54. idea = ideaDao.saveIdea(idea);
  55. Idea newIdea = ideaDao.getIdea(idea);
  56. assertEquals("Title1234", newIdea.getTitle());
  57. Query query = new Query(Idea.class.getSimpleName());
  58. assertEquals(1,
  59. DatastoreServiceFactory.getDatastoreService().prepare(query)
  60. .countEntities());
  61. }
  62. @Test
  63. public void getUserIdeas() {
  64. User user = new User();
  65. user.setUserKey("UserTestKey");
  66. String key = user.getUserKey();
  67. Idea idea1 = new Idea();
  68. idea1.setTitle("title1");
  69. idea1.setCreatorKey(key);
  70. ideaDao.saveIdea(idea1);
  71. RetrievalInfo dummyInfo = createDummyRetrievalParam(0, 1,
  72. DaoConstants.DEFAULT_IDEA_ORDERING_FIELD,
  73. DaoConstants.DEFAULT_IDEA_ORDERING_TYPE);
  74. Set<String> statusOfIdeas = new HashSet<String>();
  75. statusOfIdeas.add("published");
  76. List<Idea> ideas = ideaDao.getUserIdeas(user, statusOfIdeas, dummyInfo);
  77. assertNotNull(ideas);
  78. }
  79. @Test
  80. public void getUserIdeas_checkNumberOfIdeasReturned() {
  81. User user = new User();
  82. user.setReputationPoints(100);
  83. user = userDao.saveUser(user);
  84. String key = user.getUserKey();
  85. Idea idea1 = new Idea();
  86. idea1.setTitle("title1");
  87. idea1.setCreatorKey(key);
  88. idea1.setStatus("Objectionable");
  89. ideaDao.saveIdea(idea1);
  90. Idea idea2 = new Idea();
  91. idea2.setTitle("title2");
  92. idea2.setCreatorKey(key);
  93. idea2.setStatus("Saved");
  94. ideaDao.saveIdea(idea2);
  95. RetrievalInfo dummyInfo = createDummyRetrievalParam(0, 2,
  96. DaoConstants.DEFAULT_IDEA_ORDERING_FIELD,
  97. DaoConstants.DEFAULT_IDEA_ORDERING_TYPE);
  98. Set<String> statusOfIdeas = new HashSet<String>();
  99. statusOfIdeas.add("Published");
  100. statusOfIdeas.add("Objectionable");
  101. statusOfIdeas.add("Saved");
  102. List<Idea> ideas = ideaDao.getUserIdeas(user, statusOfIdeas, dummyInfo);
  103. assertEquals(2, ideas.size());
  104. }
  105. @Test
  106. public void getUserIdeas_checkRetrievalInfoParam() {
  107. User user = new User();
  108. user.setReputationPoints(100);
  109. user = userDao.saveUser(user);
  110. RetrievalInfo retrievalParam = createDummyRetrievalParam(0, 1,
  111. DaoConstants.DEFAULT_IDEA_ORDERING_FIELD,
  112. DaoConstants.DEFAULT_IDEA_ORDERING_TYPE);
  113. String key = user.getUserKey();
  114. Idea idea1 = new Idea();
  115. idea1.setTitle("title1");
  116. idea1.setCreatorKey(key);
  117. ideaDao.saveIdea(idea1);
  118. Idea idea2 = new Idea();
  119. idea2.setTitle("title2");
  120. idea2.setCreatorKey(key);
  121. idea2.setStatus("Published");
  122. ideaDao.saveIdea(idea2);
  123. Set<String> statusOfIdeas = new HashSet<String>();
  124. statusOfIdeas.add("Published");
  125. List<Idea> ideas = ideaDao.getUserIdeas(user, statusOfIdeas,
  126. retrievalParam);
  127. assertEquals(1, ideas.size());
  128. }
  129. @Test
  130. public void getIdea() {
  131. Idea newIdea;
  132. Idea ideaOld = new Idea();
  133. ideaOld.setTitle("TestTitle");
  134. ideaOld.setCreatorKey("userKey");
  135. ideaOld.setStatus(Idea.STATUS_PUBLISHED);
  136. newIdea = ideaDao.saveIdea(ideaOld);
  137. assertNotNull(ideaDao.getIdea(newIdea));
  138. }
  139. @Test
  140. public void getIdeas() {
  141. Idea newIdea;
  142. Idea ideaOld = new Idea();
  143. ideaOld.setTitle("TestTitle");
  144. ideaOld.setCreatorKey("userKey");
  145. ideaOld.setStatus(Idea.STATUS_PUBLISHED);
  146. newIdea = ideaDao.saveIdea(ideaOld);
  147. RetrievalInfo retrievalParam = createDummyRetrievalParam(0, 1,
  148. DaoConstants.IDEA_ORDERING_FIELD_PUBLISH_DATE,
  149. DaoConstants.DEFAULT_IDEA_ORDERING_TYPE);
  150. Set<String> statusOfIdeas = new HashSet<String>();
  151. statusOfIdeas.add("Published");
  152. assertNotNull(ideaDao.getIdeas(retrievalParam, statusOfIdeas));
  153. assertEquals(newIdea.getTitle(),
  154. ideaDao.getIdeas(retrievalParam, statusOfIdeas).get(0).getTitle());
  155. }
  156. @Test
  157. public void getIdeasByTagKey() {
  158. Idea expectedIdea = new Idea();
  159. Tag tag = new Tag();
  160. tag.setTitle("tag1");
  161. tag = tagDao.saveTag(tag);
  162. System.out.println("Tag key ::" + tag.getKey());
  163. expectedIdea.setTitle("Test Idea");
  164. expectedIdea.setCreatorKey("userKey");
  165. expectedIdea.setStatus(Idea.STATUS_PUBLISHED);
  166. Set<String> tagKeys = new HashSet<String>();
  167. tagKeys.add(tag.getKey());
  168. expectedIdea.setTagKeys(tagKeys);
  169. expectedIdea = ideaDao.saveIdea(expectedIdea);
  170. Set<String> setOfStatus = new HashSet<String>();
  171. setOfStatus.add(Idea.STATUS_PUBLISHED);
  172. List<Idea> listOfIdeas = ideaDao.getIdeasByTagKey(tag.getKey(), setOfStatus, new
  173. RetrievalInfo(0, 10, ServiceConstants.DEFAULT_IDEA_ORDERING_FIELD,
  174. ServiceConstants.DEFAULT_IDEA_ORDERING_TYPE));
  175. assertNotNull(listOfIdeas);
  176. Idea actualIdea = listOfIdeas.iterator().next();
  177. assertEquals(expectedIdea.getTitle(), actualIdea.getTitle());
  178. }
  179. }