/src/test/java/com/google/ie/business/service/impl/ProjectServiceImplTest.java

http://thoughtsite.googlecode.com/ · Java · 137 lines · 109 code · 18 blank · 10 comment · 2 complexity · 57650cecb8d69ece3a72187fa444cd9a MD5 · raw file

  1. // Copyright 2009 Google Inc. All Rights Reserved.
  2. /**
  3. *
  4. */
  5. package com.google.ie.business.service.impl;
  6. import static org.junit.Assert.assertEquals;
  7. import static org.junit.Assert.assertNotNull;
  8. import static org.mockito.Mockito.doNothing;
  9. import static org.mockito.Mockito.mock;
  10. import static org.mockito.Mockito.when;
  11. import com.google.appengine.api.datastore.KeyFactory;
  12. import com.google.ie.business.dao.impl.ProjectDaoImpl;
  13. import com.google.ie.business.domain.EntityIndex;
  14. import com.google.ie.business.domain.Idea;
  15. import com.google.ie.business.domain.Project;
  16. import com.google.ie.business.domain.User;
  17. import com.google.ie.business.service.EntityIndexService;
  18. import com.google.ie.common.audit.AuditManager;
  19. import com.google.ie.common.exception.SystemException;
  20. import com.google.ie.common.taskqueue.IndexQueueUpdater;
  21. import com.google.ie.dto.RetrievalInfo;
  22. import com.google.ie.test.ServiceTest;
  23. import org.junit.Before;
  24. import org.junit.Test;
  25. import java.util.ArrayList;
  26. import java.util.HashSet;
  27. import java.util.List;
  28. import java.util.Set;
  29. /**
  30. * Test case for ProjectServiceImpl class
  31. *
  32. * @author Charanjeet singh
  33. *
  34. */
  35. public class ProjectServiceImplTest extends ServiceTest {
  36. private ProjectServiceImpl projectService;
  37. private ProjectDaoImpl projectDao = mock(ProjectDaoImpl.class);
  38. private AuditManager mockAuditManager = mock(AuditManager.class);
  39. private IdeaServiceImpl ideaService = mock(IdeaServiceImpl.class);
  40. private EntityIndexService entityIndexService = mock(EntityIndexServiceImpl.class);
  41. private IndexQueueUpdater indexQueueUpdater = mock(IndexQueueUpdater.class);
  42. @Before
  43. public void setUp() {
  44. super.setUp();
  45. if (projectService == null)
  46. projectService = new ProjectServiceImpl();
  47. projectService.setAuditManager(mockAuditManager);
  48. projectService.setProjectDao(projectDao);
  49. projectService.setIdeaService(ideaService);
  50. projectService.setEntityIndexService(entityIndexService);
  51. projectService.setIndexQueueUpdater(indexQueueUpdater);
  52. }
  53. @Test
  54. public final void createProject() {
  55. User user = new User();
  56. user.setUserKey("userKey");
  57. Idea idea = new Idea();
  58. idea.setKey("ideaKey");
  59. idea.setStatus(Idea.STATUS_PUBLISHED);
  60. Project project = new Project();
  61. project.setIdeaKey("ideaKey");
  62. project.setName("Project Name");
  63. project.setKey("projectkey");
  64. project.setStatus(Project.STATUS_CREATED);
  65. EntityIndex index = new EntityIndex();
  66. index.setKey(KeyFactory.createKey("index", "project"));
  67. index.setIndexed(0);
  68. when(projectService.getIdeaService().getIdeaByKey(project.getIdeaKey())).thenReturn(idea);
  69. when(projectService.getProjectDao().saveProject(project)).thenReturn(project);
  70. when(projectService.getEntityIndexService().createEntityIndex(project.getKey()))
  71. .thenReturn(index);
  72. when(projectService.getProjectDao().getProject(project.getKey())).thenReturn(project);
  73. doNothing().when(projectService.getIndexQueueUpdater()).indexEntity(index.getKey());
  74. assertNotNull(projectService.createOrUpdateProject(project, user));
  75. assertEquals(projectService.createOrUpdateProject(project, user).getStatus(),
  76. Project.STATUS_CREATED);
  77. }
  78. @Test(expected = SystemException.class)
  79. public final void createProject_withIdeaNotPublished() {
  80. User user = new User();
  81. user.setUserKey("userKey");
  82. Idea idea = new Idea();
  83. idea.setKey("ideaKey");
  84. idea.setStatus(Idea.STATUS_OBJECTIONABLE);
  85. Project project = new Project();
  86. project.setIdeaKey("ideaKey");
  87. project.setName("Project Name");
  88. when(projectService.getIdeaService().getIdeaByKey(project.getIdeaKey())).thenReturn(idea);
  89. when(projectService.getProjectDao().saveProject(project)).thenReturn(project);
  90. assertNotNull(projectService.createOrUpdateProject(project, user));
  91. }
  92. @Test
  93. public final void listProjects() {
  94. Set<String> statusOfProject = new HashSet<String>();
  95. RetrievalInfo retrievalInfo = new RetrievalInfo();
  96. statusOfProject.add(Project.STATUS_CREATED);
  97. List<Project> projects = new ArrayList<Project>();
  98. projects.add(new Project());
  99. when(projectDao.getProjects(null, statusOfProject)).thenReturn(projects);
  100. assertNotNull(projectService.listProjects(retrievalInfo));
  101. }
  102. @Test
  103. public final void getDetails() {
  104. Project project = new Project();
  105. project.setKey("testKey");
  106. project.setName("testName");
  107. when(projectDao.getProject(project.getKey())).thenReturn(project);
  108. assertNotNull(projectService.getDetails(project));
  109. assertEquals(project.getKey(), projectService.getDetails(project).getKey());
  110. }
  111. @Test(expected = SystemException.class)
  112. public final void getDetails_invalidArgument() {
  113. Project project = new Project();
  114. project.setName("testName");
  115. when(projectDao.getProject(project.getKey())).thenReturn(project);
  116. assertNotNull(projectService.getDetails(project));
  117. assertEquals(project.getKey(), projectService.getDetails(project).getKey());
  118. }
  119. }