Explorar o código

Merge branch 'feature_render_mediator' into 'master'

初始化mediator render测试用例

See merge request crowd-2019/crowd-test-service-backend!5
薛晓波 %!s(int64=6) %!d(string=hai) anos
pai
achega
4fb1207858

+ 6 - 4
src/main/java/com/mooctest/crowd/domain/data/dto/IndexDTO.java

@@ -1,7 +1,8 @@
 package com.mooctest.crowd.domain.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.ReportVO;
-import com.mooctest.crowd.domain.data.vo.TaskVO;
+import com.mooctest.crowd.domain.data.vo.EvolutionAgencyVO;
+import com.mooctest.crowd.domain.data.vo.CrowdTaskVO;
+import com.mooctest.crowd.domain.data.vo.UserVO;
 import lombok.Data;
 
 import java.util.List;
@@ -12,6 +13,7 @@ import java.util.List;
  */
 @Data
 public class IndexDTO {
-    private TaskVO taskVO;
-    private List<ReportVO> reportVOList;
+    private List<CrowdTaskVO> hotTasks;
+    private List<EvolutionAgencyVO> agencyRanks;
+    private List<UserVO> userRanks;
 }

+ 5 - 5
src/main/java/com/mooctest/crowd/domain/data/dto/MyCrowdDTO.java

@@ -1,7 +1,7 @@
 package com.mooctest.crowd.domain.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.ProjectVO;
-import com.mooctest.crowd.domain.data.vo.TaskVO;
+import com.mooctest.crowd.domain.data.vo.CrowdProjectVO;
+import com.mooctest.crowd.domain.data.vo.CrowdTaskVO;
 import com.mooctest.crowd.domain.data.vo.UserVO;
 import lombok.Data;
 
@@ -14,7 +14,7 @@ import java.util.List;
 @Data
 public class MyCrowdDTO {
     private UserVO userVO;
-    private List<TaskVO> unfinishedTasks;
-    private List<TaskVO> finishedTasks;
-    private List<ProjectVO> projectVOList;
+    private List<CrowdTaskVO> unfinishedTasks;
+    private List<CrowdTaskVO> finishedTasks;
+    private List<CrowdProjectVO> crowdProjectVOList;
 }

+ 0 - 19
src/main/java/com/mooctest/crowd/domain/data/dto/ProjectDTO.java

@@ -1,19 +0,0 @@
-package com.mooctest.crowd.domain.data.dto;
-
-import com.mooctest.crowd.domain.data.vo.ProjectVO;
-import com.mooctest.crowd.domain.data.vo.ReportVO;
-import com.mooctest.crowd.domain.data.vo.TaskVO;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @Author: xuexb
- * @Date: 2019.7.15 20:17
- */
-@Data
-public class ProjectDTO {
-    private ProjectVO projectVO;
-    private List<TaskVO> taskVOList;
-    private List<ReportVO> reportVOList;
-}

+ 19 - 0
src/main/java/com/mooctest/crowd/domain/data/dto/ProjectDetailsDTO.java

@@ -0,0 +1,19 @@
+package com.mooctest.crowd.domain.data.dto;
+
+import com.mooctest.crowd.domain.data.vo.CrowdProjectVO;
+import com.mooctest.crowd.domain.data.vo.CrowdReportVO;
+import com.mooctest.crowd.domain.data.vo.CrowdTaskVO;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author: xuexb
+ * @Date: 2019.7.15 20:17
+ */
+@Data
+public class ProjectDetailsDTO {
+    private CrowdProjectVO crowdProjectVO;
+    private List<CrowdTaskVO> crowdTaskVOList;
+    private List<CrowdReportVO> crowdReportVOList;
+}

+ 3 - 3
src/main/java/com/mooctest/crowd/domain/data/dto/ReportDTO.java → src/main/java/com/mooctest/crowd/domain/data/dto/ReportDetailsDTO.java

@@ -1,6 +1,6 @@
 package com.mooctest.crowd.domain.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.ReportVO;
+import com.mooctest.crowd.domain.data.vo.CrowdReportVO;
 import lombok.Data;
 
 /**
@@ -8,6 +8,6 @@ import lombok.Data;
  * @Date: 2019.7.15 20:29
  */
 @Data
