refactor(test): 重构测试套件结构并优化测试配置
feat(test-suite): 新增测试套件模块,包含API测试客户端和测试配置 fix(api): 修复数据库实体和仓库的删除操作返回值 style(api): 统一数据库表名和字段命名 perf(api): 添加缓存注解提升配置查询性能 test(api): 添加H2测试数据库配置支持 chore: 清理旧的测试文件和脚本
This commit is contained in:
-25
@@ -5,7 +5,6 @@ import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@@ -38,11 +37,8 @@ public class AuditLogService {
|
||||
entry.setRequestId(requestId);
|
||||
entry.setMethod(request.getMethod().name());
|
||||
entry.setPath(request.getPath().value());
|
||||
entry.setQuery(request.getURI().getQuery());
|
||||
entry.setUserId(userId);
|
||||
entry.setClientIp(getClientIp(request));
|
||||
entry.setStartTime(Instant.now());
|
||||
entry.setUserAgent(request.getHeaders().getFirst("User-Agent"));
|
||||
|
||||
auditEntries.put(requestId, entry);
|
||||
|
||||
@@ -59,7 +55,6 @@ public class AuditLogService {
|
||||
|
||||
if (entry != null) {
|
||||
entry.setStatusCode(statusCode);
|
||||
entry.setEndTime(Instant.now());
|
||||
entry.setDurationMs(durationMs);
|
||||
|
||||
auditLogger.info("[RESPONSE] {} {} - Status: {}, Duration: {}ms, RequestId: {}",
|
||||
@@ -148,12 +143,8 @@ public class AuditLogService {
|
||||
private String requestId;
|
||||
private String method;
|
||||
private String path;
|
||||
private String query;
|
||||
private String userId;
|
||||
private String clientIp;
|
||||
private String userAgent;
|
||||
private Instant startTime;
|
||||
private Instant endTime;
|
||||
private int statusCode;
|
||||
private long durationMs;
|
||||
|
||||
@@ -181,10 +172,6 @@ public class AuditLogService {
|
||||
this.path = path;
|
||||
}
|
||||
|
||||
public void setQuery(String query) {
|
||||
this.query = query;
|
||||
}
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
@@ -201,18 +188,6 @@ public class AuditLogService {
|
||||
this.clientIp = clientIp;
|
||||
}
|
||||
|
||||
public void setUserAgent(String userAgent) {
|
||||
this.userAgent = userAgent;
|
||||
}
|
||||
|
||||
public void setStartTime(Instant startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public void setEndTime(Instant endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public int getStatusCode() {
|
||||
return statusCode;
|
||||
}
|
||||
|
||||
+17
-38
@@ -44,7 +44,10 @@ class PermissionServiceImplTest {
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
when(webClientBuilder.build()).thenReturn(webClient);
|
||||
doReturn(webClient).when(webClientBuilder).build();
|
||||
doReturn(requestHeadersUriSpec).when(webClient).get();
|
||||
doReturn(requestHeadersSpec).when(requestHeadersUriSpec).uri(anyString());
|
||||
doReturn(responseSpec).when(requestHeadersSpec).retrieve();
|
||||
permissionService = new PermissionServiceImpl(webClientBuilder, "http://localhost:8084");
|
||||
}
|
||||
|
||||
@@ -52,10 +55,7 @@ class PermissionServiceImplTest {
|
||||
void testGetUserById_Success() {
|
||||
User expectedUser = new User(1L, "testuser", "test@example.com", "1234567890", 1, System.currentTimeMillis(), System.currentTimeMillis());
|
||||
|
||||
when(webClient.get()).thenReturn(requestHeadersUriSpec);
|
||||
when(requestHeadersUriSpec.uri(anyString())).thenReturn(requestHeadersSpec);
|
||||
when(requestHeadersSpec.retrieve()).thenReturn(responseSpec);
|
||||
when(responseSpec.bodyToMono(eq(User.class))).thenReturn(Mono.just(expectedUser));
|
||||
doReturn(Mono.just(expectedUser)).when(responseSpec).bodyToMono(eq(User.class));
|
||||
|
||||
User user = permissionService.getUserById(1L);
|
||||
|
||||
@@ -79,10 +79,7 @@ class PermissionServiceImplTest {
|
||||
new Role(2L, "USER", "User", "User role", 1, System.currentTimeMillis(), System.currentTimeMillis())
|
||||
);
|
||||
|
||||
when(webClient.get()).thenReturn(requestHeadersUriSpec);
|
||||
when(requestHeadersUriSpec.uri(anyString())).thenReturn(requestHeadersSpec);
|
||||
when(requestHeadersSpec.retrieve()).thenReturn(responseSpec);
|
||||
when(responseSpec.bodyToMono(eq(Role[].class))).thenReturn(Mono.just(expectedRoles.toArray(new Role[0])));
|
||||
doReturn(Mono.just(expectedRoles.toArray(new Role[0]))).when(responseSpec).bodyToMono(eq(Role[].class));
|
||||
|
||||
List<Role> roles = permissionService.getUserRoles(1L);
|
||||
|
||||
@@ -107,10 +104,7 @@ class PermissionServiceImplTest {
|
||||
new Permission(2L, "user:write", "Write User", "API", "/api/users/**", "POST", "Write user permissions", 1, System.currentTimeMillis(), System.currentTimeMillis())
|
||||
));
|
||||
|
||||
when(webClient.get()).thenReturn(requestHeadersUriSpec);
|
||||
when(requestHeadersUriSpec.uri(anyString())).thenReturn(requestHeadersSpec);
|
||||
when(requestHeadersSpec.retrieve()).thenReturn(responseSpec);
|
||||
when(responseSpec.bodyToMono(eq(Permission[].class))).thenReturn(Mono.just(expectedPermissions.toArray(new Permission[0])));
|
||||
doReturn(Mono.just(expectedPermissions.toArray(new Permission[0]))).when(responseSpec).bodyToMono(eq(Permission[].class));
|
||||
|
||||
Set<Permission> permissions = permissionService.getUserPermissions(1L);
|
||||
|
||||
@@ -134,10 +128,7 @@ class PermissionServiceImplTest {
|
||||
new Permission(1L, "user:read", "Read User", "API", "/api/users/**", "GET", "Read user permissions", 1, System.currentTimeMillis(), System.currentTimeMillis())
|
||||
));
|
||||
|
||||
when(webClient.get()).thenReturn(requestHeadersUriSpec);
|
||||
when(requestHeadersUriSpec.uri(anyString())).thenReturn(requestHeadersSpec);
|
||||
when(requestHeadersSpec.retrieve()).thenReturn(responseSpec);
|
||||
when(responseSpec.bodyToMono(eq(Permission[].class))).thenReturn(Mono.just(permissions.toArray(new Permission[0])));
|
||||
doReturn(Mono.just(permissions.toArray(new Permission[0]))).when(responseSpec).bodyToMono(eq(Permission[].class));
|
||||
|
||||
boolean hasPermission = permissionService.hasPermission(1L, "/api/users/123", "GET");
|
||||
|
||||
@@ -150,10 +141,7 @@ class PermissionServiceImplTest {
|
||||
new Permission(1L, "user:read", "Read User", "API", "/api/users/**", "GET", "Read user permissions", 1, System.currentTimeMillis(), System.currentTimeMillis())
|
||||
));
|
||||
|
||||
when(webClient.get()).thenReturn(requestHeadersUriSpec);
|
||||
when(requestHeadersUriSpec.uri(anyString())).thenReturn(requestHeadersSpec);
|
||||
when(requestHeadersSpec.retrieve()).thenReturn(responseSpec);
|
||||
when(responseSpec.bodyToMono(eq(Permission[].class))).thenReturn(Mono.just(permissions.toArray(new Permission[0])));
|
||||
doReturn(Mono.just(permissions.toArray(new Permission[0]))).when(responseSpec).bodyToMono(eq(Permission[].class));
|
||||
|
||||
boolean hasPermission = permissionService.hasPermission(1L, "/api/users/123", "POST");
|
||||
|
||||
@@ -175,10 +163,7 @@ class PermissionServiceImplTest {
|
||||
new Permission(2L, "user:write", "Write User", "API", "/api/users/**", "POST", "Write user permissions", 1, System.currentTimeMillis(), System.currentTimeMillis())
|
||||
));
|
||||
|
||||
when(webClient.get()).thenReturn(requestHeadersUriSpec);
|
||||
when(requestHeadersUriSpec.uri(anyString())).thenReturn(requestHeadersSpec);
|
||||
when(requestHeadersSpec.retrieve()).thenReturn(responseSpec);
|
||||
when(responseSpec.bodyToMono(eq(Permission[].class))).thenReturn(Mono.just(permissions.toArray(new Permission[0])));
|
||||
doReturn(Mono.just(permissions.toArray(new Permission[0]))).when(responseSpec).bodyToMono(eq(Permission[].class));
|
||||
|
||||
Set<String> paths = permissionService.getPermissionPaths(1L, "GET");
|
||||
|
||||
@@ -195,12 +180,9 @@ class PermissionServiceImplTest {
|
||||
new Permission(1L, "user:read", "Read User", "API", "/api/users/**", "GET", "Read user permissions", 1, System.currentTimeMillis(), System.currentTimeMillis())
|
||||
));
|
||||
|
||||
when(webClient.get()).thenReturn(requestHeadersUriSpec);
|
||||
when(requestHeadersUriSpec.uri(anyString())).thenReturn(requestHeadersSpec);
|
||||
when(requestHeadersSpec.retrieve()).thenReturn(responseSpec);
|
||||
when(responseSpec.bodyToMono(eq(User.class))).thenReturn(Mono.just(user));
|
||||
when(responseSpec.bodyToMono(eq(Role[].class))).thenReturn(Mono.just(roles.toArray(new Role[0])));
|
||||
when(responseSpec.bodyToMono(eq(Permission[].class))).thenReturn(Mono.just(permissions.toArray(new Permission[0])));
|
||||
doReturn(Mono.just(user)).when(responseSpec).bodyToMono(eq(User.class));
|
||||
doReturn(Mono.just(roles.toArray(new Role[0]))).when(responseSpec).bodyToMono(eq(Role[].class));
|
||||
doReturn(Mono.just(permissions.toArray(new Permission[0]))).when(responseSpec).bodyToMono(eq(Permission[].class));
|
||||
|
||||
permissionService.getUserById(1L);
|
||||
permissionService.getUserRoles(1L);
|
||||
@@ -219,12 +201,9 @@ class PermissionServiceImplTest {
|
||||
new Permission(1L, "user:read", "Read User", "API", "/api/users/**", "GET", "Read user permissions", 1, System.currentTimeMillis(), System.currentTimeMillis())
|
||||
));
|
||||
|
||||
when(webClient.get()).thenReturn(requestHeadersUriSpec);
|
||||
when(requestHeadersUriSpec.uri(anyString())).thenReturn(requestHeadersSpec);
|
||||
when(requestHeadersSpec.retrieve()).thenReturn(responseSpec);
|
||||
when(responseSpec.bodyToMono(eq(User.class))).thenReturn(Mono.just(user));
|
||||
when(responseSpec.bodyToMono(eq(Role[].class))).thenReturn(Mono.just(roles.toArray(new Role[0])));
|
||||
when(responseSpec.bodyToMono(eq(Permission[].class))).thenReturn(Mono.just(permissions.toArray(new Permission[0])));
|
||||
doReturn(Mono.just(user)).when(responseSpec).bodyToMono(eq(User.class));
|
||||
doReturn(Mono.just(roles.toArray(new Role[0]))).when(responseSpec).bodyToMono(eq(Role[].class));
|
||||
doReturn(Mono.just(permissions.toArray(new Permission[0]))).when(responseSpec).bodyToMono(eq(Permission[].class));
|
||||
|
||||
permissionService.getUserById(1L);
|
||||
permissionService.getUserRoles(1L);
|
||||
@@ -238,4 +217,4 @@ class PermissionServiceImplTest {
|
||||
|
||||
verify(webClient, times(6)).get();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-1
@@ -7,7 +7,6 @@ import org.mockito.InjectMocks;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
|
||||
import org.springframework.mock.web.server.MockServerWebExchange;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
Reference in New Issue
Block a user