[ Server ] [ Project ] - 增加ProjectInfo条件查询的代码
This commit is contained in:
@@ -0,0 +1,26 @@
|
|||||||
|
package io.wdd.server.beans.request;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.SuperBuilder;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@SuperBuilder(toBuilder = true)
|
||||||
|
@ApiModel("项目 - 查询项目的实体类")
|
||||||
|
public class ProjectQueryEntity {
|
||||||
|
|
||||||
|
/*分页相关*/
|
||||||
|
Integer pageNumber;
|
||||||
|
|
||||||
|
Integer pageSize;
|
||||||
|
|
||||||
|
/*条件查询*/
|
||||||
|
String projectName;
|
||||||
|
|
||||||
|
String projectProvince;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -12,7 +12,7 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@ApiModel("前端请求 Server模块 的请求查询体")
|
@ApiModel("Server - 服务器查询的实体类")
|
||||||
@SuperBuilder(toBuilder = true)
|
@SuperBuilder(toBuilder = true)
|
||||||
public class ServerQueryEntity {
|
public class ServerQueryEntity {
|
||||||
|
|
||||||
@@ -28,5 +28,4 @@ public class ServerQueryEntity {
|
|||||||
|
|
||||||
String serverLocation;
|
String serverLocation;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
package io.wdd.server.controller;
|
package io.wdd.server.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
import io.wdd.common.response.R;
|
import io.wdd.common.response.R;
|
||||||
import io.wdd.server.beans.po.ProjectInfoPO;
|
import io.wdd.server.beans.po.ProjectInfoPO;
|
||||||
|
import io.wdd.server.beans.request.ProjectQueryEntity;
|
||||||
import io.wdd.server.beans.vo.ProjectInfoVO;
|
import io.wdd.server.beans.vo.ProjectInfoVO;
|
||||||
import io.wdd.server.coreService.CoreProjectService;
|
import io.wdd.server.coreService.CoreProjectService;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -27,6 +30,17 @@ public class ProjectController {
|
|||||||
return R.ok(projectService.projectGetAll());
|
return R.ok(projectService.projectGetAll());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/one")
|
||||||
|
@ApiOperation("项目- 根据项目名称模糊查询")
|
||||||
|
public R<Page<ProjectInfoPO>> projectQueryOne(
|
||||||
|
@Validated @RequestBody ProjectQueryEntity projectQueryEntity
|
||||||
|
) {
|
||||||
|
|
||||||
|
Page<ProjectInfoPO> poPage = projectService.projectQueryByEntity(projectQueryEntity);
|
||||||
|
|
||||||
|
return R.ok(poPage);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@ApiOperation("项目-创建一个项目")
|
@ApiOperation("项目-创建一个项目")
|
||||||
public R<String> projectCreate(
|
public R<String> projectCreate(
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package io.wdd.server.coreService;
|
package io.wdd.server.coreService;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.wdd.server.beans.po.ProjectInfoPO;
|
import io.wdd.server.beans.po.ProjectInfoPO;
|
||||||
|
import io.wdd.server.beans.request.ProjectQueryEntity;
|
||||||
import io.wdd.server.beans.vo.ProjectInfoVO;
|
import io.wdd.server.beans.vo.ProjectInfoVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -10,6 +12,8 @@ public interface CoreProjectService {
|
|||||||
// 获取所有的角色
|
// 获取所有的角色
|
||||||
List<ProjectInfoPO> projectGetAll();
|
List<ProjectInfoPO> projectGetAll();
|
||||||
|
|
||||||
|
Page<ProjectInfoPO> projectQueryByEntity(ProjectQueryEntity projectQueryEntity);
|
||||||
|
|
||||||
boolean projectCreate(ProjectInfoVO projectInfoVO);
|
boolean projectCreate(ProjectInfoVO projectInfoVO);
|
||||||
|
|
||||||
boolean projectUpdate(ProjectInfoPO projectInfoPO);
|
boolean projectUpdate(ProjectInfoPO projectInfoPO);
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package io.wdd.server.coreService.impl;
|
package io.wdd.server.coreService.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.wdd.server.beans.mapper.ProjectInfoDTOMapper;
|
import io.wdd.server.beans.mapper.ProjectInfoDTOMapper;
|
||||||
import io.wdd.server.beans.po.ProjectInfoPO;
|
import io.wdd.server.beans.po.ProjectInfoPO;
|
||||||
|
import io.wdd.server.beans.request.ProjectQueryEntity;
|
||||||
import io.wdd.server.beans.vo.ProjectInfoVO;
|
import io.wdd.server.beans.vo.ProjectInfoVO;
|
||||||
import io.wdd.server.coreService.CoreProjectService;
|
import io.wdd.server.coreService.CoreProjectService;
|
||||||
import io.wdd.server.service.ProjectInfoService;
|
import io.wdd.server.service.ProjectInfoService;
|
||||||
@@ -25,6 +28,40 @@ public class CoreProjectServiceImpl implements CoreProjectService {
|
|||||||
return projectInfoService.list();
|
return projectInfoService.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<ProjectInfoPO> projectQueryByEntity(ProjectQueryEntity projectQueryEntity) {
|
||||||
|
|
||||||
|
if (projectQueryEntity == null || projectQueryEntity.getProjectName() == null || projectQueryEntity.getProjectProvince() == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (projectQueryEntity.getPageNumber() == null || projectQueryEntity.getPageSize() == null) {
|
||||||
|
projectQueryEntity.setPageNumber(1);
|
||||||
|
projectQueryEntity.setPageSize(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
Page<ProjectInfoPO> poPage = new Page<>(
|
||||||
|
projectQueryEntity.getPageNumber(),
|
||||||
|
projectQueryEntity.getPageSize()
|
||||||
|
);
|
||||||
|
|
||||||
|
new LambdaQueryChainWrapper<ProjectInfoPO>(projectInfoService.getBaseMapper())
|
||||||
|
.likeLeft(
|
||||||
|
StringUtils.isNotBlank(projectQueryEntity.getProjectName()),
|
||||||
|
ProjectInfoPO::getProjectName,
|
||||||
|
projectQueryEntity.getProjectName()
|
||||||
|
)
|
||||||
|
.likeLeft(
|
||||||
|
StringUtils.isNotBlank(projectQueryEntity.getProjectProvince()),
|
||||||
|
ProjectInfoPO::getProjectProvince,
|
||||||
|
projectQueryEntity.getProjectProvince()
|
||||||
|
)
|
||||||
|
.page(poPage);
|
||||||
|
|
||||||
|
|
||||||
|
return poPage;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean projectCreate(ProjectInfoVO projectInfoVO) {
|
public boolean projectCreate(ProjectInfoVO projectInfoVO) {
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package io.wdd.server.controller;
|
package io.wdd.server.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.wdd.common.response.R;
|
import io.wdd.common.response.R;
|
||||||
|
import io.wdd.common.response.ResultStat;
|
||||||
import io.wdd.server.beans.po.ProjectInfoPO;
|
import io.wdd.server.beans.po.ProjectInfoPO;
|
||||||
|
import io.wdd.server.beans.request.ProjectQueryEntity;
|
||||||
import io.wdd.server.beans.vo.ProjectInfoVO;
|
import io.wdd.server.beans.vo.ProjectInfoVO;
|
||||||
import net.datafaker.Faker;
|
import net.datafaker.Faker;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@@ -10,8 +13,7 @@ import org.springframework.boot.test.context.SpringBootTest;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
||||||
|
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
public class ProjectInfoTest {
|
public class ProjectInfoTest {
|
||||||
@@ -28,6 +30,113 @@ public class ProjectInfoTest {
|
|||||||
assertNotNull(result);
|
assertNotNull(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_valid_input_values_for_mandatory_fields_only() {
|
||||||
|
// Arrange
|
||||||
|
ProjectQueryEntity projectQueryEntity = new ProjectQueryEntity();
|
||||||
|
projectQueryEntity.setPageNumber(1);
|
||||||
|
projectQueryEntity.setPageSize(10);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
R<Page<ProjectInfoPO>> result = projectController.projectQueryOne(projectQueryEntity);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
assertNotNull(result);
|
||||||
|
assertEquals(
|
||||||
|
ResultStat.SUCCESS.getCode(),
|
||||||
|
result.getCode()
|
||||||
|
);
|
||||||
|
assertNotNull(result.getData());
|
||||||
|
assertEquals(
|
||||||
|
1,
|
||||||
|
result
|
||||||
|
.getData()
|
||||||
|
.getCurrent()
|
||||||
|
);
|
||||||
|
assertEquals(
|
||||||
|
10,
|
||||||
|
result
|
||||||
|
.getData()
|
||||||
|
.getSize()
|
||||||
|
);
|
||||||
|
assertNull(result
|
||||||
|
.getData()
|
||||||
|
.getRecords()
|
||||||
|
.get(0)
|
||||||
|
.getProjectName());
|
||||||
|
assertNull(result
|
||||||
|
.getData()
|
||||||
|
.getRecords()
|
||||||
|
.get(0)
|
||||||
|
.getProjectProvince());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_empty_input_values() {
|
||||||
|
// Arrange
|
||||||
|
ProjectQueryEntity projectQueryEntity = new ProjectQueryEntity();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
R<Page<ProjectInfoPO>> result = projectController.projectQueryOne(projectQueryEntity);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
assertNotNull(result);
|
||||||
|
assertEquals(
|
||||||
|
ResultStat.SUCCESS.getCode(),
|
||||||
|
result.getCode()
|
||||||
|
);
|
||||||
|
assertNull(result.getData());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_valid_input_values_for_all_fields() {
|
||||||
|
// Arrange
|
||||||
|
ProjectQueryEntity projectQueryEntity = new ProjectQueryEntity();
|
||||||
|
projectQueryEntity.setPageNumber(1);
|
||||||
|
projectQueryEntity.setPageSize(10);
|
||||||
|
projectQueryEntity.setProjectName("Test Project");
|
||||||
|
projectQueryEntity.setProjectProvince("Test Province");
|
||||||
|
|
||||||
|
// Act
|
||||||
|
R<Page<ProjectInfoPO>> result = projectController.projectQueryOne(projectQueryEntity);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
assertNotNull(result);
|
||||||
|
assertEquals(
|
||||||
|
ResultStat.SUCCESS.getCode(),
|
||||||
|
result.getCode()
|
||||||
|
);
|
||||||
|
assertNotNull(result.getData());
|
||||||
|
assertEquals(
|
||||||
|
1,
|
||||||
|
result
|
||||||
|
.getData()
|
||||||
|
.getCurrent()
|
||||||
|
);
|
||||||
|
assertEquals(
|
||||||
|
10,
|
||||||
|
result
|
||||||
|
.getData()
|
||||||
|
.getSize()
|
||||||
|
);
|
||||||
|
assertEquals(
|
||||||
|
"Test Project",
|
||||||
|
result
|
||||||
|
.getData()
|
||||||
|
.getRecords()
|
||||||
|
.get(0)
|
||||||
|
.getProjectName()
|
||||||
|
);
|
||||||
|
assertEquals(
|
||||||
|
"Test Province",
|
||||||
|
result
|
||||||
|
.getData()
|
||||||
|
.getRecords()
|
||||||
|
.get(0)
|
||||||
|
.getProjectProvince()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test_projectCreate_returnsNonNullObjectWithExpectedMessage() {
|
public void test_projectCreate_returnsNonNullObjectWithExpectedMessage() {
|
||||||
ProjectInfoVO projectInfoVO = new ProjectInfoVO();
|
ProjectInfoVO projectInfoVO = new ProjectInfoVO();
|
||||||
@@ -40,6 +149,28 @@ public class ProjectInfoTest {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_projectCreate_createWithRealData() {
|
||||||
|
ProjectInfoVO projectInfoVO = new ProjectInfoVO();
|
||||||
|
|
||||||
|
projectInfoVO.setProjectName("Test Project");
|
||||||
|
projectInfoVO.setProjectProvince("Test Province");
|
||||||
|
projectInfoVO.setProjectNamespace(fakeInstance.examplify("dasdcz"));
|
||||||
|
projectInfoVO.setDeployNetEnv(fakeInstance
|
||||||
|
.random()
|
||||||
|
.nextInt(3));
|
||||||
|
projectInfoVO.setDeployHardwareEnv(fakeInstance
|
||||||
|
.animal()
|
||||||
|
.name());
|
||||||
|
// Set projectInfoVO properties
|
||||||
|
R<String> result = projectController.projectCreate(projectInfoVO);
|
||||||
|
assertNotNull(result);
|
||||||
|
assertEquals(
|
||||||
|
"创建项目成功!",
|
||||||
|
result.getData()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test_projectCreate_createWithFakeData() {
|
public void test_projectCreate_createWithFakeData() {
|
||||||
ProjectInfoVO projectInfoVO = new ProjectInfoVO();
|
ProjectInfoVO projectInfoVO = new ProjectInfoVO();
|
||||||
@@ -47,7 +178,7 @@ public class ProjectInfoTest {
|
|||||||
projectInfoVO.setProjectName(fakeInstance
|
projectInfoVO.setProjectName(fakeInstance
|
||||||
.funnyName()
|
.funnyName()
|
||||||
.name());
|
.name());
|
||||||
projectInfoVO.setProjectNamespace(fakeInstance.examplify("dasdd"));
|
projectInfoVO.setProjectNamespace(fakeInstance.examplify("dasdcz"));
|
||||||
projectInfoVO.setDeployNetEnv(fakeInstance
|
projectInfoVO.setDeployNetEnv(fakeInstance
|
||||||
.random()
|
.random()
|
||||||
.nextInt(3));
|
.nextInt(3));
|
||||||
|
|||||||
Reference in New Issue
Block a user