-public class ReportDTO {
-    ReportVO reportVO;
+public class ReportDetailsDTO {
+    CrowdReportVO crowdReportVO;
 }

+ 0 - 17
src/main/java/com/mooctest/crowd/domain/data/dto/TaskDTO.java

@@ -1,17 +0,0 @@
-package com.mooctest.crowd.domain.data.dto;
-
-import com.mooctest.crowd.domain.data.vo.ReportVO;
-import com.mooctest.crowd.domain.data.vo.TaskVO;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @Author: xuexb
- * @Date: 2019.7.15 20:17
- */
-@Data
-public class TaskDTO {
-    private TaskVO taskVO;
-    private List<ReportVO> reportVOList;
-}

+ 17 - 0
src/main/java/com/mooctest/crowd/domain/data/dto/TaskDetailsDTO.java

@@ -0,0 +1,17 @@
+package com.mooctest.crowd.domain.data.dto;
+
+import com.mooctest.crowd.domain.data.vo.CrowdReportVO;
+import com.mooctest.crowd.domain.data.vo.CrowdTaskVO;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author: xuexb
+ * @Date: 2019.7.15 20:17
+ */
+@Data
+public class TaskDetailsDTO {
+    private CrowdTaskVO crowdTaskVO;
+    private List<CrowdReportVO> crowdReportVOList;
+}

+ 2 - 2
src/main/java/com/mooctest/crowd/domain/data/dto/TaskSquareDTO.java

@@ -1,6 +1,6 @@
 package com.mooctest.crowd.domain.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.TaskVO;
+import com.mooctest.crowd.domain.data.vo.CrowdTaskVO;
 import lombok.Data;
 
 import java.util.List;
@@ -11,5 +11,5 @@ import java.util.List;
  */
 @Data
 public class TaskSquareDTO {
-    private List<TaskVO> taskVOList;
+    private List<CrowdTaskVO> crowdTaskVOList;
 }

+ 2 - 2
src/main/java/com/mooctest/crowd/domain/data/dto/UserDTO.java

@@ -1,6 +1,6 @@
 package com.mooctest.crowd.domain.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.ProjectVO;
+import com.mooctest.crowd.domain.data.vo.CrowdProjectVO;
 import com.mooctest.crowd.domain.data.vo.UserVO;
 import com.mooctest.crowd.domain.domainobject.Permission;
 import lombok.AllArgsConstructor;
@@ -19,5 +19,5 @@ import java.util.List;
 public class UserDTO {
     private UserVO userVO;
     private List<Permission> permissions;
-    private List<ProjectVO> projectVOS;
+    private List<CrowdProjectVO> crowdProjectVOS;
 }

+ 2 - 2
src/main/java/com/mooctest/crowd/domain/data/vo/ProjectVO.java → src/main/java/com/mooctest/crowd/domain/data/vo/CrowdProjectVO.java

@@ -11,9 +11,9 @@ import org.springframework.beans.BeanUtils;
  * @Date: 2019.7.15 20:41
  */
 @Data
-public class ProjectVO {
+public class CrowdProjectVO {
 
-    public ProjectVO(CrowdTestProject project){
+    public CrowdProjectVO(CrowdTestProject project){
         BeanUtils.copyProperties(project, this);
     }
 

+ 2 - 2
src/main/java/com/mooctest/crowd/domain/data/vo/ReportVO.java → src/main/java/com/mooctest/crowd/domain/data/vo/CrowdReportVO.java

@@ -12,9 +12,9 @@ import org.springframework.beans.BeanUtils;
  * @Date: 2019.7.15 20:36
  */
 @Data
-public class ReportVO {
+public class CrowdReportVO {
 
-    public ReportVO(CrowdTestReport report){
+    public CrowdReportVO(CrowdTestReport report){
         BeanUtils.copyProperties(report, this);
     }
 

+ 2 - 2
src/main/java/com/mooctest/crowd/domain/data/vo/TaskVO.java → src/main/java/com/mooctest/crowd/domain/data/vo/CrowdTaskVO.java

@@ -11,9 +11,9 @@ import org.springframework.beans.BeanUtils;
  * @Date: 2019.7.15 20:36
  */
 @Data
-public class TaskVO {
+public class CrowdTaskVO {
 
-    public TaskVO(CrowdTestTask task){
+    public CrowdTaskVO(CrowdTestTask task){
         BeanUtils.copyProperties(task, this);
     }
 

+ 11 - 0
src/main/java/com/mooctest/crowd/domain/data/vo/EvolutionAgencyVO.java

@@ -0,0 +1,11 @@
+package com.mooctest.crowd.domain.data.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: xuexb
+ * @Date: 2019.7.17 10:12
+ */
+@Data
+public class EvolutionAgencyVO {
+}

+ 20 - 3
src/main/java/com/mooctest/crowd/domain/mediator/Mediator.java

@@ -1,7 +1,8 @@
 package com.mooctest.crowd.domain.mediator;
 
-import com.mooctest.crowd.domain.command.LoginCommand;
-import com.mooctest.crowd.domain.command.RegisterCommand;
+import com.mooctest.crowd.domain.command.*;
+import com.mooctest.crowd.domain.data.dto.*;
+import com.mooctest.crowd.domain.domainobject.Account;
 import com.mooctest.crowd.domain.exception.PasswordErrorException;
 
 /**
@@ -10,5 +11,21 @@ import com.mooctest.crowd.domain.exception.PasswordErrorException;
  */
 public interface Mediator {
     boolean login(LoginCommand cmd) throws PasswordErrorException;
-    boolean register(RegisterCommand registerCommand);
+
+    Account register(RegisterCommand registerCommand);
+
+    IndexDTO renderIndex();
+
+    MyCrowdDTO renderMyCrowd(AccountCommand accountCommand);
+
+    TaskSquareDTO renderTaskSquare(CrowdTestTaskCommand crowdTestTaskCommand);
+
+    ProjectDetailsDTO renderProjectDetails(CrowdTestProjectCommand crowdTestProjectCommand);
+
+    ReportDetailsDTO renderReportDetails(CrowdTestReportCommand crowdTestReportCommand);
+
+    TaskDetailsDTO renderTaskDetails(CrowdTestTaskCommand crowdTestTaskCommand);
+
+    UserDTO renderUser(AccountCommand accountCommand);
+
 }

+ 43 - 4
src/main/java/com/mooctest/crowd/domain/mediator/impl/WebMediatorImpl.java

@@ -1,24 +1,63 @@
 package com.mooctest.crowd.domain.mediator.impl;
 
-import com.mooctest.crowd.domain.command.LoginCommand;
-import com.mooctest.crowd.domain.command.RegisterCommand;
+import com.mooctest.crowd.domain.command.*;
+import com.mooctest.crowd.domain.data.dto.*;
 import com.mooctest.crowd.domain.domainobject.Account;
 import com.mooctest.crowd.domain.exception.PasswordErrorException;
 import com.mooctest.crowd.domain.factory.AccountFactory;
 import com.mooctest.crowd.domain.mediator.Mediator;
+import com.mooctest.crowd.domain.service.RegisterService;
+import org.springframework.stereotype.Service;
 
 /**
  * @Author: xuexb
  * @Date: 2019.7.16 20:27
  */
+@Service
 public class WebMediatorImpl implements Mediator {
+
     @Override
     public boolean login(LoginCommand cmd) throws PasswordErrorException {
         return AccountFactory.createAccount().login(cmd);
     }
 
     @Override
-    public boolean register(RegisterCommand registerCommand) {
-        return false;
+    public Account register(RegisterCommand registerCommand) {
+        return RegisterService.register(registerCommand);
+    }
+
+    @Override
+    public IndexDTO renderIndex() {
+        return new IndexDTO();
+    }
+
+    @Override
+    public MyCrowdDTO renderMyCrowd(AccountCommand accountCommand) {
+        return new MyCrowdDTO();
+    }
+
+    @Override
+    public TaskSquareDTO renderTaskSquare(CrowdTestTaskCommand crowdTestTaskCommand) {
+        return new TaskSquareDTO();
+    }
+
+    @Override
+    public ProjectDetailsDTO renderProjectDetails(CrowdTestProjectCommand crowdTestProjectCommand) {
+        return new ProjectDetailsDTO();
+    }
+
+    @Override
+    public ReportDetailsDTO renderReportDetails(CrowdTestReportCommand crowdTestReportCommand) {
+        return new ReportDetailsDTO();
+    }
+
+    @Override
+    public TaskDetailsDTO renderTaskDetails(CrowdTestTaskCommand crowdTestTaskCommand) {
+        return new TaskDetailsDTO();
+    }
+
+    @Override
+    public UserDTO renderUser(AccountCommand accountCommand) {
+        return new UserDTO();
     }
 }

+ 73 - 7
src/test/java/com/mooctest/crowd/domain/mediator/impl/WebMediatorImplTest.java

@@ -1,22 +1,19 @@
 package com.mooctest.crowd.domain.mediator.impl;
 
-import com.mooctest.crowd.domain.command.LoginCommand;
-import com.mooctest.crowd.domain.command.RegisterCommand;
+import com.mooctest.crowd.domain.command.*;
+import com.mooctest.crowd.domain.data.dto.*;
 import com.mooctest.crowd.domain.domainobject.Account;
 import com.mooctest.crowd.domain.exception.PasswordErrorException;
 import com.mooctest.crowd.domain.factory.AccountFactory;
 import com.mooctest.crowd.domain.mediator.Mediator;
-import com.mooctest.crowd.domain.service.RegisterService;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 
 import static org.junit.Assert.*;
-import static org.mockito.Matchers.any;
 
 /**
  * @Author: xuexb
@@ -54,12 +51,81 @@ public class WebMediatorImplTest {
     @Test
     public void should_return_account_when_register_success() {
         //arrange
-        RegisterCommand cmd = new RegisterCommand("NEW_MOBILE","CODE","PWD");
+        RegisterCommand registerCommand = new RegisterCommand("NEW_MOBILE","CODE","PWD");
 
         //action
-        Account newAccount = RegisterService.register(cmd);
+        Account newAccount = mediator.register(registerCommand);
 
         //assert
         assertEquals("NEW_MOBILE", newAccount.getMobileNum());
     }
+
+    @Test
+    public void should_return_index_dto_when_render_index(){
+        //arrange
+        //action
+        IndexDTO indexDTO = mediator.renderIndex();
+        //assert
+        assertNotNull(indexDTO);
+    }
+
+    @Test
+    public void should_return_mycrowd_dto_when_render_mycrowd_success(){
+        //arrange
+        AccountCommand accountCommand = new AccountCommand();
+        //action
+        MyCrowdDTO myCrowdDTO = mediator.renderMyCrowd(accountCommand);
+        //assert
+        assertNotNull(myCrowdDTO);
+    }
+
+    @Test
+    public void should_return_project_details_dto_when_render_project_details_success(){
+        //arrange
+        CrowdTestProjectCommand crowdTestProjectCommand = new CrowdTestProjectCommand();
+        //action
+        ProjectDetailsDTO projectDetailsDTO = mediator.renderProjectDetails(crowdTestProjectCommand);
+        //assert
+        assertNotNull(projectDetailsDTO);
+    }
+
+    @Test
+    public void should_return_task_square_dto_when_render_task_square_success(){
+        //arrange
+        CrowdTestTaskCommand crowdTestTaskCommand = new CrowdTestTaskCommand();
+        //action
+        TaskSquareDTO taskSquareDTO = mediator.renderTaskSquare(crowdTestTaskCommand);
+        //assert
+        assertNotNull(taskSquareDTO);
+    }
+
+    @Test
+    public void should_return_report_details_dto_when_render_report_details_success(){
+        //arrange
+        CrowdTestReportCommand crowdTestReportCommand = new CrowdTestReportCommand();
+        //action
+        ReportDetailsDTO reportDetailsDTO = mediator.renderReportDetails(crowdTestReportCommand);
+        //assert
+        assertNotNull(reportDetailsDTO);
+    }
+
+    @Test
+    public void should_return_task_details_dto_when_render_task_details_success(){
+        //arrange
+        CrowdTestTaskCommand crowdTestTaskCommand = new CrowdTestTaskCommand();
+        //action
+        TaskDetailsDTO taskDetailsDTO = mediator.renderTaskDetails(crowdTestTaskCommand);
+        //assert
+        assertNotNull(taskDetailsDTO);
+    }
+
+    @Test
+    public void should_return_user_dto_when_render_user_success(){
+        //arrage
+        AccountCommand accountCommand = new AccountCommand();
+        //action
+        UserDTO userDTO = mediator.renderUser(accountCommand);
+        //assert
+        assertNotNull(userDTO);
+    }
 }