暂存提交

This commit is contained in:
2026-07-31 16:53:07 +08:00
parent 45358ef40f
commit 704cb15ccf
98 changed files with 1944 additions and 134 deletions
@@ -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);