Browse Source

MOOC-37 增加swagger-ui MOOC-39 修复测试用例

guo00guo 5 years ago
parent
commit
7280a8d582

+ 16 - 0
core/pom.xml

@@ -28,6 +28,16 @@
             <groupId>org.powermock</groupId>
             <artifactId>powermock-module-junit4</artifactId>
             <version>1.6.4</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>javassist</artifactId>
+                    <groupId>org.javassist</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>objenesis</artifactId>
+                    <groupId>org.objenesis</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.powermock</groupId>
@@ -119,6 +129,12 @@
             <groupId>cn.afterturn</groupId>
             <artifactId>easypoi-base</artifactId>
             <version>3.0.3</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>guava</artifactId>
+                    <groupId>com.google.guava</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>cn.afterturn</groupId>

+ 23 - 1
core/src/test/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepoTest.java

@@ -3,6 +3,7 @@ package com.mooctest.crowd.domain.repository;
 import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
 import com.mooctest.crowd.domain.dao.CrowdTestReportDao;
 import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
+import com.mooctest.crowd.domain.dao.EndPointDao;
 import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.CrowdTestProjectNotExistException;
 import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
@@ -39,6 +40,12 @@ public class CrowdTestProjectRepoTest {
     @Mock
     private CrowdTestReportDao crowdTestReportDao;
 
+    @Mock
+    private EndPointDao endPointDao;
+
+    @Mock
+    private CommonRepo commonRepo;
+
     private CrowdTestProjectPO crowdTestProjectPO = new CrowdTestProjectPO();
     private List<CrowdTestProjectPO> crowdTestProjectPOList = new ArrayList<>();
     private CrowdTestTaskPO crowdTestTaskPO = new CrowdTestTaskPO();
@@ -55,6 +62,8 @@ public class CrowdTestProjectRepoTest {
     private CrowdTestTask crowdTestTask = new CrowdTestTask();
     private List<CrowdTestTask> crowdTestTaskList = new ArrayList<>();
     private List<CrowdTestProject> crowdTestProjectList = new ArrayList<>();
+    private TestType testType = new TestType();
+
 
 
     @Before
@@ -99,6 +108,17 @@ public class CrowdTestProjectRepoTest {
 
         crowdTestTaskPOList.add(crowdTestTaskPO);
 
+        crowdTestTask.setCode("PROR-IOS-TASK-ONE");
+        crowdTestTask.setId(1L);
+        crowdTestTask.setCrowdTestProjectCode(crowdTestProjectPO.getCode());
+        crowdTestTask.setDistributionProvince(crowdTestProjectPO.getDistributionProvince());
+        crowdTestTask.setDistributionCity(crowdTestProjectPO.getDistributionCity());
+        crowdTestTask.setDescription("测试任务一");
+        crowdTestTask.setStatus(0);
+        crowdTestTask.setIsDeleted(0);
+
+        //
+        testType.setType(0);
 
         //测试报告
         crowdTestReportPO.setCode("PROR-IOS-TASK-ONE-REPO-ONE");
@@ -109,6 +129,7 @@ public class CrowdTestProjectRepoTest {
         crowdTestReportPO.setIsDeleted(0);
         crowdTestReportPOList.add(crowdTestReportPO);
 
+
         //项目报告
         crowdTestProjectReportPO.setCode("PROR-IOS");
         crowdTestProjectReportPO.setId(2L);
@@ -214,10 +235,11 @@ public class CrowdTestProjectRepoTest {
 
     @Test
     public void should_return_void_when_save_project(){
-
         //arrange
         when(crowdTestProjectDao.save(crowdTestProjectPO)).thenReturn(crowdTestProjectPO);
         when(crowdTestTaskDao.save(crowdTestTaskPO)).thenReturn(crowdTestTaskPO);
+        when(commonRepo.getTestTypeByAppCode(crowdTestTaskPO.getType())).thenReturn(testType);
+        when(endPointDao.findByTaskCode(crowdTestTask.getCode())).thenReturn(Optional.empty());
         when(crowdTestReportDao.save(crowdTestReportPO)).thenReturn(crowdTestReportPO);
         //action
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);

+ 37 - 1
site/pom.xml

@@ -61,6 +61,20 @@
 			<groupId>com.mooctest.crowd</groupId>
 			<artifactId>core</artifactId>
 			<version>1.0-SNAPSHOT</version>
+			<exclusions>
+				<exclusion>
+					<artifactId>javassist</artifactId>
+					<groupId>org.javassist</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>objenesis</artifactId>
+					<groupId>org.objenesis</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>guava</artifactId>
+					<groupId>com.google.guava</groupId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 
 		<dependency>
@@ -99,6 +113,12 @@
 			<groupId>cn.afterturn</groupId>
 			<artifactId>easypoi-base</artifactId>
 			<version>3.0.3</version>
+			<exclusions>
+				<exclusion>
+					<artifactId>guava</artifactId>
+					<groupId>com.google.guava</groupId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 		<dependency>
 			<groupId>cn.afterturn</groupId>
@@ -125,6 +145,12 @@
 			<groupId>commons-validator</groupId>
 			<artifactId>commons-validator</artifactId>
 			<version>1.4.1</version>
+			<exclusions>
+				<exclusion>
+					<artifactId>commons-logging</artifactId>
+					<groupId>commons-logging</groupId>
+				</exclusion>
+			</exclusions>
 		</dependency>
 		<!-- kaptcha verification code -->
 		<dependency>
@@ -142,6 +168,17 @@
 			<groupId>org.yaml</groupId>
 			<artifactId>snakeyaml</artifactId>
 		</dependency>
+
+		<dependency>
+			<groupId>io.springfox</groupId>
+			<artifactId>springfox-swagger2</artifactId>
+			<version>2.9.2</version>
+		</dependency>
+		<dependency>
+			<groupId>io.springfox</groupId>
+			<artifactId>springfox-swagger-ui</artifactId>
+			<version>2.9.2</version>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>
@@ -151,5 +188,4 @@
 			</plugin>
 		</plugins>
 	</build>
-
 </project>

+ 44 - 0
site/src/main/java/com/mooctest/crowd/site/configuration/Swagger2Configuration.java

@@ -0,0 +1,44 @@
+package com.mooctest.crowd.site.configuration;
+
+/**
+ * @author guochao
+ * @date 2020-08-11 10:09
+ */
+
+import io.swagger.annotations.Api;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * Swagger使用的配置文件
+ */
+@Configuration
+@EnableSwagger2
+public class Swagger2Configuration {
+    @Bean
+    public Docket createRestApi(){
+        return new Docket(DocumentationType.SWAGGER_2)
+                .apiInfo(apiInfo())
+                .select()
+                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
+                .paths(PathSelectors.any())
+                .build();
+    }
+
+    //基本信息的配置,信息会在api文档上显示
+    private ApiInfo apiInfo(){
+        return new ApiInfoBuilder()
+                .title("群智平台后端接口文档")
+                .description("群智平台后端接口的文档")
+                .termsOfServiceUrl("http://localhost:8080/api/hello")
+                .version("1.0")
+                .build();
+    }
+}

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/controller/AgencyController.java

@@ -16,6 +16,7 @@ import com.mooctest.crowd.site.data.vo.SearchConditionVO;
 import com.mooctest.crowd.site.service.AgencyService;
 import com.mooctest.crowd.site.service.ResidentAgencyService;
 import com.mooctest.crowd.site.util.DataUtils;
+import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -32,6 +33,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/api")
+@Api(tags = "机构相关接口", description = "提供企业认证、查看企业信息相关的 Rest API")
 public class AgencyController extends BaseSearchController {
 
     @Autowired

File diff suppressed because it is too large
+ 0 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java


+ 2 - 3
site/src/main/java/com/mooctest/crowd/site/controller/CrowTestSquareController.java

@@ -7,11 +7,11 @@ import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
 import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
 import com.mooctest.crowd.site.data.vo.CrowdTestProjectVO;
 import com.mooctest.crowd.site.data.vo.SearchConditionVO;
-import com.mooctest.crowd.site.service.CommonService;
 import com.mooctest.crowd.site.service.CrowdProjectService;
 import com.mooctest.crowd.site.service.CrowdTaskService;
 import com.mooctest.crowd.site.service.CrowdTestSquareService;
 import com.mooctest.crowd.site.util.DataUtils;
+import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -28,6 +28,7 @@ import java.util.List;
 
 @RestController
 @RequestMapping("/api/square")
+@Api(tags = "众测广场相关接口", description = "提供众测广场相关的 Rest API")
 public class CrowTestSquareController extends BaseSearchController {
 
     @Autowired
@@ -35,8 +36,6 @@ public class CrowTestSquareController extends BaseSearchController {
     @Autowired
     private CrowdTaskService crowdTaskService;
     @Autowired
-    private CommonService commonService;
-    @Autowired
     private CrowdTestSquareService crowdTestSquareService;
 
 

+ 4 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CrowdProjectController.java

@@ -10,6 +10,8 @@ import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
 import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
 import com.mooctest.crowd.site.service.CrowdProjectService;
 import com.mooctest.crowd.site.util.FileUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
@@ -28,6 +30,7 @@ import java.util.List;
  */
 @Slf4j
 @RestController
+@Api(tags = "项目相关接口", description = "提供项目相关的 Rest API")
 public class CrowdProjectController{
 
     @Autowired
@@ -40,6 +43,7 @@ public class CrowdProjectController{
      * @return
      */
     @RequestMapping(value = "/api/project/", method = RequestMethod.POST)
+    @ApiOperation(value = "创建项目接口", notes = "创建项目")
     public ProjectDetailsDTO createProject(@Validated @RequestBody CrowdTestProjectCommand crowdTestProjectCommand, BindingResult result,HttpSession session){
         long  userId=Long.parseLong((String) session.getAttribute("userId"));
 

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CrowdReportController.java

@@ -4,6 +4,7 @@ import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.site.command.CrowdTestReportCommand;
 import com.mooctest.crowd.site.data.dto.ReportDetailsDTO;
 import com.mooctest.crowd.site.service.CrowdReportService;
+import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
@@ -20,6 +21,7 @@ import javax.servlet.http.HttpSession;
 @Slf4j
 @RestController
 @RequestMapping("/api")
+@Api(tags = "报告相关接口", description = "提供报告相关的 Rest API")
 public class CrowdReportController {
 
     @Autowired

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CrowdTaskController.java

@@ -7,6 +7,7 @@ import com.mooctest.crowd.site.command.CrowdTestTaskCommand;
 import com.mooctest.crowd.site.data.dto.TaskDetailsDTO;
 import com.mooctest.crowd.site.data.dto.TaskSquareDTO;
 import com.mooctest.crowd.site.service.CrowdTaskService;
+import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
@@ -23,6 +24,7 @@ import javax.servlet.http.HttpSession;
 @Slf4j
 @RestController
 @RequestMapping("/api")
+@Api(tags = "任务相关接口", description = "提供任务相关的 Rest API")
 public class CrowdTaskController{
 
     @Autowired

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/controller/EnumsController.java

@@ -1 +1 @@
-
package com.mooctest.crowd.site.controller;

import com.mooctest.crowd.site.data.vo.ApplicationTypeVO;
import com.mooctest.crowd.site.data.vo.FieldVO;
import com.mooctest.crowd.site.data.vo.TestTypeVO;
import com.mooctest.crowd.site.service.EnumsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @Author: guochao
 * @Date: 2020.7.9 22:33
 */
@RestController
@RequestMapping("/api")
public class EnumsController {

    @Autowired
    private EnumsService enumsService;

    /**
     * 获取所有领域类型
     * @return
     */
    @RequestMapping(value = "/list/filed", method = RequestMethod.GET)
    public List<FieldVO> getAllField(HttpServletRequest request) {
        return enumsService.getAllField();
    }

    /**
     * 获取所有应用类型
     * @return
     */
    @RequestMapping(value = "/list/application", method = RequestMethod.GET)
    public List<ApplicationTypeVO> getAllApplicationType(HttpServletRequest request) {
        return enumsService.getAllApplicationType();
    }

    /**
     * 获取所有服务类型
     * @return
     */
    @RequestMapping(value = "/list/type", method = RequestMethod.GET)
    public List<TestTypeVO> getAllType(HttpServletRequest request) {
        return enumsService.getAllType();
    }
}
+
package com.mooctest.crowd.site.controller;

import com.mooctest.crowd.site.data.vo.ApplicationTypeVO;
import com.mooctest.crowd.site.data.vo.FieldVO;
import com.mooctest.crowd.site.data.vo.TestTypeVO;
import com.mooctest.crowd.site.service.EnumsService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @Author: guochao
 * @Date: 2020.7.9 22:33
 */
@RestController
@RequestMapping("/api")
@Api(tags = "枚举类型相关接口", description = "提供领域类型、应用类型、测试类型的 Rest API")
public class EnumsController {

    @Autowired
    private EnumsService enumsService;

    /**
     * 获取所有领域类型
     * @return
     */
    @RequestMapping(value = "/list/filed", method = RequestMethod.GET)
    public List<FieldVO> getAllField(HttpServletRequest request) {
        return enumsService.getAllField();
    }

    /**
     * 获取所有应用类型
     * @return
     */
    @RequestMapping(value = "/list/application", method = RequestMethod.GET)
    public List<ApplicationTypeVO> getAllApplicationType(HttpServletRequest request) {
        return enumsService.getAllApplicationType();
    }

    /**
     * 获取所有测试类型
     * @return
     */
    @RequestMapping(value = "/list/type", method = RequestMethod.GET)
    public List<TestTypeVO> getAllType(HttpServletRequest request) {
        return enumsService.getAllType();
    }
}

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/controller/PersonalDataController.java

@@ -7,12 +7,14 @@ import com.mooctest.crowd.site.data.vo.BankCardVO;
 import com.mooctest.crowd.site.data.vo.QualificationVO;
 import com.mooctest.crowd.site.data.vo.UserVO;
 import com.mooctest.crowd.site.service.PersonalDataService;
+import io.swagger.annotations.Api;
 import org.codehaus.jettison.json.JSONException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping("/api/personal")
+@Api(tags = "个人资料相关接口", description = "提供个人信息、我的资质、我的银行卡相关的 Rest API")
 public class PersonalDataController {
 
     @Autowired

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/controller/TechnicalArticlesController.java

@@ -6,6 +6,7 @@ import com.mooctest.crowd.site.data.response.ResponseVO;
 import com.mooctest.crowd.site.data.response.ServerCode;
 import com.mooctest.crowd.site.data.vo.SearchConditionVO;
 import com.mooctest.crowd.site.service.TechnicalArticlesService;
+import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
@@ -23,6 +24,7 @@ import java.util.Map;
  */
 @RestController
 @RequestMapping("/api/technical")
+@Api(tags = "众测技术相关接口", description = "提供众测技术相关的 Rest API")
 public class TechnicalArticlesController extends BaseSearchController{
 
     @Autowired

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/controller/UploadController.java

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.site.controller;
 
 import com.mooctest.crowd.site.service.UploadService;
+import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -15,6 +16,7 @@ import org.springframework.web.multipart.MultipartFile;
  */
 @RestController
 @RequestMapping("/api/files")
+@Api(tags = "上传相关接口", description = "提供上传相关的 Rest API")
 public class UploadController {
 
     @Autowired

+ 7 - 0
site/src/main/java/com/mooctest/crowd/site/controller/UserController.java

@@ -17,6 +17,7 @@ import com.mooctest.crowd.site.service.EnterpriseAuthService;
 import com.mooctest.crowd.site.service.PersonalAuthService;
 import com.mooctest.crowd.site.service.UserService;
 import com.mooctest.crowd.site.util.DataUtils;
+import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
@@ -33,6 +34,7 @@ import java.util.List;
  * @Email: 171256175@qq.com
  * @date 2019-07-24 23:50
  */
+@Api(tags = "用户相关接口", description = "提供用户相关、个人认证的 Rest API")
 @RestController
 @RequestMapping("/api")
 public class UserController extends BaseController{
@@ -45,6 +47,11 @@ public class UserController extends BaseController{
     @Autowired
     private UserService userService;
 
+    @RequestMapping(value = "/hello", method = RequestMethod.GET)
+    public String hello() {
+        return "hello";
+    }
+
     @RequestMapping(value = "/user", method = RequestMethod.POST)
     public UserDTO register(@Validated RegisterCommand registerCommand, BindingResult result) {
         if (result.hasErrors())

Some files were not shown because too many files changed in this diff