From 3f94aaf29df73b8155b4575618ecf65aa2bd4b7a Mon Sep 17 00:00:00 2001 From: yimfeng Date: Wed, 8 Dec 2021 17:36:55 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- case-server/pom.xml | 18 ++ .../framework/controller/DirController.java | 5 + .../controller/UploadController.java | 1 + .../framework/controller/UserController.java | 5 + .../entity/persistent/CaseBackup.java | 4 + .../entity/request/auth/UserLoginReq.java | 20 +++ .../entity/request/auth/UserRegisterReq.java | 20 +++ .../entity/request/cases/CaseCreateReq.java | 81 +++++++++ .../entity/request/cases/CaseDeleteReq.java | 4 + .../entity/request/cases/CaseEditReq.java | 5 +- .../entity/request/cases/CaseQueryReq.java | 100 +++++++++++ .../entity/request/cases/FileImportReq.java | 2 + .../entity/request/dir/DirCreateReq.java | 2 + .../entity/request/dir/DirDeleteReq.java | 2 + .../entity/request/dir/DirRenameReq.java | 2 + .../entity/request/record/RecordAddReq.java | 4 + .../request/record/RecordDeleteReq.java | 4 + .../request/record/RecordUpdateReq.java | 4 + .../entity/request/ws/RecordWsClearReq.java | 7 +- .../entity/request/ws/WsSaveReq.java | 4 + .../xiaoju/framework/mapper/UserMapper.java | 2 + .../xiaoju/framework/service/DirService.java | 3 + .../xiaoju/framework/service/UserService.java | 1 + .../service/impl/DirServiceImpl.java | 21 ++- .../service/impl/UserServiceImpl.java | 8 + .../xiaoju/framework/mapper/UserMapper.xml | 8 + .../framework/BackupControllerTests.java | 95 ++++++++++ .../xiaoju/framework/CaseControllerTests.java | 165 ++++++++++++++++++ .../com/xiaoju/framework/CaseServerTest.java | 22 +++ .../xiaoju/framework/DirControllerTests.java | 119 +++++++++++++ .../framework/RecordControllerTests.java | 126 +++++++++++++ .../framework/UploadControllerTests.java | 90 ++++++++++ .../xiaoju/framework/UserControllerTests.java | 84 +++++++++ 33 files changed, 1035 insertions(+), 3 deletions(-) create mode 100644 case-server/src/test/java/com/xiaoju/framework/BackupControllerTests.java create mode 100644 case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java create mode 100644 case-server/src/test/java/com/xiaoju/framework/CaseServerTest.java create mode 100644 case-server/src/test/java/com/xiaoju/framework/DirControllerTests.java create mode 100644 case-server/src/test/java/com/xiaoju/framework/RecordControllerTests.java create mode 100644 case-server/src/test/java/com/xiaoju/framework/UploadControllerTests.java create mode 100644 case-server/src/test/java/com/xiaoju/framework/UserControllerTests.java diff --git a/case-server/pom.xml b/case-server/pom.xml index fd070cf..2852206 100644 --- a/case-server/pom.xml +++ b/case-server/pom.xml @@ -169,6 +169,24 @@ spring-test + + junit + junit + 4.12 + test + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + diff --git a/case-server/src/main/java/com/xiaoju/framework/controller/DirController.java b/case-server/src/main/java/com/xiaoju/framework/controller/DirController.java index 41daeaa..f40af9d 100644 --- a/case-server/src/main/java/com/xiaoju/framework/controller/DirController.java +++ b/case-server/src/main/java/com/xiaoju/framework/controller/DirController.java @@ -117,4 +117,9 @@ public Response getDirCardTree(@RequestParam @NotNull(message = "业务线id @RequestParam @NotNull(message = "渠道为空") Integer channel) { return Response.success(dirService.getDirTree(productLineId, channel)); } + + @GetMapping("/getId") + public String getId(String parentId, Long productLineId, Integer channel, String text) { + return dirService.getId(parentId, productLineId, channel, text); + } } diff --git a/case-server/src/main/java/com/xiaoju/framework/controller/UploadController.java b/case-server/src/main/java/com/xiaoju/framework/controller/UploadController.java index 6de144e..0158239 100644 --- a/case-server/src/main/java/com/xiaoju/framework/controller/UploadController.java +++ b/case-server/src/main/java/com/xiaoju/framework/controller/UploadController.java @@ -69,6 +69,7 @@ public Response importXmind(@RequestParam MultipartFile file, String creat Long productLineId, String title, String description, Integer channel, String requirementId, HttpServletRequest request) { FileImportReq req = new FileImportReq(file, creator, productLineId, title, description, channel, requirementId, bizId); req.validate(); + try { return Response.success(fileService.importXmindFile(req, request, uploadPath)); } catch (CaseServerException e) { diff --git a/case-server/src/main/java/com/xiaoju/framework/controller/UserController.java b/case-server/src/main/java/com/xiaoju/framework/controller/UserController.java index 468519d..6dd6450 100644 --- a/case-server/src/main/java/com/xiaoju/framework/controller/UserController.java +++ b/case-server/src/main/java/com/xiaoju/framework/controller/UserController.java @@ -49,4 +49,9 @@ public Response login(@RequestBody UserLoginReq req, HttpServletRequest reque public Response logout(HttpServletRequest request,HttpServletResponse response) { return Response.success(userService.logout(request, response)); } + + @PostMapping("/logoff") + public Response logoff(String Username) { + return Response.success(userService.logoff(Username)); + } } diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/persistent/CaseBackup.java b/case-server/src/main/java/com/xiaoju/framework/entity/persistent/CaseBackup.java index 00249f3..880244d 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/persistent/CaseBackup.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/persistent/CaseBackup.java @@ -1,6 +1,8 @@ package com.xiaoju.framework.entity.persistent; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.Date; @@ -11,6 +13,8 @@ * @date 2019/11/05 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class CaseBackup { private Long id; private Long caseId; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java index 88d2ae3..a6de6d3 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java @@ -1,13 +1,33 @@ package com.xiaoju.framework.entity.request.auth; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * Created by didi on 2021/4/22. */ @Data +@AllArgsConstructor +@NoArgsConstructor public class UserLoginReq { private String username; private String password; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } } diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java index e8e1cfb..0038154 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java @@ -1,13 +1,33 @@ package com.xiaoju.framework.entity.request.auth; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * Created by didi on 2021/4/22. */ @Data +@AllArgsConstructor +@NoArgsConstructor public class UserRegisterReq { private String username; private String password; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } } diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java index 2bff344..9becd60 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java @@ -21,6 +21,86 @@ @NoArgsConstructor public class CaseCreateReq implements ParamValidate { + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public Long getProductLineId() { + return productLineId; + } + + public void setProductLineId(Long productLineId) { + this.productLineId = productLineId; + } + + public Integer getCaseType() { + return caseType; + } + + public void setCaseType(Integer caseType) { + this.caseType = caseType; + } + + public String getCaseContent() { + return caseContent; + } + + public void setCaseContent(String caseContent) { + this.caseContent = caseContent; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Integer getChannel() { + return channel; + } + + public void setChannel(Integer channel) { + this.channel = channel; + } + + public String getBizId() { + return bizId; + } + + public void setBizId(String bizId) { + this.bizId = bizId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getRequirementId() { + return requirementId; + } + + public void setRequirementId(String requirementId) { + this.requirementId = requirementId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + /** * 必填 创建人邮箱前缀 */ @@ -76,6 +156,7 @@ public class CaseCreateReq implements ParamValidate { */ private String description; + @Override public void validate() { // 复制操作才需要id diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseDeleteReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseDeleteReq.java index b57da4f..04fc23b 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseDeleteReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseDeleteReq.java @@ -1,7 +1,9 @@ package com.xiaoju.framework.entity.request.cases; import com.xiaoju.framework.entity.request.ParamValidate; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * 用例 逻辑删除 @@ -10,6 +12,8 @@ * @date 2020/9/7 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class CaseDeleteReq implements ParamValidate { private Long id; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java index 67196f9..dd43016 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java @@ -3,7 +3,9 @@ import com.xiaoju.framework.constants.BizConstant; import com.xiaoju.framework.constants.SystemConstant; import com.xiaoju.framework.entity.request.ParamValidate; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; import java.util.Arrays; @@ -15,6 +17,8 @@ * @date 2020/9/4 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class CaseEditReq implements ParamValidate { /** @@ -58,7 +62,6 @@ public class CaseEditReq implements ParamValidate { private String description; - @Override public void validate() { if (id == null || id <= 0) { diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseQueryReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseQueryReq.java index 1835d4b..ecf563e 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseQueryReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseQueryReq.java @@ -1,6 +1,8 @@ package com.xiaoju.framework.entity.request.cases; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * 用例 筛选与查询 @@ -9,6 +11,8 @@ * @date 2020/8/12 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class CaseQueryReq { private Long id; @@ -48,4 +52,100 @@ public CaseQueryReq(Integer caseType, String title, String creator, String reqId this.pageNum = pageNum; this.pageSize = pageSize; } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Integer getCaseType() { + return caseType; + } + + public void setCaseType(Integer caseType) { + this.caseType = caseType; + } + + public Long getLineId() { + return lineId; + } + + public void setLineId(Long lineId) { + this.lineId = lineId; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getRequirementId() { + return requirementId; + } + + public void setRequirementId(String requirementId) { + this.requirementId = requirementId; + } + + public String getBeginTime() { + return beginTime; + } + + public void setBeginTime(String beginTime) { + this.beginTime = beginTime; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } + + public Integer getChannel() { + return channel; + } + + public void setChannel(Integer channel) { + this.channel = channel; + } + + public String getBizId() { + return bizId; + } + + public void setBizId(String bizId) { + this.bizId = bizId; + } + + public Integer getPageNum() { + return pageNum; + } + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } } diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/FileImportReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/FileImportReq.java index 126b6f8..b823e33 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/FileImportReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/FileImportReq.java @@ -3,6 +3,7 @@ import com.xiaoju.framework.entity.request.ParamValidate; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; @@ -14,6 +15,7 @@ */ @Data @AllArgsConstructor +@NoArgsConstructor public class FileImportReq implements ParamValidate { private MultipartFile file; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirCreateReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirCreateReq.java index b4f5d5a..c0da94e 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirCreateReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirCreateReq.java @@ -3,6 +3,7 @@ import com.xiaoju.framework.entity.request.ParamValidate; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; /** @@ -13,6 +14,7 @@ */ @Data @AllArgsConstructor +@NoArgsConstructor public class DirCreateReq implements ParamValidate { /** diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirDeleteReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirDeleteReq.java index 169ec69..df4c9a1 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirDeleteReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirDeleteReq.java @@ -4,6 +4,7 @@ import com.xiaoju.framework.entity.request.ParamValidate; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; /** @@ -14,6 +15,7 @@ */ @Data @AllArgsConstructor +@NoArgsConstructor public class DirDeleteReq implements ParamValidate { private String parentId; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirRenameReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirRenameReq.java index 29cccbe..ca94b56 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirRenameReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirRenameReq.java @@ -3,6 +3,7 @@ import com.xiaoju.framework.entity.request.ParamValidate; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; import static com.xiaoju.framework.constants.BizConstant.UNSORTED_BIZ_ID; @@ -15,6 +16,7 @@ */ @Data @AllArgsConstructor +@NoArgsConstructor public class DirRenameReq implements ParamValidate { private String id; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordAddReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordAddReq.java index b9be946..de4c258 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordAddReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordAddReq.java @@ -1,7 +1,9 @@ package com.xiaoju.framework.entity.request.record; import com.xiaoju.framework.entity.request.ParamValidate; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; /** @@ -11,6 +13,8 @@ * @date 2020/10/27 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class RecordAddReq implements ParamValidate { private Long caseId; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordDeleteReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordDeleteReq.java index eb1ae81..33e4ef4 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordDeleteReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordDeleteReq.java @@ -1,7 +1,9 @@ package com.xiaoju.framework.entity.request.record; import com.xiaoju.framework.entity.request.ParamValidate; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * 任务 删除 @@ -10,6 +12,8 @@ * @date 2020/10/28 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class RecordDeleteReq implements ParamValidate { private Long id; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordUpdateReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordUpdateReq.java index a0f3e73..af31ed3 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordUpdateReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordUpdateReq.java @@ -1,7 +1,9 @@ package com.xiaoju.framework.entity.request.record; import com.xiaoju.framework.entity.request.ParamValidate; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; /** @@ -11,6 +13,8 @@ * @date 2020/10/29 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class RecordUpdateReq implements ParamValidate { private Long id; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java index 614a0b7..89c5167 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java @@ -1,6 +1,9 @@ package com.xiaoju.framework.entity.request.ws; -import com.xiaoju.framework.entity.request.ParamValidate;import lombok.Data; +import com.xiaoju.framework.entity.request.ParamValidate; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; /** @@ -10,6 +13,8 @@ * @date 2020/10/29 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class RecordWsClearReq implements ParamValidate { private Long id; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/WsSaveReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/WsSaveReq.java index b236610..9c6b2f0 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/WsSaveReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/WsSaveReq.java @@ -1,7 +1,9 @@ package com.xiaoju.framework.entity.request.ws; import com.xiaoju.framework.entity.request.ParamValidate; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; /** @@ -11,6 +13,8 @@ * @date 2020/11/25 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class WsSaveReq implements ParamValidate { /** diff --git a/case-server/src/main/java/com/xiaoju/framework/mapper/UserMapper.java b/case-server/src/main/java/com/xiaoju/framework/mapper/UserMapper.java index ec2178e..46615a4 100644 --- a/case-server/src/main/java/com/xiaoju/framework/mapper/UserMapper.java +++ b/case-server/src/main/java/com/xiaoju/framework/mapper/UserMapper.java @@ -16,4 +16,6 @@ public interface UserMapper { int updateByPrimaryKeySelective(User record); int updateByPrimaryKey(User record); + + int deleteByUserName(String username); } \ No newline at end of file diff --git a/case-server/src/main/java/com/xiaoju/framework/service/DirService.java b/case-server/src/main/java/com/xiaoju/framework/service/DirService.java index b0b149e..41175a7 100644 --- a/case-server/src/main/java/com/xiaoju/framework/service/DirService.java +++ b/case-server/src/main/java/com/xiaoju/framework/service/DirService.java @@ -24,6 +24,9 @@ public interface DirService { */ DirNodeDto addDir(DirCreateReq request); + + // 通过其他三个信息找到delid值 + String getId(String parentId, Long productLineId, Integer channel, String text); /** * 重命名文件夹 * diff --git a/case-server/src/main/java/com/xiaoju/framework/service/UserService.java b/case-server/src/main/java/com/xiaoju/framework/service/UserService.java index bd7a2f5..051808b 100644 --- a/case-server/src/main/java/com/xiaoju/framework/service/UserService.java +++ b/case-server/src/main/java/com/xiaoju/framework/service/UserService.java @@ -13,4 +13,5 @@ public interface UserService { Integer register(UserRegisterReq req, HttpServletRequest request, HttpServletResponse response); Integer login(UserLoginReq req, HttpServletRequest request, HttpServletResponse response); Integer logout(HttpServletRequest request, HttpServletResponse response); + Integer logoff(String Username); } diff --git a/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java b/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java index 0a76ad1..436b1a3 100644 --- a/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java +++ b/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java @@ -52,6 +52,7 @@ public DirNodeDto addDir(DirCreateReq request) { DirNodeDto newDir = new DirNodeDto(); newDir.setId(UUID.randomUUID().toString().substring(0,8)); newDir.setText(request.getText()); +// newDir.setId(dir.getId() + request.getText()); newDir.setParentId(dir.getId()); children.add(newDir); @@ -59,6 +60,23 @@ public DirNodeDto addDir(DirCreateReq request) { return root; } + + @Override + public String getId(String parentId, Long productLineId, Integer channel, String text){ + DirNodeDto root = getDirTree(productLineId, channel); + DirNodeDto dir = getDir(parentId, root); + if(dir == null) + return null; + Iterator iterator = dir.getChildren().iterator(); + while (iterator.hasNext()) { + DirNodeDto next = iterator.next(); + if (text.equals(next.getText())) { + return next.getId(); + } + } + return null; + } + @Override @Transactional(rollbackFor = Exception.class) public DirNodeDto renameDir(DirRenameReq request) { @@ -82,7 +100,6 @@ public DirNodeDto renameDir(DirRenameReq request) { } - @Override public DirNodeDto delDir(DirDeleteReq request) { DirNodeDto root = getDirTree(request.getProductLineId(), request.getChannel()); @@ -103,6 +120,8 @@ public DirNodeDto delDir(DirDeleteReq request) { return root; } + + @Override public DirNodeDto getDir(String bizId, DirNodeDto root) { if (root == null) { diff --git a/case-server/src/main/java/com/xiaoju/framework/service/impl/UserServiceImpl.java b/case-server/src/main/java/com/xiaoju/framework/service/impl/UserServiceImpl.java index bd48520..6de8c06 100644 --- a/case-server/src/main/java/com/xiaoju/framework/service/impl/UserServiceImpl.java +++ b/case-server/src/main/java/com/xiaoju/framework/service/impl/UserServiceImpl.java @@ -74,6 +74,7 @@ public Integer login(UserLoginReq req, HttpServletRequest request, HttpServletRe //3.将新用户设置到cookie中去 CookieUtils.setCookie(request, response, "username", req.getUsername(), 60 * 60 * 24, null, false); + return null; } @@ -107,4 +108,11 @@ public Integer logout(HttpServletRequest request, HttpServletResponse response) return null; } + + @Override + public Integer logoff(String username){ + // 4.注销该用户 + return userMapper.deleteByUserName(username); + } + } diff --git a/case-server/src/main/resources/com/xiaoju/framework/mapper/UserMapper.xml b/case-server/src/main/resources/com/xiaoju/framework/mapper/UserMapper.xml index 752e9c0..5fbf1b0 100644 --- a/case-server/src/main/resources/com/xiaoju/framework/mapper/UserMapper.xml +++ b/case-server/src/main/resources/com/xiaoju/framework/mapper/UserMapper.xml @@ -22,16 +22,24 @@ from user where id = #{id,jdbcType=BIGINT} + + delete from user where id = #{id,jdbcType=BIGINT} + + + delete from user + where username = #{id,jdbcType=VARCHAR} + + insert into user (id, username, password, salt, authority_name, is_delete, channel, diff --git a/case-server/src/test/java/com/xiaoju/framework/BackupControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/BackupControllerTests.java new file mode 100644 index 0000000..9211c1d --- /dev/null +++ b/case-server/src/test/java/com/xiaoju/framework/BackupControllerTests.java @@ -0,0 +1,95 @@ +package com.xiaoju.framework; + +import com.alibaba.fastjson.JSONObject; +import com.xiaoju.framework.controller.BackupController; +import com.xiaoju.framework.controller.UploadController; +import com.xiaoju.framework.entity.persistent.CaseBackup; +import lombok.extern.slf4j.Slf4j; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultHandlers; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + +import java.util.Date; + + +/** + * Created by yimfeng on 2021/11/22. + */ +public class BackupControllerTests extends CaseServerTest { + @Autowired + private BackupController backupController; + + private MockMvc mockMvc; + + @Before + public void setup() { + mockMvc = MockMvcBuilders.standaloneSetup(backupController).build(); + } + + @Test + public void exportTest1() throws Exception { + + // 测试getBackupByCaseId接口 get方法 + backupController.getBackupByCaseId(2481L, "beginTime", "endTime"); + MvcResult mvcResultGet = mockMvc.perform(MockMvcRequestBuilders.get("/api/backup/getBackupByCaseId") + .accept(MediaType.APPLICATION_JSON).param("caseId", "2481") + .accept(MediaType.APPLICATION_JSON).param("beginTime", "1635696000000") + .accept(MediaType.APPLICATION_JSON).param("endTime", "1638374399999")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultGet); + + // 测试getCaseDiff接口 get方法 + backupController.getCaseDiff(738L, 736L); + MvcResult mvcResultDiff = mockMvc.perform(MockMvcRequestBuilders.get("/api/backup/getCaseDiff") + .accept(MediaType.APPLICATION_JSON).param("caseId1", "738") + .accept(MediaType.APPLICATION_JSON).param("caseId2", "736")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultDiff); + + // 测试deleteByCaseId接口 get方法 + backupController.deleteByCaseId(738L); + MvcResult mvcResultDelete = mockMvc.perform(MockMvcRequestBuilders.get("/api/backup/deleteByCaseId") + .accept(MediaType.APPLICATION_JSON).param("caseId", "738")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultDelete); + + // 测试add接口 + CaseBackup caseBackup = new CaseBackup(); + caseBackup.setId(1599L); + caseBackup.setCaseId(2620L); + caseBackup.setCreator("yimfeng"); + caseBackup.setCaseContent("{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"中心主题\"},\"children\":[{\"data\":{\"id\":\"cg9k2vx2cr40\",\"created\":1638929669164,\"text\":\"111\"},\"children\":[]}]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":3,\"right\":1}"); + caseBackup.setTitle("离开自动保存用例"); + caseBackup.setExtra(""); + caseBackup.setGmtCreated(new Date()); + caseBackup.setIsDelete(0); + caseBackup.setRecordContent(""); + + MvcResult mvcResultadd = mockMvc.perform(MockMvcRequestBuilders.post("/api/backup/add") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(caseBackup))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + + System.out.println(mvcResultadd); + + } + +} diff --git a/case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java new file mode 100644 index 0000000..35f4660 --- /dev/null +++ b/case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java @@ -0,0 +1,165 @@ +package com.xiaoju.framework; + +import com.alibaba.fastjson.JSONObject; +import com.xiaoju.framework.controller.CaseController; +import com.xiaoju.framework.entity.request.cases.CaseCreateReq; +import com.xiaoju.framework.entity.request.cases.CaseDeleteReq; +import com.xiaoju.framework.entity.request.cases.CaseEditReq; +import com.xiaoju.framework.entity.request.ws.WsSaveReq; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultHandlers; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + + +/** + * Created by yimfeng on 2021/11/22. + */ +public class CaseControllerTests extends CaseServerTest { + @Autowired + private CaseController caseController; + private MockMvc mockMvc; + + @Before + public void setup() { + mockMvc = MockMvcBuilders.standaloneSetup(caseController).build(); + } + + @Test + public void exportTest1() throws Exception { + +// // 测试list接口 put方法 + caseController.getCaseList(1, 1L, "-1", "done测试", "yimfeng", "", "111", "222", 1, 10); + + + MvcResult mvcResultList = mockMvc.perform(MockMvcRequestBuilders.get("/api/case/list") + .accept(MediaType.APPLICATION_JSON).param("channel", "1") + .accept(MediaType.APPLICATION_JSON).param("productLineId", "1") + .accept(MediaType.APPLICATION_JSON).param("bizId", "-1") + .accept(MediaType.APPLICATION_JSON).param("title", "done测试") + .accept(MediaType.APPLICATION_JSON).param("creator", "yimfeng") + .accept(MediaType.APPLICATION_JSON).param("requirementId", "") + .accept(MediaType.APPLICATION_JSON).param("beginTime", "111") + .accept(MediaType.APPLICATION_JSON).param("endTime", "222") + .accept(MediaType.APPLICATION_JSON).param("pageNum", "1") + .accept(MediaType.APPLICATION_JSON).param("pageSize", "10")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + + System.out.print(mvcResultList); + + // 测试create接口 post方法 + CaseCreateReq caseCreateReq = new CaseCreateReq(); + caseCreateReq.setCreator("yimfeng"); + caseCreateReq.setProductLineId(1L); + caseCreateReq.setCaseType(0); + caseCreateReq.setCaseContent("{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"中心主题\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":0}"); + caseCreateReq.setTitle("copy of done测试"); + caseCreateReq.setChannel(1); + caseCreateReq.setBizId("-1"); + caseCreateReq.setId(2483L); + caseCreateReq.setRequirementId("111"); + caseCreateReq.setDescription("这是个测试"); + + MvcResult mvcResultCreate = mockMvc.perform(MockMvcRequestBuilders.post("/api/case/create") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(caseCreateReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + + System.out.print(mvcResultCreate); + + // 测试edit接口 post方法 + CaseEditReq caseEditReq = new CaseEditReq(); + caseEditReq.setId(2574L); + caseEditReq.setCaseType(0); + caseEditReq.setTitle("done测试"); + caseEditReq.setModifier("yimfeng"); + caseEditReq.setBizId("-1"); + caseEditReq.setChannel(1); + caseEditReq.setRequirementId("111"); + caseEditReq.setDescription("编辑用例集"); + + +// caseController.editCase(caseEditReq); + MvcResult mvcResultEdit = mockMvc.perform(MockMvcRequestBuilders.post("/api/case/edit") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(caseEditReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.println(mvcResultEdit); + +// + // 测试delete接口 post方法 + CaseDeleteReq caseDeleteReq = new CaseDeleteReq(); + caseDeleteReq.setId(2625L); + caseController.deleteCase(caseDeleteReq); + MvcResult mvcResultDelete = this.mockMvc.perform(MockMvcRequestBuilders.post("/api/case/delete") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(caseDeleteReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.println(mvcResultDelete); + + + + // 测试detail接口 get方法 没找到该接口 +// caseController.getCaseDetail(2620L); +// MvcResult mvcResultDetail = mockMvc.perform(MockMvcRequestBuilders.get("/api/case/detail") +// .accept(MediaType.APPLICATION_JSON).param("id", "2620")) +// .andExpect(MockMvcResultMatchers.status().isOk()) +// .andDo(MockMvcResultHandlers.print()) +// .andReturn(); +// System.out.print(mvcResultDetail); + + + // 测试listCreators接口 get方法 + caseController.listCreators(0, 1L); + MvcResult mvcResultCreators = mockMvc.perform(MockMvcRequestBuilders.get("/api/case/listCreators") + .accept(MediaType.APPLICATION_JSON).param("caseType", "0") + .accept(MediaType.APPLICATION_JSON).param("productLineId", "1")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultCreators); + + + // 测试CastInfo接口 get方法 + caseController.getCaseGeneralInfo(2483L); + MvcResult mvcResultInfo = mockMvc.perform(MockMvcRequestBuilders.get("/api/case/getCaseInfo") + .accept(MediaType.APPLICATION_JSON).param("id", "2483")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultInfo); + + + // 测试update接口 post方法 + WsSaveReq wsSaveReq = new WsSaveReq(); + wsSaveReq.setId(2494L); + wsSaveReq.setCaseContent("{\"root\":{\"data\":{\"created\":1562059643204,\"id\":\"bv8nxhi3c800\",\"text\":\"中心主题\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":1}"); + wsSaveReq.setModifier("yimfeng"); + wsSaveReq.setRecordId(null); + caseController.updateWsCase(wsSaveReq); + MvcResult mvcResultUpdate = mockMvc.perform(MockMvcRequestBuilders.post("/api/case/update") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(wsSaveReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultUpdate); + + + } + +} diff --git a/case-server/src/test/java/com/xiaoju/framework/CaseServerTest.java b/case-server/src/test/java/com/xiaoju/framework/CaseServerTest.java new file mode 100644 index 0000000..b21a2c7 --- /dev/null +++ b/case-server/src/test/java/com/xiaoju/framework/CaseServerTest.java @@ -0,0 +1,22 @@ +package com.xiaoju.framework; +import org.junit.After; +import org.junit.Before; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) +//@WebAppConfiguration +public class CaseServerTest { + @Before + public void init() { + System.out.println("start"); + } + + @After + public void after() { + System.out.println("end"); + } +} diff --git a/case-server/src/test/java/com/xiaoju/framework/DirControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/DirControllerTests.java new file mode 100644 index 0000000..ba2f40f --- /dev/null +++ b/case-server/src/test/java/com/xiaoju/framework/DirControllerTests.java @@ -0,0 +1,119 @@ +package com.xiaoju.framework; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.xiaoju.framework.controller.DirController; +import com.xiaoju.framework.entity.request.dir.DirCreateReq; +import com.xiaoju.framework.entity.request.dir.DirDeleteReq; +import com.xiaoju.framework.entity.request.dir.DirRenameReq; +import com.xiaoju.framework.service.DirService; +import org.dom4j.Element; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultHandlers; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + + +/** + * Created by yimfeng on 2021/11/22. + */ +public class DirControllerTests extends CaseServerTest { + @Autowired + private DirController dirController; + + private MockMvc mockMvc; + + @Before + public void setup() { + mockMvc = MockMvcBuilders.standaloneSetup(dirController).build(); + } + + @Test + public void exportTest1() throws Exception { + + // 测试list接口,get方法 + MvcResult mvcResultList = mockMvc.perform(MockMvcRequestBuilders.get("/api/dir/list") + .accept(MediaType.APPLICATION_JSON).param("productLineId", "1") + .accept(MediaType.APPLICATION_JSON).param("channel", "1")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + + System.out.print(mvcResultList); + + // 测试add接口, post方法 + DirCreateReq dirCreateReq = new DirCreateReq(); + dirCreateReq.setParentId("root"); + dirCreateReq.setProductLineId(1L); + dirCreateReq.setText("测试节点"); + dirCreateReq.setChannel(1); + + + MvcResult mvcResultAdd = mockMvc.perform(MockMvcRequestBuilders.post("/api/dir/add") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(dirCreateReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + + String contentImp = mvcResultAdd.getResponse().getContentAsString(); + System.out.print(contentImp); + + System.out.print(mvcResultAdd); + + + // 通过其他信息获得id + String id = dirController.getId("root", 1L, 1, "测试节点"); + System.out.println("id的数据为:" + id); + + // 测试rename接口, post方法 + DirRenameReq dirRenameReq = new DirRenameReq(); + dirRenameReq.setId(id); + dirRenameReq.setProductLineId(1L); + dirRenameReq.setText("1234567"); + dirRenameReq.setChannel(1); + + + MvcResult mvcResultRename = mockMvc.perform(MockMvcRequestBuilders.post("/api/dir/rename") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(dirRenameReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + + System.out.print(mvcResultRename); + + // 测试delete接口,post方法 + DirDeleteReq dirDeleteReq = new DirDeleteReq(); + dirDeleteReq.setParentId("root"); + dirDeleteReq.setProductLineId(1L); + dirDeleteReq.setDelId(id); + dirDeleteReq.setChannel(1); + + MvcResult mvcResultdelete = mockMvc.perform(MockMvcRequestBuilders.post("/api/dir/delete") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(dirDeleteReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + + System.out.print(mvcResultdelete); + + // 测试cardTree接口,get方法 + dirController.getDirTree(1L, 1); + MvcResult mvcResultDirTree = mockMvc.perform(MockMvcRequestBuilders.get("/api/dir/cardTree") + .accept(MediaType.APPLICATION_JSON).param("productLineId", "1") + .accept(MediaType.APPLICATION_JSON).param("channel", "1")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + + System.out.print(mvcResultDirTree); + } +} \ No newline at end of file diff --git a/case-server/src/test/java/com/xiaoju/framework/RecordControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/RecordControllerTests.java new file mode 100644 index 0000000..ba103a5 --- /dev/null +++ b/case-server/src/test/java/com/xiaoju/framework/RecordControllerTests.java @@ -0,0 +1,126 @@ +package com.xiaoju.framework; + +import com.alibaba.fastjson.JSONObject; +import com.xiaoju.framework.controller.RecordController; +import com.xiaoju.framework.entity.request.record.RecordAddReq; +import com.xiaoju.framework.entity.request.record.RecordDeleteReq; +import com.xiaoju.framework.entity.request.record.RecordUpdateReq; +import com.xiaoju.framework.entity.request.ws.RecordWsClearReq; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultHandlers; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + + +/** + * Created by yimfeng on 2021/11/22. + */ +public class RecordControllerTests extends CaseServerTest { + + @Autowired + private RecordController RecordController; + + private MockMvc mockMvc; + + @Before + public void setup() { + mockMvc = MockMvcBuilders.standaloneSetup(RecordController).build(); + } + + @Test + public void exportTest1() throws Exception { + + // 测试list接口 get方法 + RecordController.getRecordList(2212L); + MvcResult mvcResultList = mockMvc.perform(MockMvcRequestBuilders.get("/api/record/list") + .accept(MediaType.APPLICATION_JSON).param("caseId", "2212")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultList); + + + // 测试create接口 post方法 + RecordAddReq recordAddReq = new RecordAddReq(); + recordAddReq.setCaseId(2494L); + recordAddReq.setCreator("yimfeng"); + recordAddReq.setTitle("测试record123"); + recordAddReq.setChooseContent("{\"priority\":[\"0\"],\"resource\":[]}"); + recordAddReq.setDescription("这是一个测试"); + recordAddReq.setExpectStartTime(1635696000000L); + recordAddReq.setExpectEndTime(1638374399999L); + + RecordController.createRecord(recordAddReq); + MvcResult mvcResultCreate = mockMvc.perform(MockMvcRequestBuilders.post("/api/record/create") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(recordAddReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultCreate); + + + // 测试edit接口 post方法 + RecordUpdateReq recordUpdateReq = new RecordUpdateReq(); + recordUpdateReq.setId(911L); + recordUpdateReq.setModifier("yimfeng"); + recordUpdateReq.setOwner("yimfeng"); + recordUpdateReq.setTitle("测试record1111111"); + recordUpdateReq.setChooseContent("{\"priority\":[\"0\"],\"resource\":[]}"); + recordUpdateReq.setDescription("这是一个测试1"); + recordUpdateReq.setExpectStartTime(1635696000000L); + recordUpdateReq.setExpectEndTime(1638374399999L); + + RecordController.editRecord(recordUpdateReq); + MvcResult mvcResultEdit = mockMvc.perform(MockMvcRequestBuilders.post("/api/record/edit") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(recordUpdateReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultEdit); + + + // 测试delete接口 post方法 + RecordDeleteReq recordDeleteReq = new RecordDeleteReq(); + recordDeleteReq.setId(2212L); + RecordController.deleteRecord(recordDeleteReq); + MvcResult mvcResultDelete = mockMvc.perform(MockMvcRequestBuilders.post("/api/record/delete") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(recordDeleteReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultDelete); + + + // 测试clear接口 post方法 + RecordWsClearReq recordWsClearReq = new RecordWsClearReq(2211L, "yimfeng"); + RecordController.clearRecord(recordWsClearReq); + MvcResult mvcResultClear = mockMvc.perform(MockMvcRequestBuilders.post("/api/record/clear") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(recordWsClearReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultClear); + + + // 测试getrecordInfo接口 get方法 + RecordController.getRecordGeneralInfo(911L); + MvcResult mvcResultInfo = mockMvc.perform(MockMvcRequestBuilders.get("/api/record/getRecordInfo") + .accept(MediaType.APPLICATION_JSON).param("id", "911")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultInfo); + + } + +} diff --git a/case-server/src/test/java/com/xiaoju/framework/UploadControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/UploadControllerTests.java new file mode 100644 index 0000000..311659f --- /dev/null +++ b/case-server/src/test/java/com/xiaoju/framework/UploadControllerTests.java @@ -0,0 +1,90 @@ +package com.xiaoju.framework; + +import com.xiaoju.framework.controller.CaseController; +import com.xiaoju.framework.controller.UploadController; +import org.apache.http.entity.ContentType; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultHandlers; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + + +import java.io.File; +import java.io.FileInputStream; + +/** + * Created by didi on 2021/11/19. + */ +public class UploadControllerTests extends CaseServerTest { + @Autowired + private UploadController uploadController; + private CaseController caseController; + + private MockHttpServletRequest request; + private MockHttpServletResponse response; + + private MockMvc mockMvc; + + @Before + public void setup() { + mockMvc = MockMvcBuilders.standaloneSetup(uploadController).build(); + } + + @Test + public void exportTest1() throws Exception { + request = new MockHttpServletRequest(); + request.setServerPort(8094); + request.setCharacterEncoding("utf-8"); + response = new MockHttpServletResponse(); + + // 测试import接口 post方法 + File file = new File("/Users/didi/Desktop/picture.xmind"); + MockMultipartFile multipartFile = new MockMultipartFile( + "file", // 需要对应接口中的MultipartFile file参数的名字 + "picture.xmind", // 文件的名字 + null, //文件类型 + new FileInputStream(file) //文件流 + ); + + uploadController.importXmind(multipartFile, "yimfeng", "-1", 1L, "done测试1", "测试", 1, "123", request); + + + // 测试uploadAttachment接口 post方法 + File picfile = new File("/Users/didi/Desktop/sql.png"); + MockMultipartFile picMultipartFile = new MockMultipartFile( + "file", + "sql.png", + ContentType.APPLICATION_OCTET_STREAM.toString(), //文件类型 + new FileInputStream(picfile) //文件流 + ); + + uploadController.uploadAttachment(picMultipartFile, request); + MvcResult mvcResultUpload = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/file/uploadAttachment") + .file(picMultipartFile)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + + System.out.print(mvcResultUpload); + + + // 测试export接口 get方法 + uploadController.exportXmind(2223l, request, response); + System.out.print(response); + MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/api/file/export") + .accept(MediaType.APPLICATION_JSON).param("id", "2223")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResult); + } +} diff --git a/case-server/src/test/java/com/xiaoju/framework/UserControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/UserControllerTests.java new file mode 100644 index 0000000..dc11052 --- /dev/null +++ b/case-server/src/test/java/com/xiaoju/framework/UserControllerTests.java @@ -0,0 +1,84 @@ +package com.xiaoju.framework; + +import com.alibaba.fastjson.JSONObject; +import com.xiaoju.framework.controller.UserController; +import com.xiaoju.framework.entity.request.auth.UserLoginReq; +import com.xiaoju.framework.entity.request.auth.UserRegisterReq; +import com.xiaoju.framework.service.UserService; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultHandlers; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + + +/** + * Created by yimfeng on 2021/11/22. + */ +public class UserControllerTests extends CaseServerTest { + @Autowired + private UserController userController; + private UserService userService; + + private MockHttpServletRequest request; + private MockHttpServletResponse response; + + private MockMvc mockMvc; + + @Before + public void setup() { + mockMvc = MockMvcBuilders.standaloneSetup(userController).build(); + } + + + @Test + public void exportTest1() throws Exception { + + request = new MockHttpServletRequest(); + request.setCharacterEncoding("utf-8"); + response = new MockHttpServletResponse(); + + + // 测试register接口 post方法 + UserRegisterReq userRegisterReq = new UserRegisterReq(); + + userRegisterReq.setUsername("nimeng5"); + userRegisterReq.setPassword("123456"); + + + MvcResult mvcResultRegister = mockMvc.perform(MockMvcRequestBuilders.post("/api/user/register") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(userRegisterReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + + System.out.print(mvcResultRegister); + + // 测试login接口 post方法 + UserLoginReq userLoginReq = new UserLoginReq(); + userLoginReq.setUsername("nimeng5"); + userLoginReq.setPassword("123456"); + + + MvcResult mvcResultLogin = mockMvc.perform(MockMvcRequestBuilders.post("/api/user/login") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(userLoginReq))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + System.out.print(mvcResultLogin); + + + // 注销注册的用户 + userController.logoff("nimeng5"); + } + +} From 17fbc4a4fe56a5ed467bab73cdd85abec2fbe0a3 Mon Sep 17 00:00:00 2001 From: yimfeng Date: Wed, 8 Dec 2021 17:56:45 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xiaoju/framework/CaseControllerTests.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java index 35f4660..80c0de5 100644 --- a/case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java +++ b/case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java @@ -113,16 +113,6 @@ public void exportTest1() throws Exception { - // 测试detail接口 get方法 没找到该接口 -// caseController.getCaseDetail(2620L); -// MvcResult mvcResultDetail = mockMvc.perform(MockMvcRequestBuilders.get("/api/case/detail") -// .accept(MediaType.APPLICATION_JSON).param("id", "2620")) -// .andExpect(MockMvcResultMatchers.status().isOk()) -// .andDo(MockMvcResultHandlers.print()) -// .andReturn(); -// System.out.print(mvcResultDetail); - - // 测试listCreators接口 get方法 caseController.listCreators(0, 1L); MvcResult mvcResultCreators = mockMvc.perform(MockMvcRequestBuilders.get("/api/case/listCreators") From de7c71eff9420c83d74afcc6cfb9ba85e12b4f47 Mon Sep 17 00:00:00 2001 From: yimfeng Date: Tue, 14 Dec 2021 17:59:58 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/persistent/CaseBackup.java | 4 - .../entity/request/auth/UserLoginReq.java | 18 ---- .../entity/request/auth/UserRegisterReq.java | 18 ---- .../entity/request/cases/CaseCreateReq.java | 80 -------------- .../entity/request/cases/CaseDeleteReq.java | 4 - .../entity/request/cases/CaseEditReq.java | 4 - .../entity/request/cases/CaseQueryReq.java | 100 ------------------ .../entity/request/cases/FileImportReq.java | 2 - .../entity/request/dir/DirDeleteReq.java | 2 +- .../entity/request/record/RecordAddReq.java | 4 - .../request/record/RecordDeleteReq.java | 4 - .../request/record/RecordUpdateReq.java | 4 - .../entity/request/ws/RecordWsClearReq.java | 4 - .../entity/request/ws/WsSaveReq.java | 4 - 14 files changed, 1 insertion(+), 251 deletions(-) diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/persistent/CaseBackup.java b/case-server/src/main/java/com/xiaoju/framework/entity/persistent/CaseBackup.java index 880244d..00249f3 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/persistent/CaseBackup.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/persistent/CaseBackup.java @@ -1,8 +1,6 @@ package com.xiaoju.framework.entity.persistent; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; import java.util.Date; @@ -13,8 +11,6 @@ * @date 2019/11/05 */ @Data -@AllArgsConstructor -@NoArgsConstructor public class CaseBackup { private Long id; private Long caseId; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java index a6de6d3..bc7453d 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java @@ -8,26 +8,8 @@ * Created by didi on 2021/4/22. */ @Data -@AllArgsConstructor -@NoArgsConstructor public class UserLoginReq { private String username; private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } } diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java index 0038154..b3ad922 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java @@ -8,26 +8,8 @@ * Created by didi on 2021/4/22. */ @Data -@AllArgsConstructor -@NoArgsConstructor public class UserRegisterReq { private String username; private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } } diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java index 9becd60..31da8ca 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java @@ -21,86 +21,6 @@ @NoArgsConstructor public class CaseCreateReq implements ParamValidate { - public String getCreator() { - return creator; - } - - public void setCreator(String creator) { - this.creator = creator; - } - - public Long getProductLineId() { - return productLineId; - } - - public void setProductLineId(Long productLineId) { - this.productLineId = productLineId; - } - - public Integer getCaseType() { - return caseType; - } - - public void setCaseType(Integer caseType) { - this.caseType = caseType; - } - - public String getCaseContent() { - return caseContent; - } - - public void setCaseContent(String caseContent) { - this.caseContent = caseContent; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public Integer getChannel() { - return channel; - } - - public void setChannel(Integer channel) { - this.channel = channel; - } - - public String getBizId() { - return bizId; - } - - public void setBizId(String bizId) { - this.bizId = bizId; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getRequirementId() { - return requirementId; - } - - public void setRequirementId(String requirementId) { - this.requirementId = requirementId; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - /** * 必填 创建人邮箱前缀 */ diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseDeleteReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseDeleteReq.java index 04fc23b..b57da4f 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseDeleteReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseDeleteReq.java @@ -1,9 +1,7 @@ package com.xiaoju.framework.entity.request.cases; import com.xiaoju.framework.entity.request.ParamValidate; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; /** * 用例 逻辑删除 @@ -12,8 +10,6 @@ * @date 2020/9/7 */ @Data -@AllArgsConstructor -@NoArgsConstructor public class CaseDeleteReq implements ParamValidate { private Long id; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java index dd43016..1a7d68b 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java @@ -3,9 +3,7 @@ import com.xiaoju.framework.constants.BizConstant; import com.xiaoju.framework.constants.SystemConstant; import com.xiaoju.framework.entity.request.ParamValidate; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; import java.util.Arrays; @@ -17,8 +15,6 @@ * @date 2020/9/4 */ @Data -@AllArgsConstructor -@NoArgsConstructor public class CaseEditReq implements ParamValidate { /** diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseQueryReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseQueryReq.java index ecf563e..1835d4b 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseQueryReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseQueryReq.java @@ -1,8 +1,6 @@ package com.xiaoju.framework.entity.request.cases; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; /** * 用例 筛选与查询 @@ -11,8 +9,6 @@ * @date 2020/8/12 */ @Data -@AllArgsConstructor -@NoArgsConstructor public class CaseQueryReq { private Long id; @@ -52,100 +48,4 @@ public CaseQueryReq(Integer caseType, String title, String creator, String reqId this.pageNum = pageNum; this.pageSize = pageSize; } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Integer getCaseType() { - return caseType; - } - - public void setCaseType(Integer caseType) { - this.caseType = caseType; - } - - public Long getLineId() { - return lineId; - } - - public void setLineId(Long lineId) { - this.lineId = lineId; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getCreator() { - return creator; - } - - public void setCreator(String creator) { - this.creator = creator; - } - - public String getRequirementId() { - return requirementId; - } - - public void setRequirementId(String requirementId) { - this.requirementId = requirementId; - } - - public String getBeginTime() { - return beginTime; - } - - public void setBeginTime(String beginTime) { - this.beginTime = beginTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public Integer getChannel() { - return channel; - } - - public void setChannel(Integer channel) { - this.channel = channel; - } - - public String getBizId() { - return bizId; - } - - public void setBizId(String bizId) { - this.bizId = bizId; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } } diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/FileImportReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/FileImportReq.java index b823e33..126b6f8 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/FileImportReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/FileImportReq.java @@ -3,7 +3,6 @@ import com.xiaoju.framework.entity.request.ParamValidate; import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; @@ -15,7 +14,6 @@ */ @Data @AllArgsConstructor -@NoArgsConstructor public class FileImportReq implements ParamValidate { private MultipartFile file; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirDeleteReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirDeleteReq.java index df4c9a1..6bfb528 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirDeleteReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirDeleteReq.java @@ -14,8 +14,8 @@ * @date 2020/9/11 */ @Data -@AllArgsConstructor @NoArgsConstructor +@AllArgsConstructor public class DirDeleteReq implements ParamValidate { private String parentId; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordAddReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordAddReq.java index de4c258..b9be946 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordAddReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordAddReq.java @@ -1,9 +1,7 @@ package com.xiaoju.framework.entity.request.record; import com.xiaoju.framework.entity.request.ParamValidate; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; /** @@ -13,8 +11,6 @@ * @date 2020/10/27 */ @Data -@AllArgsConstructor -@NoArgsConstructor public class RecordAddReq implements ParamValidate { private Long caseId; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordDeleteReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordDeleteReq.java index 33e4ef4..eb1ae81 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordDeleteReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordDeleteReq.java @@ -1,9 +1,7 @@ package com.xiaoju.framework.entity.request.record; import com.xiaoju.framework.entity.request.ParamValidate; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; /** * 任务 删除 @@ -12,8 +10,6 @@ * @date 2020/10/28 */ @Data -@AllArgsConstructor -@NoArgsConstructor public class RecordDeleteReq implements ParamValidate { private Long id; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordUpdateReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordUpdateReq.java index af31ed3..a0f3e73 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordUpdateReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/record/RecordUpdateReq.java @@ -1,9 +1,7 @@ package com.xiaoju.framework.entity.request.record; import com.xiaoju.framework.entity.request.ParamValidate; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; /** @@ -13,8 +11,6 @@ * @date 2020/10/29 */ @Data -@AllArgsConstructor -@NoArgsConstructor public class RecordUpdateReq implements ParamValidate { private Long id; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java index 89c5167..ddf165e 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java @@ -1,9 +1,7 @@ package com.xiaoju.framework.entity.request.ws; import com.xiaoju.framework.entity.request.ParamValidate; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; /** @@ -13,8 +11,6 @@ * @date 2020/10/29 */ @Data -@AllArgsConstructor -@NoArgsConstructor public class RecordWsClearReq implements ParamValidate { private Long id; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/WsSaveReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/WsSaveReq.java index 9c6b2f0..b236610 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/WsSaveReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/WsSaveReq.java @@ -1,9 +1,7 @@ package com.xiaoju.framework.entity.request.ws; import com.xiaoju.framework.entity.request.ParamValidate; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; import org.springframework.util.StringUtils; /** @@ -13,8 +11,6 @@ * @date 2020/11/25 */ @Data -@AllArgsConstructor -@NoArgsConstructor public class WsSaveReq implements ParamValidate { /** From ed2c41542d32c3a41ad75486f9462ff23b8525ed Mon Sep 17 00:00:00 2001 From: yimfeng Date: Tue, 14 Dec 2021 18:01:49 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/BackupControllerTests.java | 81 ++++++++++++------- .../xiaoju/framework/CaseControllerTests.java | 78 +++++++++++++----- .../xiaoju/framework/DirControllerTests.java | 63 +++++++++------ .../framework/RecordControllerTests.java | 61 ++++++++++---- .../framework/UploadControllerTests.java | 2 + .../xiaoju/framework/UserControllerTests.java | 16 ++-- 6 files changed, 201 insertions(+), 100 deletions(-) diff --git a/case-server/src/test/java/com/xiaoju/framework/BackupControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/BackupControllerTests.java index 9211c1d..93be41a 100644 --- a/case-server/src/test/java/com/xiaoju/framework/BackupControllerTests.java +++ b/case-server/src/test/java/com/xiaoju/framework/BackupControllerTests.java @@ -39,56 +39,75 @@ public void setup() { @Test public void exportTest1() throws Exception { + // 测试add接口 post方法 + CaseBackup caseBackup = new CaseBackup(); + caseBackup.setId(1635L); + caseBackup.setCaseId(2654L); + caseBackup.setCreator("yimfeng"); + caseBackup.setCaseContent("{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"中心主题\"},\"children\":[{\"data\":{\"id\":\"cg9k2vx2cr40\",\"created\":1638929669164,\"text\":\"111\"},\"children\":[]}]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":3,\"right\":1}"); + caseBackup.setTitle("离开自动保存用例"); + caseBackup.setExtra(""); + caseBackup.setGmtCreated(new Date()); + caseBackup.setIsDelete(0); + caseBackup.setRecordContent(""); + + MvcResult mvcResultadd = mockMvc.perform(MockMvcRequestBuilders.post("/api/backup/add") + .contentType(MediaType.APPLICATION_JSON) + .content(JSONObject.toJSONString(caseBackup))) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); + + String contentAdd = mvcResultadd.getResponse().getContentAsString(); + JSONObject jsonAdd = JSONObject.parseObject(contentAdd); + System.out.println("data的内容为 : " + jsonAdd.getString("data")); + // 测试getBackupByCaseId接口 get方法 - backupController.getBackupByCaseId(2481L, "beginTime", "endTime"); MvcResult mvcResultGet = mockMvc.perform(MockMvcRequestBuilders.get("/api/backup/getBackupByCaseId") - .accept(MediaType.APPLICATION_JSON).param("caseId", "2481") + .accept(MediaType.APPLICATION_JSON).param("caseId", "2637") .accept(MediaType.APPLICATION_JSON).param("beginTime", "1635696000000") - .accept(MediaType.APPLICATION_JSON).param("endTime", "1638374399999")) + .accept(MediaType.APPLICATION_JSON).param("endTime", "2638374399999")) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultGet); + + String contentGet = mvcResultGet.getResponse().getContentAsString(); + JSONObject jsonGet = JSONObject.parseObject(contentGet); + System.out.println("data的内容为 : " + jsonGet.getString("data")); // 测试getCaseDiff接口 get方法 - backupController.getCaseDiff(738L, 736L); MvcResult mvcResultDiff = mockMvc.perform(MockMvcRequestBuilders.get("/api/backup/getCaseDiff") - .accept(MediaType.APPLICATION_JSON).param("caseId1", "738") - .accept(MediaType.APPLICATION_JSON).param("caseId2", "736")) + .accept(MediaType.APPLICATION_JSON).param("caseId1", "1606") + .accept(MediaType.APPLICATION_JSON).param("caseId2", "1608")) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultDiff); - // 测试deleteByCaseId接口 get方法 - backupController.deleteByCaseId(738L); - MvcResult mvcResultDelete = mockMvc.perform(MockMvcRequestBuilders.get("/api/backup/deleteByCaseId") - .accept(MediaType.APPLICATION_JSON).param("caseId", "738")) - .andExpect(MockMvcResultMatchers.status().isOk()) - .andDo(MockMvcResultHandlers.print()) - .andReturn(); - System.out.print(mvcResultDelete); + String contentDiff = mvcResultDiff.getResponse().getContentAsString(); + JSONObject jsonDiff = JSONObject.parseObject(contentDiff); + System.out.println("data的内容为 : " + jsonDiff.getString("data")); - // 测试add接口 - CaseBackup caseBackup = new CaseBackup(); - caseBackup.setId(1599L); - caseBackup.setCaseId(2620L); - caseBackup.setCreator("yimfeng"); - caseBackup.setCaseContent("{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"中心主题\"},\"children\":[{\"data\":{\"id\":\"cg9k2vx2cr40\",\"created\":1638929669164,\"text\":\"111\"},\"children\":[]}]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":3,\"right\":1}"); - caseBackup.setTitle("离开自动保存用例"); - caseBackup.setExtra(""); - caseBackup.setGmtCreated(new Date()); - caseBackup.setIsDelete(0); - caseBackup.setRecordContent(""); - MvcResult mvcResultadd = mockMvc.perform(MockMvcRequestBuilders.post("/api/backup/add") - .contentType(MediaType.APPLICATION_JSON) - .content(JSONObject.toJSONString(caseBackup))) + // 测试deleteByCaseId接口 get方法 + MvcResult mvcResultDelete = mockMvc.perform(MockMvcRequestBuilders.get("/api/backup/deleteByCaseId") + .accept(MediaType.APPLICATION_JSON).param("caseId", "2637")) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.println(mvcResultadd); + String contentDelete = mvcResultDelete.getResponse().getContentAsString(); + JSONObject jsonDelete = JSONObject.parseObject(contentDelete); + System.out.println("data的内容为 : " + jsonDelete.getString("data")); } diff --git a/case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java index 80c0de5..9afabed 100644 --- a/case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java +++ b/case-server/src/test/java/com/xiaoju/framework/CaseControllerTests.java @@ -6,8 +6,11 @@ import com.xiaoju.framework.entity.request.cases.CaseDeleteReq; import com.xiaoju.framework.entity.request.cases.CaseEditReq; import com.xiaoju.framework.entity.request.ws.WsSaveReq; +import org.assertj.core.api.Assertions; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.mockito.Mock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; @@ -34,10 +37,7 @@ public void setup() { @Test public void exportTest1() throws Exception { -// // 测试list接口 put方法 - caseController.getCaseList(1, 1L, "-1", "done测试", "yimfeng", "", "111", "222", 1, 10); - - + // 测试list接口 put方法 MvcResult mvcResultList = mockMvc.perform(MockMvcRequestBuilders.get("/api/case/list") .accept(MediaType.APPLICATION_JSON).param("channel", "1") .accept(MediaType.APPLICATION_JSON).param("productLineId", "1") @@ -50,10 +50,16 @@ public void exportTest1() throws Exception { .accept(MediaType.APPLICATION_JSON).param("pageNum", "1") .accept(MediaType.APPLICATION_JSON).param("pageSize", "10")) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultList); + String contentList = mvcResultList.getResponse().getContentAsString(); + JSONObject jsonList = JSONObject.parseObject(contentList); + System.out.println("data中的内容为 : " + jsonList.getString("data")); + // 测试create接口 post方法 CaseCreateReq caseCreateReq = new CaseCreateReq(); @@ -72,14 +78,21 @@ public void exportTest1() throws Exception { .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(caseCreateReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultCreate); + String contentCreate = mvcResultCreate.getResponse().getContentAsString(); + JSONObject jsonCreate = JSONObject.parseObject(contentCreate); + System.out.println("data中的内容为 : " + jsonCreate.getString("data")); + + Long id = Long.valueOf(jsonCreate.getString("data")); // 测试edit接口 post方法 CaseEditReq caseEditReq = new CaseEditReq(); - caseEditReq.setId(2574L); + caseEditReq.setId(id); caseEditReq.setCaseType(0); caseEditReq.setTitle("done测试"); caseEditReq.setModifier("yimfeng"); @@ -89,67 +102,90 @@ public void exportTest1() throws Exception { caseEditReq.setDescription("编辑用例集"); -// caseController.editCase(caseEditReq); MvcResult mvcResultEdit = mockMvc.perform(MockMvcRequestBuilders.post("/api/case/edit") .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(caseEditReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.println(mvcResultEdit); -// + String contentEdit = mvcResultEdit.getResponse().getContentAsString(); + JSONObject jsonEdit = JSONObject.parseObject(contentEdit); + System.out.println("data中的内容为 : " + jsonEdit.getString("data")); + + // 测试delete接口 post方法 CaseDeleteReq caseDeleteReq = new CaseDeleteReq(); - caseDeleteReq.setId(2625L); - caseController.deleteCase(caseDeleteReq); + caseDeleteReq.setId(id); MvcResult mvcResultDelete = this.mockMvc.perform(MockMvcRequestBuilders.post("/api/case/delete") .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(caseDeleteReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.println(mvcResultDelete); + + String contentDelete = mvcResultDelete.getResponse().getContentAsString(); + JSONObject jsonDelete = JSONObject.parseObject(contentDelete); + System.out.println("data中的内容为 : " + jsonDelete.getString("data")); // 测试listCreators接口 get方法 - caseController.listCreators(0, 1L); MvcResult mvcResultCreators = mockMvc.perform(MockMvcRequestBuilders.get("/api/case/listCreators") .accept(MediaType.APPLICATION_JSON).param("caseType", "0") .accept(MediaType.APPLICATION_JSON).param("productLineId", "1")) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultCreators); + + String contentCreators = mvcResultCreators.getResponse().getContentAsString(); + JSONObject jsonCreators = JSONObject.parseObject(contentCreators); + System.out.println("data中的内容为 : " + jsonCreators.getString("data")); // 测试CastInfo接口 get方法 - caseController.getCaseGeneralInfo(2483L); MvcResult mvcResultInfo = mockMvc.perform(MockMvcRequestBuilders.get("/api/case/getCaseInfo") .accept(MediaType.APPLICATION_JSON).param("id", "2483")) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultInfo); + + String contentInfo = mvcResultInfo.getResponse().getContentAsString(); + JSONObject jsonInfo = JSONObject.parseObject(contentInfo); + System.out.println("data中的内容为 : " + jsonInfo.getString("data")); // 测试update接口 post方法 WsSaveReq wsSaveReq = new WsSaveReq(); - wsSaveReq.setId(2494L); + wsSaveReq.setId(id); wsSaveReq.setCaseContent("{\"root\":{\"data\":{\"created\":1562059643204,\"id\":\"bv8nxhi3c800\",\"text\":\"中心主题\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":1}"); wsSaveReq.setModifier("yimfeng"); wsSaveReq.setRecordId(null); - caseController.updateWsCase(wsSaveReq); MvcResult mvcResultUpdate = mockMvc.perform(MockMvcRequestBuilders.post("/api/case/update") .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(wsSaveReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultUpdate); - + String contentUpdate = mvcResultUpdate.getResponse().getContentAsString(); + JSONObject jsonUpdate = JSONObject.parseObject(contentUpdate); + System.out.println("data中的内容为 : " + jsonUpdate.getString("data")); } } diff --git a/case-server/src/test/java/com/xiaoju/framework/DirControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/DirControllerTests.java index ba2f40f..12ac269 100644 --- a/case-server/src/test/java/com/xiaoju/framework/DirControllerTests.java +++ b/case-server/src/test/java/com/xiaoju/framework/DirControllerTests.java @@ -42,30 +42,32 @@ public void exportTest1() throws Exception { .accept(MediaType.APPLICATION_JSON).param("productLineId", "1") .accept(MediaType.APPLICATION_JSON).param("channel", "1")) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultList); + String contentList = mvcResultList.getResponse().getContentAsString(); + JSONObject jsonList = JSONObject.parseObject(contentList); + System.out.println("data中的内容为 : " + jsonList.getString("data")); // 测试add接口, post方法 - DirCreateReq dirCreateReq = new DirCreateReq(); - dirCreateReq.setParentId("root"); - dirCreateReq.setProductLineId(1L); - dirCreateReq.setText("测试节点"); - dirCreateReq.setChannel(1); - + DirCreateReq dirCreateReq = new DirCreateReq("root", 1L, "测试节点", 1); MvcResult mvcResultAdd = mockMvc.perform(MockMvcRequestBuilders.post("/api/dir/add") .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(dirCreateReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - String contentImp = mvcResultAdd.getResponse().getContentAsString(); - System.out.print(contentImp); - - System.out.print(mvcResultAdd); + String contentAdd = mvcResultAdd.getResponse().getContentAsString(); + JSONObject jsonAdd = JSONObject.parseObject(contentAdd); + System.out.println("data中的内容为 : " + jsonAdd.getString("data")); // 通过其他信息获得id @@ -73,37 +75,41 @@ public void exportTest1() throws Exception { System.out.println("id的数据为:" + id); // 测试rename接口, post方法 - DirRenameReq dirRenameReq = new DirRenameReq(); - dirRenameReq.setId(id); - dirRenameReq.setProductLineId(1L); - dirRenameReq.setText("1234567"); - dirRenameReq.setChannel(1); - + DirRenameReq dirRenameReq = new DirRenameReq(id, 1L, "1234567", 1); MvcResult mvcResultRename = mockMvc.perform(MockMvcRequestBuilders.post("/api/dir/rename") .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(dirRenameReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultRename); + + String contentRename = mvcResultRename.getResponse().getContentAsString(); + JSONObject jsonRename = JSONObject.parseObject(contentRename); + System.out.println("data中的内容为 : " + jsonRename.getString("data")); + // 测试delete接口,post方法 - DirDeleteReq dirDeleteReq = new DirDeleteReq(); - dirDeleteReq.setParentId("root"); - dirDeleteReq.setProductLineId(1L); - dirDeleteReq.setDelId(id); - dirDeleteReq.setChannel(1); + DirDeleteReq dirDeleteReq = new DirDeleteReq("root", 1L, id, 1); - MvcResult mvcResultdelete = mockMvc.perform(MockMvcRequestBuilders.post("/api/dir/delete") + MvcResult mvcResultDelete = mockMvc.perform(MockMvcRequestBuilders.post("/api/dir/delete") .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(dirDeleteReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultdelete); + + String contentDelete = mvcResultDelete.getResponse().getContentAsString(); + JSONObject jsonDelete = JSONObject.parseObject(contentDelete); + System.out.println("data中的内容为 : " + jsonDelete.getString("data")); // 测试cardTree接口,get方法 dirController.getDirTree(1L, 1); @@ -111,9 +117,14 @@ public void exportTest1() throws Exception { .accept(MediaType.APPLICATION_JSON).param("productLineId", "1") .accept(MediaType.APPLICATION_JSON).param("channel", "1")) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultDirTree); + String contentDirTree = mvcResultDirTree.getResponse().getContentAsString(); + JSONObject jsonDirTree = JSONObject.parseObject(contentDirTree); + System.out.println("data中的内容为 : " + jsonDirTree.getString("data")); } } \ No newline at end of file diff --git a/case-server/src/test/java/com/xiaoju/framework/RecordControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/RecordControllerTests.java index ba103a5..4493834 100644 --- a/case-server/src/test/java/com/xiaoju/framework/RecordControllerTests.java +++ b/case-server/src/test/java/com/xiaoju/framework/RecordControllerTests.java @@ -1,5 +1,6 @@ package com.xiaoju.framework; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.xiaoju.framework.controller.RecordController; import com.xiaoju.framework.entity.request.record.RecordAddReq; @@ -37,13 +38,18 @@ public void setup() { public void exportTest1() throws Exception { // 测试list接口 get方法 - RecordController.getRecordList(2212L); MvcResult mvcResultList = mockMvc.perform(MockMvcRequestBuilders.get("/api/record/list") .accept(MediaType.APPLICATION_JSON).param("caseId", "2212")) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultList); + + String contentList = mvcResultList.getResponse().getContentAsString(); + JSONObject jsonList = JSONObject.parseObject(contentList); + System.out.println("data中的内容为 : " + jsonList.getString("data")); // 测试create接口 post方法 @@ -56,19 +62,25 @@ public void exportTest1() throws Exception { recordAddReq.setExpectStartTime(1635696000000L); recordAddReq.setExpectEndTime(1638374399999L); - RecordController.createRecord(recordAddReq); MvcResult mvcResultCreate = mockMvc.perform(MockMvcRequestBuilders.post("/api/record/create") .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(recordAddReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) // 查看是否正常update .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultCreate); + + String contentCreate = mvcResultCreate.getResponse().getContentAsString(); + JSONObject jsonCreate = JSONObject.parseObject(contentCreate); + System.out.println("data中的内容为 : " + jsonCreate.getString("data")); + // 测试edit接口 post方法 RecordUpdateReq recordUpdateReq = new RecordUpdateReq(); - recordUpdateReq.setId(911L); + recordUpdateReq.setId(967L); recordUpdateReq.setModifier("yimfeng"); recordUpdateReq.setOwner("yimfeng"); recordUpdateReq.setTitle("测试record1111111"); @@ -77,50 +89,67 @@ public void exportTest1() throws Exception { recordUpdateReq.setExpectStartTime(1635696000000L); recordUpdateReq.setExpectEndTime(1638374399999L); - RecordController.editRecord(recordUpdateReq); MvcResult mvcResultEdit = mockMvc.perform(MockMvcRequestBuilders.post("/api/record/edit") .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(recordUpdateReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultEdit); // 测试delete接口 post方法 RecordDeleteReq recordDeleteReq = new RecordDeleteReq(); - recordDeleteReq.setId(2212L); - RecordController.deleteRecord(recordDeleteReq); + recordDeleteReq.setId(964L); MvcResult mvcResultDelete = mockMvc.perform(MockMvcRequestBuilders.post("/api/record/delete") .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(recordDeleteReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").value("删除成功")) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultDelete); + + String contentDelete = mvcResultDelete.getResponse().getContentAsString(); + JSONObject jsonDelete = JSONObject.parseObject(contentDelete); + System.out.println("data中的内容为 : " + jsonDelete.getString("data")); // 测试clear接口 post方法 - RecordWsClearReq recordWsClearReq = new RecordWsClearReq(2211L, "yimfeng"); - RecordController.clearRecord(recordWsClearReq); + RecordWsClearReq recordWsClearReq = new RecordWsClearReq(); + recordWsClearReq.setId(965L); + recordWsClearReq.setModifier("yimfeng"); MvcResult mvcResultClear = mockMvc.perform(MockMvcRequestBuilders.post("/api/record/clear") .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(recordWsClearReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultClear); + + String contentClear = mvcResultClear.getResponse().getContentAsString(); + JSONObject jsonClear = JSONObject.parseObject(contentClear); + System.out.println("data中的内容为 : " + jsonClear.getString("data")); // 测试getrecordInfo接口 get方法 - RecordController.getRecordGeneralInfo(911L); MvcResult mvcResultInfo = mockMvc.perform(MockMvcRequestBuilders.get("/api/record/getRecordInfo") - .accept(MediaType.APPLICATION_JSON).param("id", "911")) + .accept(MediaType.APPLICATION_JSON).param("id", "966")) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultInfo); + String contentInfo = mvcResultInfo.getResponse().getContentAsString(); + JSONObject jsonInfo = JSONObject.parseObject(contentInfo); + System.out.println("data中的内容为 : " + jsonInfo.getString("data")); } } diff --git a/case-server/src/test/java/com/xiaoju/framework/UploadControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/UploadControllerTests.java index 311659f..699f57f 100644 --- a/case-server/src/test/java/com/xiaoju/framework/UploadControllerTests.java +++ b/case-server/src/test/java/com/xiaoju/framework/UploadControllerTests.java @@ -71,6 +71,8 @@ public void exportTest1() throws Exception { MvcResult mvcResultUpload = mockMvc.perform(MockMvcRequestBuilders.multipart("/api/file/uploadAttachment") .file(picMultipartFile)) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isNotEmpty()) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(2)) .andDo(MockMvcResultHandlers.print()) .andReturn(); diff --git a/case-server/src/test/java/com/xiaoju/framework/UserControllerTests.java b/case-server/src/test/java/com/xiaoju/framework/UserControllerTests.java index dc11052..7fea12b 100644 --- a/case-server/src/test/java/com/xiaoju/framework/UserControllerTests.java +++ b/case-server/src/test/java/com/xiaoju/framework/UserControllerTests.java @@ -49,7 +49,7 @@ public void exportTest1() throws Exception { // 测试register接口 post方法 UserRegisterReq userRegisterReq = new UserRegisterReq(); - userRegisterReq.setUsername("nimeng5"); + userRegisterReq.setUsername("nimeng2"); userRegisterReq.setPassword("123456"); @@ -57,14 +57,15 @@ public void exportTest1() throws Exception { .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(userRegisterReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultRegister); - // 测试login接口 post方法 UserLoginReq userLoginReq = new UserLoginReq(); - userLoginReq.setUsername("nimeng5"); + userLoginReq.setUsername("nimeng2"); userLoginReq.setPassword("123456"); @@ -72,13 +73,16 @@ public void exportTest1() throws Exception { .contentType(MediaType.APPLICATION_JSON) .content(JSONObject.toJSONString(userLoginReq))) .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200")) + .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)) + .andExpect(MockMvcResultMatchers.jsonPath("$.data").isEmpty()) .andDo(MockMvcResultHandlers.print()) .andReturn(); - System.out.print(mvcResultLogin); // 注销注册的用户 - userController.logoff("nimeng5"); + userController.logoff("nimeng2"); + System.out.println("已将注册的用户从数据库中删除"); } } From 8d81722ee7a3b6d0c71e73a7391a5ab7c0967d15 Mon Sep 17 00:00:00 2001 From: yimfeng Date: Wed, 22 Dec 2021 18:14:43 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xiaoju/framework/controller/DirController.java | 1 - .../com/xiaoju/framework/controller/UploadController.java | 1 - .../xiaoju/framework/entity/request/auth/UserLoginReq.java | 2 -- .../framework/entity/request/auth/UserRegisterReq.java | 2 -- .../xiaoju/framework/entity/request/cases/CaseCreateReq.java | 1 - .../xiaoju/framework/entity/request/cases/CaseEditReq.java | 1 + .../xiaoju/framework/entity/request/dir/DirCreateReq.java | 2 +- .../xiaoju/framework/entity/request/dir/DirRenameReq.java | 2 +- .../xiaoju/framework/entity/request/ws/RecordWsClearReq.java | 3 +-- .../com/xiaoju/framework/service/impl/DirServiceImpl.java | 5 ++--- .../com/xiaoju/framework/service/impl/UserServiceImpl.java | 1 - .../resources/com/xiaoju/framework/mapper/UserMapper.xml | 4 ---- 12 files changed, 6 insertions(+), 19 deletions(-) diff --git a/case-server/src/main/java/com/xiaoju/framework/controller/DirController.java b/case-server/src/main/java/com/xiaoju/framework/controller/DirController.java index f40af9d..b056b93 100644 --- a/case-server/src/main/java/com/xiaoju/framework/controller/DirController.java +++ b/case-server/src/main/java/com/xiaoju/framework/controller/DirController.java @@ -117,7 +117,6 @@ public Response getDirCardTree(@RequestParam @NotNull(message = "业务线id @RequestParam @NotNull(message = "渠道为空") Integer channel) { return Response.success(dirService.getDirTree(productLineId, channel)); } - @GetMapping("/getId") public String getId(String parentId, Long productLineId, Integer channel, String text) { return dirService.getId(parentId, productLineId, channel, text); diff --git a/case-server/src/main/java/com/xiaoju/framework/controller/UploadController.java b/case-server/src/main/java/com/xiaoju/framework/controller/UploadController.java index 0158239..6de144e 100644 --- a/case-server/src/main/java/com/xiaoju/framework/controller/UploadController.java +++ b/case-server/src/main/java/com/xiaoju/framework/controller/UploadController.java @@ -69,7 +69,6 @@ public Response importXmind(@RequestParam MultipartFile file, String creat Long productLineId, String title, String description, Integer channel, String requirementId, HttpServletRequest request) { FileImportReq req = new FileImportReq(file, creator, productLineId, title, description, channel, requirementId, bizId); req.validate(); - try { return Response.success(fileService.importXmindFile(req, request, uploadPath)); } catch (CaseServerException e) { diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java index bc7453d..88d2ae3 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserLoginReq.java @@ -1,8 +1,6 @@ package com.xiaoju.framework.entity.request.auth; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; /** * Created by didi on 2021/4/22. diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java index b3ad922..e8e1cfb 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/auth/UserRegisterReq.java @@ -1,8 +1,6 @@ package com.xiaoju.framework.entity.request.auth; -import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; /** * Created by didi on 2021/4/22. diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java index 31da8ca..2bff344 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseCreateReq.java @@ -76,7 +76,6 @@ public class CaseCreateReq implements ParamValidate { */ private String description; - @Override public void validate() { // 复制操作才需要id diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java index 1a7d68b..67196f9 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/cases/CaseEditReq.java @@ -58,6 +58,7 @@ public class CaseEditReq implements ParamValidate { private String description; + @Override public void validate() { if (id == null || id <= 0) { diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirCreateReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirCreateReq.java index c0da94e..75fc277 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirCreateReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirCreateReq.java @@ -13,8 +13,8 @@ * @date 2020/9/11 */ @Data -@AllArgsConstructor @NoArgsConstructor +@AllArgsConstructor public class DirCreateReq implements ParamValidate { /** diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirRenameReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirRenameReq.java index ca94b56..78e7897 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirRenameReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/dir/DirRenameReq.java @@ -15,8 +15,8 @@ * @date 2020/9/11 */ @Data -@AllArgsConstructor @NoArgsConstructor +@AllArgsConstructor public class DirRenameReq implements ParamValidate { private String id; diff --git a/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java b/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java index ddf165e..614a0b7 100644 --- a/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java +++ b/case-server/src/main/java/com/xiaoju/framework/entity/request/ws/RecordWsClearReq.java @@ -1,7 +1,6 @@ package com.xiaoju.framework.entity.request.ws; -import com.xiaoju.framework.entity.request.ParamValidate; -import lombok.Data; +import com.xiaoju.framework.entity.request.ParamValidate;import lombok.Data; import org.springframework.util.StringUtils; /** diff --git a/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java b/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java index 436b1a3..c241470 100644 --- a/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java +++ b/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java @@ -52,7 +52,6 @@ public DirNodeDto addDir(DirCreateReq request) { DirNodeDto newDir = new DirNodeDto(); newDir.setId(UUID.randomUUID().toString().substring(0,8)); newDir.setText(request.getText()); -// newDir.setId(dir.getId() + request.getText()); newDir.setParentId(dir.getId()); children.add(newDir); @@ -100,6 +99,8 @@ public DirNodeDto renameDir(DirRenameReq request) { } + + @Override public DirNodeDto delDir(DirDeleteReq request) { DirNodeDto root = getDirTree(request.getProductLineId(), request.getChannel()); @@ -120,8 +121,6 @@ public DirNodeDto delDir(DirDeleteReq request) { return root; } - - @Override public DirNodeDto getDir(String bizId, DirNodeDto root) { if (root == null) { diff --git a/case-server/src/main/java/com/xiaoju/framework/service/impl/UserServiceImpl.java b/case-server/src/main/java/com/xiaoju/framework/service/impl/UserServiceImpl.java index 6de8c06..5fcd397 100644 --- a/case-server/src/main/java/com/xiaoju/framework/service/impl/UserServiceImpl.java +++ b/case-server/src/main/java/com/xiaoju/framework/service/impl/UserServiceImpl.java @@ -74,7 +74,6 @@ public Integer login(UserLoginReq req, HttpServletRequest request, HttpServletRe //3.将新用户设置到cookie中去 CookieUtils.setCookie(request, response, "username", req.getUsername(), 60 * 60 * 24, null, false); - return null; } diff --git a/case-server/src/main/resources/com/xiaoju/framework/mapper/UserMapper.xml b/case-server/src/main/resources/com/xiaoju/framework/mapper/UserMapper.xml index 5fbf1b0..1976f8e 100644 --- a/case-server/src/main/resources/com/xiaoju/framework/mapper/UserMapper.xml +++ b/case-server/src/main/resources/com/xiaoju/framework/mapper/UserMapper.xml @@ -22,24 +22,20 @@ from user where id = #{id,jdbcType=BIGINT} - - delete from user where id = #{id,jdbcType=BIGINT} - delete from user where username = #{id,jdbcType=VARCHAR} - insert into user (id, username, password, salt, authority_name, is_delete, channel, From 354657725be283f3094b45bd2ed0587131b5c557 Mon Sep 17 00:00:00 2001 From: xiaofeng Date: Thu, 23 Dec 2021 16:46:26 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/copyright/profiles_settings.xml | 3 +++ .idea/junitgenerator-prj-settings.xml | 13 +++++++++++++ .../framework/service/impl/DirServiceImpl.java | 1 - 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 .idea/copyright/profiles_settings.xml create mode 100644 .idea/junitgenerator-prj-settings.xml diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/junitgenerator-prj-settings.xml b/.idea/junitgenerator-prj-settings.xml new file mode 100644 index 0000000..a43fc3d --- /dev/null +++ b/.idea/junitgenerator-prj-settings.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java b/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java index c241470..36b45b9 100644 --- a/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java +++ b/case-server/src/main/java/com/xiaoju/framework/service/impl/DirServiceImpl.java @@ -100,7 +100,6 @@ public DirNodeDto renameDir(DirRenameReq request) { - @Override public DirNodeDto delDir(DirDeleteReq request) { DirNodeDto root = getDirTree(request.getProductLineId(), request.getChannel()); From 10312758f4375e94832a39cfc5199585832136a0 Mon Sep 17 00:00:00 2001 From: xiaofeng Date: Tue, 4 Jan 2022 16:28:19 +0800 Subject: [PATCH 7/9] =?UTF-8?q?bugfix:xmind=E7=89=88=E6=9C=AC=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FileServiceImpl.java | 9 +- .../com/xiaoju/framework/util/TreeUtil.java | 154 ++++++++---------- 2 files changed, 72 insertions(+), 91 deletions(-) diff --git a/case-server/src/main/java/com/xiaoju/framework/service/impl/FileServiceImpl.java b/case-server/src/main/java/com/xiaoju/framework/service/impl/FileServiceImpl.java index 8359c28..96a6309 100644 --- a/case-server/src/main/java/com/xiaoju/framework/service/impl/FileServiceImpl.java +++ b/case-server/src/main/java/com/xiaoju/framework/service/impl/FileServiceImpl.java @@ -306,8 +306,11 @@ public CaseCreateReq buildCaseByXml(FileImportReq request, String fileName, Http JSONArray jsonArray = new JSONArray(); String fileXml = "content.xml"; - String picXml = "attachments"; // 存放图片的文件夹 - String picName = (fileName + picXml).replace("/", File.separator); + String picXml1 = "attachments"; // 存放图片的文件夹1 + String picXml2 = "resources"; // 获得图片的文件夹2 + LOGGER.info("fileName为:" + fileName); + String picName1 = (fileName + picXml1).replace("/", File.separator); + String picName2 = (fileName + picXml2).replace("/", File.separator); fileName = (fileName + fileXml).replace("/", File.separator); File file = new File(fileName); if(!file.exists()) // 判断文件是否存在 @@ -320,7 +323,7 @@ public CaseCreateReq buildCaseByXml(FileImportReq request, String fileName, Http String eleName = childElement.getName(); if(eleName.equalsIgnoreCase("sheet")) { - jsonArray = TreeUtil.importDataByXml(request, childElement, picName, requests, uploadPath); + jsonArray = TreeUtil.importDataByXml(request, childElement, picName1, picName2, requests, uploadPath); } return buildCaseCreateReq(request, jsonArray); } diff --git a/case-server/src/main/java/com/xiaoju/framework/util/TreeUtil.java b/case-server/src/main/java/com/xiaoju/framework/util/TreeUtil.java index a873bac..fdab293 100644 --- a/case-server/src/main/java/com/xiaoju/framework/util/TreeUtil.java +++ b/case-server/src/main/java/com/xiaoju/framework/util/TreeUtil.java @@ -4,36 +4,25 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.xiaoju.framework.constants.enums.ProgressEnum; -import com.xiaoju.framework.constants.enums.StatusCode; -import com.xiaoju.framework.controller.UploadController; -import com.xiaoju.framework.entity.exception.CaseServerException; import com.xiaoju.framework.entity.request.cases.FileImportReq; import com.xiaoju.framework.entity.xmind.*; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringEscapeUtils; -import org.apache.http.HttpResponse; -import org.apache.http.HttpStatus; -import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; import org.dom4j.Document; -import org.dom4j.DocumentHelper; import org.dom4j.Element; -import org.dom4j.Namespace; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.mock.web.MockMultipartFile; import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import java.net.HttpURLConnection; -import java.net.URL; +import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; +import java.awt.image.BufferedImage; import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; import java.text.SimpleDateFormat; import java.util.*; @@ -395,7 +384,6 @@ public static void exportDataToXml(JSONArray children, Element rootTopic, String } public static void importDataByJson(JSONArray children, JSONObject rootTopic, String fileName, HttpServletRequest requests, String uploadPath) throws IOException { - String vaildName = fileName; JSONObject rootObj = new JSONObject(); JSONObject dataObj = new JSONObject(); JSONArray childrenNext = new JSONArray(); @@ -405,6 +393,7 @@ public static void importDataByJson(JSONArray children, JSONObject rootTopic, St if(rootTopic.containsKey("image")){ // 添加imagesize属性 // 需要将图片传到云空间中,然后将返回的链接导入 Map imageSize = new HashMap<>(); + // todo: 此处直接写死的方式存在问题 imageSize.put("width", "400"); imageSize.put("height", "184"); String image = ""; @@ -412,11 +401,11 @@ public static void importDataByJson(JSONArray children, JSONObject rootTopic, St String path = rootTopic.getJSONObject("image").getString("src"); String[] strs = path.split("/"); int len = strs.length; - fileName = fileName + "/"; image = strs[len-1]; // 此时image为图片所在的本地位置 // 将文件传入到temp文件下,因此需要将文件进行转换,将file文件类型转化为MultipartFile类型,然后进行上传 - File file = new File(fileName + image); + File file = new File(fileName + File.separator + image); FileInputStream fileInputStream = new FileInputStream(file); + MultipartFile multipartFile = new MockMultipartFile(file.getName(), file.getName(), ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream); @@ -471,14 +460,14 @@ public static void importDataByJson(JSONArray children, JSONObject rootTopic, St if (rootTopic.containsKey("children") && rootTopic.getJSONObject("children").containsKey("attached")) { JSONArray jsonArray = rootTopic.getJSONObject("children").getJSONArray("attached"); for (int i = 0; i < jsonArray.size(); i++) { - importDataByJson(childrenNext, (JSONObject) jsonArray.get(i), vaildName, requests, uploadPath); + importDataByJson(childrenNext, (JSONObject) jsonArray.get(i), fileName, requests, uploadPath); } } } //导入xml内容 - public static JSONArray importDataByXml(FileImportReq request, Element e, String fileName, HttpServletRequest requests, String uploadPath) throws IOException { + public static JSONArray importDataByXml(FileImportReq request, Element e, String fileName1, String fileName2, HttpServletRequest requests, String uploadPath) throws IOException { JSONArray jsonArray = new JSONArray(); List elementList = e.elements(); if(elementList.size() == 0) @@ -493,7 +482,6 @@ public static JSONArray importDataByXml(FileImportReq request, Element e, String List newList = element1.elements(); Map imageSize = new HashMap<>(); String text = ""; - String image = ""; String picPath = ""; Integer priorityId = 0; String created = element1.attributeValue("timestamp"); @@ -504,51 +492,41 @@ public static JSONArray importDataByXml(FileImportReq request, Element e, String if(element.getName().equalsIgnoreCase("img")){ // 添加imagesize属性 // 需要将图片传到云空间中,然后将返回的链接导入 LOGGER.info("xhtml:img可以使用,其中element中的内容为:" + element); - imageSize.put("width", element.attributeValue("width")); - imageSize.put("height", element.attributeValue("height")); + String path = element.attributeValue("src"); - String[] strs = path.split("/"); - int len = strs.length; - fileName = fileName + "/"; - image = strs[len-1]; // 此时image为图片所在的本地位置 + // 将文件传入到temp文件下,因此需要将文件进行转换,将file文件类型转化为MultipartFile类型,然后进行上传 - File file = new File(fileName + image); - FileInputStream fileInputStream = new FileInputStream(file); - MultipartFile multipartFile = new MockMultipartFile(file.getName(), file.getName(), - ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream); - - // 将MultipartFile文件进行上传 - JSONObject ret = new JSONObject(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/"); - String format = sdf.format(new Date()); - File folder = new File(uploadPath + format);// 文件夹的名字 - if (!folder.isDirectory()) { // 如果文件夹为空,则新建文件夹 - folder.mkdirs(); - } - // 对上传的文件重命名,避免文件重名 - String oldName = multipartFile.getOriginalFilename(); // 获取文件的名字 - String newName = UUID.randomUUID().toString() - + oldName.substring(oldName.lastIndexOf("."), oldName.length()); // 生成新的随机的文件名字 - File newFile = new File(folder, newName); - LOGGER.info("newFile的名字为" + newFile); + File file = null; + File file1 = new File(fileName1 + "/" + path.split("/")[1]); + File file2 = new File(fileName2 + "/" + path.split("/")[1]); + if(file1.exists()) + file = file1; + else + file = file2; + LOGGER.info("file为:" + file); try { - multipartFile.transferTo(newFile); + if (StringUtils.isEmpty(element.attributeValue("width")) || StringUtils.isEmpty(element.attributeValue("height"))) { + BufferedImage sourceImg = ImageIO.read(new FileInputStream(file)); + imageSize.put("width", String.valueOf(sourceImg.getWidth())); + imageSize.put("height", String.valueOf(sourceImg.getHeight())); + } else { + imageSize.put("width", element.attributeValue("width")); + imageSize.put("height", element.attributeValue("height")); + } + + MultipartFile multipartFile = new MockMultipartFile(file.getName(), new FileInputStream(file)); + + String fileUrlPath = FileUtil.fileUpload(uploadPath, multipartFile); + // 返回上传文件的访问路径 // request.getScheme()可获取请求的协议名,request.getServerName()可获取请求的域名,request.getServerPort()可获取请求的端口号 String filePath = requests.getScheme() + "://" + requests.getServerName() - + ":" + requests.getServerPort() + "/" + format + newName; + + ":" + requests.getServerPort() + "/" + fileUrlPath; LOGGER.info("filepath的路径为:" + filePath); picPath = filePath; - JSONArray datas = new JSONArray(); - JSONObject data = new JSONObject(); - data.put("url", filePath); - ret.put("success", 1); - datas.add(data); - ret.put("data", datas); - } catch (IOException err) { - LOGGER.error("上传文件失败, 请重试。", err); - ret.put("success", 0); - ret.put("data", ""); + + } catch (Exception err) { + LOGGER.error("图片上传文件失败, 请重试。", err); } } @@ -567,7 +545,7 @@ else if (element.getName().equalsIgnoreCase("title")) { { if(childEle.getName().equalsIgnoreCase("topics")) { - JSONArray jsonArray1 = importDataByXml(request, childEle, fileName, requests, uploadPath); + JSONArray jsonArray1 = importDataByXml(request, childEle, fileName1, fileName2, requests, uploadPath); if(jsonArray1.size()>0){ childrenNext.addAll(jsonArray1); } @@ -595,22 +573,22 @@ else if (element.getName().equalsIgnoreCase("title")) { } - //根据xml文件获取优先级 - private static Integer getPriorityByElement(Element element) - { - Integer priorityId = 0; - Map priorityIds = getAllPriority(); - List markers = element.elements(); - if (markers != null && markers.size() > 0) { - for (Element mark : markers) { - String markId = mark.attributeValue("marker-id"); - if (priorityIds.containsKey(markId)) { - priorityId = priorityIds.get(markId); - } - } - } - return priorityId; - } + //根据xml文件获取优先级 + private static Integer getPriorityByElement(Element element) + { + Integer priorityId = 0; + Map priorityIds = getAllPriority(); + List markers = element.elements(); + if (markers != null && markers.size() > 0) { + for (Element mark : markers) { + String markId = mark.attributeValue("marker-id"); + if (priorityIds.containsKey(markId)) { + priorityId = priorityIds.get(markId); + } + } + } + return priorityId; + } //根据content.json文件获取优先级 private static Integer getPriorityByJsonArray(JSONArray markers) @@ -654,17 +632,17 @@ private static String getPriorityByJson(JSONObject jsonObject) } //获取所有优先级 - private static Map getAllPriority(){ - Map priorityIds = new HashMap<>(); - priorityIds.put("priority-1", 1); - priorityIds.put("priority-2", 2); - priorityIds.put("priority-3", 3); - priorityIds.put("priority-4", 3); - priorityIds.put("priority-5", 3); - priorityIds.put("priority-6", 3); - priorityIds.put("priority-7", 3); - priorityIds.put("priority-8", 3); - priorityIds.put("priority-9", 3); - return priorityIds; - } + private static Map getAllPriority(){ + Map priorityIds = new HashMap<>(); + priorityIds.put("priority-1", 1); + priorityIds.put("priority-2", 2); + priorityIds.put("priority-3", 3); + priorityIds.put("priority-4", 3); + priorityIds.put("priority-5", 3); + priorityIds.put("priority-6", 3); + priorityIds.put("priority-7", 3); + priorityIds.put("priority-8", 3); + priorityIds.put("priority-9", 3); + return priorityIds; + } } From 87dc95be810dbcc1c7c9f4997b94ef2ecb2198cd Mon Sep 17 00:00:00 2001 From: yimfeng Date: Thu, 20 Jan 2022 19:20:07 +0800 Subject: [PATCH 8/9] =?UTF-8?q?websocket=E8=87=AA=E5=8A=A8=E5=8C=96?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xiaoju/framework/CaseEditTest.java | 332 ++++++++++++++++++ 1 file changed, 332 insertions(+) create mode 100644 case-server/src/test/java/com/xiaoju/framework/CaseEditTest.java diff --git a/case-server/src/test/java/com/xiaoju/framework/CaseEditTest.java b/case-server/src/test/java/com/xiaoju/framework/CaseEditTest.java new file mode 100644 index 0000000..9c9f899 --- /dev/null +++ b/case-server/src/test/java/com/xiaoju/framework/CaseEditTest.java @@ -0,0 +1,332 @@ +package com.xiaoju.framework; + +import com.alibaba.fastjson.JSONObject; +import com.xiaoju.framework.controller.CaseController; +import com.xiaoju.framework.entity.request.ws.WsSaveReq; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultHandlers; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + +import javax.websocket.ClientEndpoint; +import javax.websocket.ContainerProvider; +import javax.websocket.Session; +import javax.websocket.WebSocketContainer; +import java.net.URI; +import java.util.Queue; +import java.util.concurrent.TimeUnit; + +/** + * Created by didi on 2021/11/22. + */ +@ClientEndpoint +public class CaseEditTest extends CaseServerTest { + private final String url = "ws://127.0.0.1:8094/api/case/2237/undefined/0/yimfeng"; + @Autowired + private CaseController caseController; + private MockMvc mockMvc; + + @Before + public void setup() { + mockMvc = MockMvcBuilders.standaloneSetup(caseController).build(); + } + + @Test + public void PingPongTest() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try { + do { + session.getBasicRemote().sendText("0pong pong pong"); // 发送ping信号 + Thread.sleep(10000); + } while(true) ; + } catch (Exception e) { + e.printStackTrace(); + } + } + + // 编辑测试.测试场景包括(新增节点|删除节点|编辑内容|添加备注|添加图片|添加优先级|添加tag|添加link|undo|redo) + // 所有编辑操作成对出现.确保内容恢复 + + // 新增节点 + @Test + public void addMessage() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try{ + // 添加数据 + String caseContent1 = "1{\"case\": {\"root\": {\"data\": {\"id\": \"bv8nxhi3c800\",\"created\": 1562059643204,\"text\": \"websocket\"},\"children\": [{\"data\": {\"id\": \"ch3l66s9zlc0\",\"created\": 1641979547721,\"text\": \"分支主题\"},\"children\": []}]},\"template\": \"default\",\"theme\": \"fresh-blue\",\"version\": \"1.4.43\",\"base\": 2,\"right\": 1},\"patch\": [[{\"op\": \"add\",\"path\": \"/root/children/0\",\"value\": {\"data\": {\"id\": \"ch3l66s9zlc0\",\"created\": 1641979547721,\"text\": \"分支主题\"},\"children\": []}}]]}"; + session.getBasicRemote().sendText(caseContent1); // 新增节点分为两步,首先创建一个分支主题 + Thread.sleep(1000); + String caseContent2 = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"websocket\"},\"children\":[{\"data\":{\"id\":\"ch3lialqzkg0\",\"created\":1641980496404,\"text\":\"新增节点\"},\"children\":[]}]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":3,\"right\":1},\"patch\":[[{\"op\":\"replace\",\"path\":\"/root/children/0/data/text\",\"value\":\"新增节点\"}]]}"; + session.getBasicRemote().sendText(caseContent2); // 修改分支主题的数据 + Thread.sleep(5000); + session.close(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + + // 删除节点 + @Test + public void deleteMessage() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try{ + String caseContent = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"websocket\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":4,\"right\":1},\"patch\":[[{\"op\":\"remove\",\"path\":\"/root/children/0\"}]]}"; // 将新增节点删除 + session.getBasicRemote().sendText(caseContent); + Thread.sleep(10000); + session.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + // 编辑内容 + @Test + public void editMessage() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try{ + String caseContent = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":5,\"right\":1},\"patch\":[[{\"op\":\"replace\",\"path\":\"/root/data/text\",\"value\":\"case\"}]]}"; // 将websocket修改为case + session.getBasicRemote().sendText(caseContent); + Thread.sleep(10000); + session.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + // 添加备注 + @Test + public void addRemarks() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try{ + String caseContent1 = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\",\"note\":\"# test\\n\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":6,\"right\":1},\"patch\":[[{\"op\":\"add\",\"path\":\"/root/data/note\",\"value\":\"# test\\n\"}]]}"; + session.getBasicRemote().sendText(caseContent1); + Thread.sleep(5000); + String caseContent2 = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\",\"note\":\"# test\\n1111\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":10,\"right\":1},\"patch\":[[{\"op\":\"replace\",\"path\":\"/root/data/note\",\"value\":\"# test\\n1111\"}]]}"; + session.getBasicRemote().sendText(caseContent2); + Thread.sleep(10000); + session.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + // 添加图片 + @Test + public void addPicture() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try{ + String caseContent = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\",\"note\":\"# test\\n1111\",\"image\":\"http://localhost:8094/2022/01/13/1511cca7-b9b0-4a54-b99e-7fe45a906dc5.png\",\"imageSize\":{\"width\":200,\"height\":142}},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":7,\"right\":1},\"patch\":[[{\"op\":\"add\",\"path\":\"/root/data/image\",\"value\":\"http://localhost:8094/2022/01/13/1511cca7-b9b0-4a54-b99e-7fe45a906dc5.png\"},{\"op\":\"add\",\"path\":\"/root/data/imageSize\",\"value\":{\"width\":200,\"height\":142}}]]}"; + session.getBasicRemote().sendText(caseContent); + Thread.sleep(5000); + session.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + // 添加优先级 + @Test + public void addPriority() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try{ + String caseContent = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\",\"note\":\"# test\\n1111\",\"image\":\"http://localhost:8094/2022/01/13/1511cca7-b9b0-4a54-b99e-7fe45a906dc5.png\",\"imageSize\":{\"width\":200,\"height\":142},\"priority\":1},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":8,\"right\":1},\"patch\":[[{\"op\":\"replace\",\"path\":\"/root/data/priority\",\"value\":1}]]}"; + session.getBasicRemote().sendText(caseContent); + Thread.sleep(5000); + session.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + + // 添加标签 + @Test + public void addTags() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try{ + String caseContent = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\",\"note\":\"# test\\n1111\",\"image\":\"http://localhost:8094/2022/01/13/1511cca7-b9b0-4a54-b99e-7fe45a906dc5.png\",\"imageSize\":{\"width\":200,\"height\":142},\"priority\":1,\"resource\":[\"前置条件\"]},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":9,\"right\":1},\"patch\":[[{\"op\":\"add\",\"path\":\"/root/data/resource\",\"value\":[\"前置条件\"]}]]}"; + session.getBasicRemote().sendText(caseContent); + Thread.sleep(5000); + session.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // 添加link + @Test + public void addLink() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try{ + String caseContent = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\",\"note\":\"# test\\n1111\",\"image\":\"http://localhost:8094/2022/01/13/1511cca7-b9b0-4a54-b99e-7fe45a906dc5.png\",\"imageSize\":{\"width\":200,\"height\":142},\"priority\":1,\"resource\":[\"前置条件\"],\"hyperlink\":\"www.baidu.com\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":10,\"right\":1},\"patch\":[[{\"op\":\"add\",\"path\":\"/root/data/hyperlink\",\"value\":\"www.baidu.com\"}]]}"; + session.getBasicRemote().sendText(caseContent); + Thread.sleep(10000); + session.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // redo操作 + @Test + public void redo() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try{ + String caseContent = "1redo"; + session.getBasicRemote().sendText(caseContent); + Thread.sleep(10000); + session.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // undo操作 + @Test + public void undo() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try{ + String caseContent1 = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":5,\"right\":1},\"patch\":[[{\"op\":\"replace\",\"path\":\"/root/data/text\",\"value\":\"case\"}]]}"; // 将websocket修改为case + session.getBasicRemote().sendText(caseContent1); // 发送删除消息 + String caseContent2 = "1undo"; + Thread.sleep(5000); + session.getBasicRemote().sendText(caseContent2); // 发送undo消息 + Thread.sleep(10000); + session.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + + // 控制测试.测试场景包括(lock) + @Test + public void CaseControllTest() { + Session session = null; + try { + WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + URI uri = URI.create(url); + session = container.connectToServer(this, uri); + } catch (Exception e) { + e.printStackTrace(); + } + + try{ + String caseContent = "2lock"; + session.getBasicRemote().sendText(caseContent); + Thread.sleep(10000); + session.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} From 6b962315832454a1dd965fc3cfa94847df0aa08a Mon Sep 17 00:00:00 2001 From: yimfeng Date: Fri, 21 Jan 2022 10:55:24 +0800 Subject: [PATCH 9/9] =?UTF-8?q?websocket=E8=87=AA=E5=8A=A8=E5=8C=96?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xiaoju/framework/CaseEditTest.java | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/case-server/src/test/java/com/xiaoju/framework/CaseEditTest.java b/case-server/src/test/java/com/xiaoju/framework/CaseEditTest.java index 9c9f899..fce683d 100644 --- a/case-server/src/test/java/com/xiaoju/framework/CaseEditTest.java +++ b/case-server/src/test/java/com/xiaoju/framework/CaseEditTest.java @@ -52,8 +52,8 @@ public void PingPongTest() { try { do { - session.getBasicRemote().sendText("0pong pong pong"); // 发送ping信号 - Thread.sleep(10000); + session.getBasicRemote().sendText("0pong pong pong"); // 发送pong信号 + Thread.sleep(5000); } while(true) ; } catch (Exception e) { e.printStackTrace(); @@ -80,7 +80,7 @@ public void addMessage() { // 添加数据 String caseContent1 = "1{\"case\": {\"root\": {\"data\": {\"id\": \"bv8nxhi3c800\",\"created\": 1562059643204,\"text\": \"websocket\"},\"children\": [{\"data\": {\"id\": \"ch3l66s9zlc0\",\"created\": 1641979547721,\"text\": \"分支主题\"},\"children\": []}]},\"template\": \"default\",\"theme\": \"fresh-blue\",\"version\": \"1.4.43\",\"base\": 2,\"right\": 1},\"patch\": [[{\"op\": \"add\",\"path\": \"/root/children/0\",\"value\": {\"data\": {\"id\": \"ch3l66s9zlc0\",\"created\": 1641979547721,\"text\": \"分支主题\"},\"children\": []}}]]}"; session.getBasicRemote().sendText(caseContent1); // 新增节点分为两步,首先创建一个分支主题 - Thread.sleep(1000); + Thread.sleep(5000); String caseContent2 = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"websocket\"},\"children\":[{\"data\":{\"id\":\"ch3lialqzkg0\",\"created\":1641980496404,\"text\":\"新增节点\"},\"children\":[]}]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":3,\"right\":1},\"patch\":[[{\"op\":\"replace\",\"path\":\"/root/children/0/data/text\",\"value\":\"新增节点\"}]]}"; session.getBasicRemote().sendText(caseContent2); // 修改分支主题的数据 Thread.sleep(5000); @@ -108,7 +108,7 @@ public void deleteMessage() { try{ String caseContent = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"websocket\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":4,\"right\":1},\"patch\":[[{\"op\":\"remove\",\"path\":\"/root/children/0\"}]]}"; // 将新增节点删除 session.getBasicRemote().sendText(caseContent); - Thread.sleep(10000); + Thread.sleep(5000); session.close(); } catch (Exception e) { e.printStackTrace(); @@ -132,7 +132,7 @@ public void editMessage() { try{ String caseContent = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":5,\"right\":1},\"patch\":[[{\"op\":\"replace\",\"path\":\"/root/data/text\",\"value\":\"case\"}]]}"; // 将websocket修改为case session.getBasicRemote().sendText(caseContent); - Thread.sleep(10000); + Thread.sleep(5000); session.close(); } catch (Exception e) { e.printStackTrace(); @@ -158,7 +158,7 @@ public void addRemarks() { Thread.sleep(5000); String caseContent2 = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\",\"note\":\"# test\\n1111\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":10,\"right\":1},\"patch\":[[{\"op\":\"replace\",\"path\":\"/root/data/note\",\"value\":\"# test\\n1111\"}]]}"; session.getBasicRemote().sendText(caseContent2); - Thread.sleep(10000); + Thread.sleep(5000); session.close(); } catch (Exception e) { e.printStackTrace(); @@ -252,16 +252,16 @@ public void addLink() { try{ String caseContent = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\",\"note\":\"# test\\n1111\",\"image\":\"http://localhost:8094/2022/01/13/1511cca7-b9b0-4a54-b99e-7fe45a906dc5.png\",\"imageSize\":{\"width\":200,\"height\":142},\"priority\":1,\"resource\":[\"前置条件\"],\"hyperlink\":\"www.baidu.com\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":10,\"right\":1},\"patch\":[[{\"op\":\"add\",\"path\":\"/root/data/hyperlink\",\"value\":\"www.baidu.com\"}]]}"; session.getBasicRemote().sendText(caseContent); - Thread.sleep(10000); + Thread.sleep(5000); session.close(); } catch (Exception e) { e.printStackTrace(); } } - // redo操作 + // undo操作 @Test - public void redo() { + public void undo() { Session session = null; try { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); @@ -272,18 +272,22 @@ public void redo() { } try{ - String caseContent = "1redo"; - session.getBasicRemote().sendText(caseContent); - Thread.sleep(10000); + String caseContent1 = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":5,\"right\":1},\"patch\":[[{\"op\":\"replace\",\"path\":\"/root/data/text\",\"value\":\"case\"}]]}"; // 将websocket修改为case + session.getBasicRemote().sendText(caseContent1); // 发送删除消息 + String caseContent2 = "1undo"; + Thread.sleep(5000); + session.getBasicRemote().sendText(caseContent2); // 发送undo消息 + Thread.sleep(5000); session.close(); } catch (Exception e) { e.printStackTrace(); } } - // undo操作 + + // redo操作 @Test - public void undo() { + public void redo() { Session session = null; try { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); @@ -296,10 +300,13 @@ public void undo() { try{ String caseContent1 = "1{\"case\":{\"root\":{\"data\":{\"id\":\"bv8nxhi3c800\",\"created\":1562059643204,\"text\":\"case\"},\"children\":[]},\"template\":\"default\",\"theme\":\"fresh-blue\",\"version\":\"1.4.43\",\"base\":5,\"right\":1},\"patch\":[[{\"op\":\"replace\",\"path\":\"/root/data/text\",\"value\":\"case\"}]]}"; // 将websocket修改为case session.getBasicRemote().sendText(caseContent1); // 发送删除消息 - String caseContent2 = "1undo"; Thread.sleep(5000); + String caseContent2 = "1undo"; session.getBasicRemote().sendText(caseContent2); // 发送undo消息 - Thread.sleep(10000); + Thread.sleep(5000); + String caseContent3 = "1redo"; + session.getBasicRemote().sendText(caseContent3); // 发送redo消息 + Thread.sleep(5000); session.close(); } catch (Exception e) { e.printStackTrace(); @@ -323,7 +330,7 @@ public void CaseControllTest() { try{ String caseContent = "2lock"; session.getBasicRemote().sendText(caseContent); - Thread.sleep(10000); + Thread.sleep(5000); session.close(); } catch (Exception e) { e.printStackTrace();