暂存提交
This commit is contained in:
@@ -28,3 +28,4 @@
|
||||
- 新建库由 `firstleg.sql` 创建查询索引;既有库必须再执行可重复部署的 `phase1-firstleg-task-list-index.sql`,不能只依赖 `CREATE TABLE IF NOT EXISTS`。
|
||||
- 当前模块没有专属自动化测试时,不要为小改动擅自引入新框架;至少运行模块构建并记录接口验证。
|
||||
- 从父目录运行 `mvn -pl firstleg -am test`。
|
||||
- 数据库执行顺序:新库执行 `firstleg.sql`;已有库在此后执行 `phase1-firstleg-task-list-index.sql`,为任务列表、按订单查询和分配历史分页补齐索引。
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<parent><groupId>com.baiyue.firstleg</groupId><artifactId>baiyue-firstleg-platform</artifactId><version>1.0.0-SNAPSHOT</version><relativePath>../pom.xml</relativePath></parent>
|
||||
<artifactId>firstleg-service</artifactId>
|
||||
<dependencies>
|
||||
<dependency><groupId>com.baiyue.shared</groupId><artifactId>baiyue-common-core</artifactId><version>${project.version}</version></dependency>
|
||||
<dependency><groupId>com.baiyue.shared</groupId><artifactId>baiyue-common-audit</artifactId><version>${project.version}</version></dependency>
|
||||
<dependency><groupId>com.baiyue.shared</groupId><artifactId>baiyue-common-openapi</artifactId><version>${project.version}</version></dependency>
|
||||
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId></dependency>
|
||||
|
||||
+8
-3
@@ -3,6 +3,7 @@ package com.baiyue.firstleg.controller;
|
||||
import com.baiyue.common.security.AuthenticatedUser;
|
||||
import com.baiyue.firstleg.dto.AssignRequest;
|
||||
import com.baiyue.firstleg.dto.FulfillmentTaskQuery;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
@@ -12,9 +13,11 @@ import java.nio.charset.StandardCharsets;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@DisplayName("履约任务控制器契约")
|
||||
class FulfillmentTaskControllerContractTest {
|
||||
@Test
|
||||
void 查询和分配接口声明对应权限码() throws Exception {
|
||||
@DisplayName("查询和分配接口声明对应权限码")
|
||||
void shouldDeclarePermissionsForQueryAndAssignmentEndpoints() throws Exception {
|
||||
assertAuthority("page", "hasAuthority('platform:firstleg:task:list')",
|
||||
AuthenticatedUser.class, long.class, FulfillmentTaskQuery.class);
|
||||
assertAuthority("detail", "hasAuthority('platform:firstleg:task:view')",
|
||||
@@ -28,14 +31,16 @@ class FulfillmentTaskControllerContractTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
void 分页查询缺省值为第一页每页二十条() {
|
||||
@DisplayName("分页查询缺省值为第一页每页二十条")
|
||||
void shouldDefaultPageQueryToFirstPageAndTwentyItems() {
|
||||
FulfillmentTaskQuery query = new FulfillmentTaskQuery(null, null, null, 0, 0);
|
||||
assertThat(query.page()).isEqualTo(1);
|
||||
assertThat(query.size()).isEqualTo(20);
|
||||
}
|
||||
|
||||
@Test
|
||||
void OpenAPI覆盖四类只读接口和对应权限() throws Exception {
|
||||
@DisplayName("OpenAPI覆盖四类只读接口和对应权限")
|
||||
void shouldDocumentFourReadOnlyEndpointsInOpenApi() throws Exception {
|
||||
String openapi = new ClassPathResource("openapi/firstleg-v1.yaml")
|
||||
.getContentAsString(StandardCharsets.UTF_8);
|
||||
assertThat(openapi)
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.baiyue.common.core.exception.BizException;
|
||||
import com.baiyue.firstleg.dto.FulfillmentTaskQuery;
|
||||
import com.baiyue.firstleg.entity.FulfillmentTaskEntity;
|
||||
import com.baiyue.firstleg.repository.FulfillmentTaskRepository;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
@@ -17,9 +18,11 @@ import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@DisplayName("履约任务服务")
|
||||
class FulfillmentTaskServiceTest {
|
||||
@Test
|
||||
void 列表查询保留租户和分页条件() {
|
||||
@DisplayName("列表查询保留租户和分页条件")
|
||||
void shouldPreserveTenantAndPaginationInPageQuery() {
|
||||
FulfillmentTaskRepository repository = mock(FulfillmentTaskRepository.class);
|
||||
FulfillmentTaskQuery query = new FulfillmentTaskQuery(null, null, null, 1, 20);
|
||||
PageResult<FulfillmentTaskEntity> expected = new PageResult<>(List.of(), 1, 20, 0, 0);
|
||||
@@ -30,7 +33,8 @@ class FulfillmentTaskServiceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
void 详情和按订单查询不存在时返回404() {
|
||||
@DisplayName("详情和按订单查询不存在时返回404")
|
||||
void shouldReturnNotFoundForMissingTaskAndOrder() {
|
||||
FulfillmentTaskRepository repository = mock(FulfillmentTaskRepository.class);
|
||||
FulfillmentTaskService service = service(repository);
|
||||
|
||||
@@ -45,7 +49,8 @@ class FulfillmentTaskServiceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
void 查询分配历史前先校验任务归属租户() {
|
||||
@DisplayName("查询分配历史前先校验任务归属租户")
|
||||
void shouldVerifyTaskTenantBeforeLoadingAssignmentHistory() {
|
||||
FulfillmentTaskRepository repository = mock(FulfillmentTaskRepository.class);
|
||||
FulfillmentTaskEntity task = new FulfillmentTaskEntity();
|
||||
when(repository.findOwned(10001L, 1L)).thenReturn(task);
|
||||
|
||||
Reference in New Issue
Block a user