test(sys): 迁移 manage-sys 模块测试代码(任务 T2.2)

- 删除 novalon manage-sys 现有测试文件
- 从 gym-manage 复制测试文件并替换包名 cn.novalon.gym.manage → cn.novalon.manage
- 编译验证通过
This commit is contained in:
张翔
2026-04-27 14:08:51 +08:00
parent cf067dccc3
commit a71bb7dd97
51 changed files with 88 additions and 36 deletions
@@ -25,7 +25,7 @@ class AuditLogTest {
assertNull(auditLog.getEntityId()); assertNull(auditLog.getEntityId());
assertNull(auditLog.getOperator()); assertNull(auditLog.getOperator());
assertNull(auditLog.getOperationType()); assertNull(auditLog.getOperationType());
assertNull(auditLog.getOperationTime()); assertNotNull(auditLog.getOperationTime());
assertNull(auditLog.getDescription()); assertNull(auditLog.getDescription());
assertNull(auditLog.getIpAddress()); assertNull(auditLog.getIpAddress());
assertNull(auditLog.getUserAgent()); assertNull(auditLog.getUserAgent());
@@ -41,6 +41,12 @@ class AuditLogServiceTest {
@BeforeEach @BeforeEach
void setUp() { void setUp() {
auditLogService = new AuditLogService(auditLogRepository, auditLogExecutor); auditLogService = new AuditLogService(auditLogRepository, auditLogExecutor);
lenient().doAnswer(invocation -> {
Runnable task = invocation.getArgument(0);
task.run();
return null;
}).when(auditLogExecutor).execute(any(Runnable.class));
} }
@Test @Test
@@ -1,5 +1,6 @@
package cn.novalon.manage.sys.config; package cn.novalon.manage.sys.config;
import cn.novalon.manage.sys.audit.OperationLogWebFilter;
import cn.novalon.manage.sys.security.JwtAuthenticationFilter; import cn.novalon.manage.sys.security.JwtAuthenticationFilter;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -16,6 +17,9 @@ class SecurityConfigTest {
@Mock @Mock
private JwtAuthenticationFilter jwtAuthenticationFilter; private JwtAuthenticationFilter jwtAuthenticationFilter;
@Mock
private OperationLogWebFilter operationLogWebFilter;
@Mock @Mock
private Environment environment; private Environment environment;
@@ -23,7 +27,7 @@ class SecurityConfigTest {
@BeforeEach @BeforeEach
void setUp() { void setUp() {
securityConfig = new SecurityConfig(jwtAuthenticationFilter, environment); securityConfig = new SecurityConfig(jwtAuthenticationFilter, operationLogWebFilter, environment);
} }
@Test @Test
@@ -59,7 +59,7 @@ class SysUserTest {
assertNotNull(firstDeleteTime); assertNotNull(firstDeleteTime);
assertNotNull(secondDeleteTime); assertNotNull(secondDeleteTime);
assertNotEquals(firstDeleteTime, secondDeleteTime); assertEquals(firstDeleteTime, secondDeleteTime);
} }
@Test @Test
@@ -43,6 +43,7 @@ class OperationLogServiceTest {
testLog.setDuration(100L); testLog.setDuration(100L);
testLog.setIp("192.168.1.1"); testLog.setIp("192.168.1.1");
testLog.setStatus("1"); testLog.setStatus("1");
testLog.setCreatedAt(LocalDateTime.now());
} }
@Test @Test
@@ -1,5 +1,6 @@
package cn.novalon.manage.sys.core.service.impl; package cn.novalon.manage.sys.core.service.impl;
import cn.novalon.manage.sys.audit.service.IAuditLogService;
import cn.novalon.manage.sys.core.domain.SysConfig; import cn.novalon.manage.sys.core.domain.SysConfig;
import cn.novalon.manage.sys.core.repository.ISysConfigRepository; import cn.novalon.manage.sys.core.repository.ISysConfigRepository;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
@@ -26,13 +27,16 @@ class SysConfigServiceTest {
@Mock @Mock
private ISysConfigRepository repository; private ISysConfigRepository repository;
@Mock
private IAuditLogService auditLogService;
private SysConfigService configService; private SysConfigService configService;
private SysConfig testConfig; private SysConfig testConfig;
@BeforeEach @BeforeEach
void setUp() { void setUp() {
configService = new SysConfigService(repository); configService = new SysConfigService(repository, auditLogService);
testConfig = new SysConfig(); testConfig = new SysConfig();
testConfig.setId(1L); testConfig.setId(1L);
@@ -110,11 +114,13 @@ class SysConfigServiceTest {
@Test @Test
void testDeleteById() { void testDeleteById() {
when(repository.findById(1L)).thenReturn(Mono.just(testConfig));
when(repository.deleteByIdAndDeletedAtIsNull(1L)).thenReturn(Mono.empty()); when(repository.deleteByIdAndDeletedAtIsNull(1L)).thenReturn(Mono.empty());
StepVerifier.create(configService.deleteById(1L)) StepVerifier.create(configService.deleteById(1L))
.verifyComplete(); .verifyComplete();
verify(repository).findById(1L);
verify(repository).deleteByIdAndDeletedAtIsNull(1L); verify(repository).deleteByIdAndDeletedAtIsNull(1L);
} }
@@ -1,5 +1,6 @@
package cn.novalon.manage.sys.core.service.impl; package cn.novalon.manage.sys.core.service.impl;
import cn.novalon.manage.sys.audit.service.IAuditLogService;
import cn.novalon.manage.sys.core.domain.SysDictType; import cn.novalon.manage.sys.core.domain.SysDictType;
import cn.novalon.manage.sys.core.repository.ISysDictTypeRepository; import cn.novalon.manage.sys.core.repository.ISysDictTypeRepository;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
@@ -23,12 +24,15 @@ class SysDictTypeServiceTest {
@Mock @Mock
private ISysDictTypeRepository repository; private ISysDictTypeRepository repository;
@Mock
private IAuditLogService auditLogService;
private SysDictTypeService dictTypeService; private SysDictTypeService dictTypeService;
private SysDictType testDictType; private SysDictType testDictType;
@BeforeEach @BeforeEach
void setUp() { void setUp() {
dictTypeService = new SysDictTypeService(repository); dictTypeService = new SysDictTypeService(repository, auditLogService);
testDictType = new SysDictType(); testDictType = new SysDictType();
testDictType.setId(1L); testDictType.setId(1L);
@@ -93,6 +97,7 @@ class SysDictTypeServiceTest {
@Test @Test
void testDeleteById() { void testDeleteById() {
when(repository.findById(1L)).thenReturn(Mono.just(testDictType));
when(repository.deleteByIdAndDeletedAtIsNull(1L)).thenReturn(Mono.empty()); when(repository.deleteByIdAndDeletedAtIsNull(1L)).thenReturn(Mono.empty());
Mono<Void> result = dictTypeService.deleteById(1L); Mono<Void> result = dictTypeService.deleteById(1L);
@@ -100,6 +105,7 @@ class SysDictTypeServiceTest {
StepVerifier.create(result) StepVerifier.create(result)
.verifyComplete(); .verifyComplete();
verify(repository).findById(1L);
verify(repository).deleteByIdAndDeletedAtIsNull(1L); verify(repository).deleteByIdAndDeletedAtIsNull(1L);
} }
} }
@@ -4,6 +4,7 @@ import cn.novalon.manage.sys.core.domain.SysMenu;
import cn.novalon.manage.sys.core.repository.ISysMenuRepository; import cn.novalon.manage.sys.core.repository.ISysMenuRepository;
import cn.novalon.manage.sys.core.command.CreateMenuCommand; import cn.novalon.manage.sys.core.command.CreateMenuCommand;
import cn.novalon.manage.sys.core.command.UpdateMenuCommand; import cn.novalon.manage.sys.core.command.UpdateMenuCommand;
import cn.novalon.manage.sys.audit.service.IAuditLogService;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;
@@ -25,12 +26,15 @@ class SysMenuServiceTest {
@Mock @Mock
private ISysMenuRepository menuRepository; private ISysMenuRepository menuRepository;
@Mock
private IAuditLogService auditLogService;
private SysMenuService menuService; private SysMenuService menuService;
private SysMenu testMenu; private SysMenu testMenu;
@BeforeEach @BeforeEach
void setUp() { void setUp() {
menuService = new SysMenuService(menuRepository); menuService = new SysMenuService(menuRepository, auditLogService);
testMenu = new SysMenu(); testMenu = new SysMenu();
testMenu.setId(1L); testMenu.setId(1L);
@@ -129,7 +133,8 @@ class SysMenuServiceTest {
@Test @Test
void testUpdateMenu() { void testUpdateMenu() {
when(menuRepository.save(any(SysMenu.class))).thenReturn(Mono.just(testMenu)); when(menuRepository.findById(1L)).thenReturn(Mono.just(testMenu));
when(menuRepository.update(any(SysMenu.class))).thenReturn(Mono.just(testMenu));
Mono<SysMenu> result = menuService.updateMenu(testMenu); Mono<SysMenu> result = menuService.updateMenu(testMenu);
@@ -138,7 +143,8 @@ class SysMenuServiceTest {
menu.getUpdatedAt() != null) menu.getUpdatedAt() != null)
.verifyComplete(); .verifyComplete();
verify(menuRepository).save(any(SysMenu.class)); verify(menuRepository).findById(1L);
verify(menuRepository).update(any(SysMenu.class));
} }
@Test @Test
@@ -147,7 +153,7 @@ class SysMenuServiceTest {
1L, 0L, "系统管理(更新)", "M", 1, "system", "system:manage", 1); 1L, 0L, "系统管理(更新)", "M", 1, "system", "system:manage", 1);
when(menuRepository.findById(1L)).thenReturn(Mono.just(testMenu)); when(menuRepository.findById(1L)).thenReturn(Mono.just(testMenu));
when(menuRepository.save(any(SysMenu.class))).thenReturn(Mono.just(testMenu)); when(menuRepository.update(any(SysMenu.class))).thenReturn(Mono.just(testMenu));
Mono<SysMenu> result = menuService.updateMenu(command); Mono<SysMenu> result = menuService.updateMenu(command);
@@ -157,7 +163,7 @@ class SysMenuServiceTest {
.verifyComplete(); .verifyComplete();
verify(menuRepository).findById(1L); verify(menuRepository).findById(1L);
verify(menuRepository).save(any(SysMenu.class)); verify(menuRepository).update(any(SysMenu.class));
} }
@Test @Test
@@ -200,7 +206,7 @@ class SysMenuServiceTest {
updatedMenu.setUpdatedAt(LocalDateTime.now()); updatedMenu.setUpdatedAt(LocalDateTime.now());
when(menuRepository.findById(1L)).thenReturn(Mono.just(existingMenu)); when(menuRepository.findById(1L)).thenReturn(Mono.just(existingMenu));
when(menuRepository.save(any(SysMenu.class))).thenReturn(Mono.just(updatedMenu)); when(menuRepository.update(any(SysMenu.class))).thenReturn(Mono.just(updatedMenu));
UpdateMenuCommand command = new UpdateMenuCommand( UpdateMenuCommand command = new UpdateMenuCommand(
1L, null, null, null, null, null, null, null); 1L, null, null, null, null, null, null, null);
@@ -210,7 +216,7 @@ class SysMenuServiceTest {
.verifyComplete(); .verifyComplete();
verify(menuRepository).findById(1L); verify(menuRepository).findById(1L);
verify(menuRepository).save(any(SysMenu.class)); verify(menuRepository).update(any(SysMenu.class));
} }
@Test @Test
@@ -237,7 +243,7 @@ class SysMenuServiceTest {
updatedMenu.setUpdatedAt(LocalDateTime.now()); updatedMenu.setUpdatedAt(LocalDateTime.now());
when(menuRepository.findById(1L)).thenReturn(Mono.just(existingMenu)); when(menuRepository.findById(1L)).thenReturn(Mono.just(existingMenu));
when(menuRepository.save(any(SysMenu.class))).thenReturn(Mono.just(updatedMenu)); when(menuRepository.update(any(SysMenu.class))).thenReturn(Mono.just(updatedMenu));
UpdateMenuCommand command = new UpdateMenuCommand( UpdateMenuCommand command = new UpdateMenuCommand(
1L, 2L, "系统管理(更新)", "C", 2, "system_updated", "system:manage_updated", 0); 1L, 2L, "系统管理(更新)", "C", 2, "system_updated", "system:manage_updated", 0);
@@ -247,11 +253,12 @@ class SysMenuServiceTest {
.verifyComplete(); .verifyComplete();
verify(menuRepository).findById(1L); verify(menuRepository).findById(1L);
verify(menuRepository).save(any(SysMenu.class)); verify(menuRepository).update(any(SysMenu.class));
} }
@Test @Test
void testDeleteMenu() { void testDeleteMenu() {
when(menuRepository.findById(1L)).thenReturn(Mono.just(testMenu));
when(menuRepository.deleteById(1L)).thenReturn(Mono.empty()); when(menuRepository.deleteById(1L)).thenReturn(Mono.empty());
Mono<Void> result = menuService.deleteMenu(1L); Mono<Void> result = menuService.deleteMenu(1L);
@@ -259,6 +266,7 @@ class SysMenuServiceTest {
StepVerifier.create(result) StepVerifier.create(result)
.verifyComplete(); .verifyComplete();
verify(menuRepository).findById(1L);
verify(menuRepository).deleteById(1L); verify(menuRepository).deleteById(1L);
} }
@@ -1,5 +1,6 @@
package cn.novalon.manage.sys.core.service.impl; package cn.novalon.manage.sys.core.service.impl;
import cn.novalon.manage.sys.audit.service.IAuditLogService;
import cn.novalon.manage.common.util.StatusConstants; import cn.novalon.manage.common.util.StatusConstants;
import cn.novalon.manage.sys.core.domain.SysRole; import cn.novalon.manage.sys.core.domain.SysRole;
import cn.novalon.manage.sys.core.query.SysRoleQuery; import cn.novalon.manage.sys.core.query.SysRoleQuery;
@@ -46,13 +47,16 @@ class SysRoleServiceTest {
@Mock @Mock
private ISysRolePermissionRepository rolePermissionRepository; private ISysRolePermissionRepository rolePermissionRepository;
@Mock
private IAuditLogService auditLogService;
private SysRoleService roleService; private SysRoleService roleService;
private SysRole testRole; private SysRole testRole;
@BeforeEach @BeforeEach
void setUp() { void setUp() {
roleService = new SysRoleService(roleRepository, userService, userRoleRepository, rolePermissionRepository); roleService = new SysRoleService(roleRepository, userService, userRoleRepository, rolePermissionRepository, auditLogService);
testRole = new SysRole(); testRole = new SysRole();
testRole.setId(1L); testRole.setId(1L);
@@ -206,7 +210,7 @@ class SysRoleServiceTest {
existingRole.setStatus(StatusConstants.ENABLED); existingRole.setStatus(StatusConstants.ENABLED);
when(roleRepository.findById(1L)).thenReturn(Mono.just(existingRole)); when(roleRepository.findById(1L)).thenReturn(Mono.just(existingRole));
when(roleRepository.save(any(SysRole.class))).thenReturn(Mono.just(testRole)); when(roleRepository.updateRole(any(SysRole.class))).thenReturn(Mono.just(testRole));
cn.novalon.manage.sys.core.command.UpdateRoleCommand command = cn.novalon.manage.sys.core.command.UpdateRoleCommand command =
new cn.novalon.manage.sys.core.command.UpdateRoleCommand( new cn.novalon.manage.sys.core.command.UpdateRoleCommand(
@@ -218,7 +222,7 @@ class SysRoleServiceTest {
.verifyComplete(); .verifyComplete();
verify(roleRepository).findById(1L); verify(roleRepository).findById(1L);
verify(roleRepository).save(any(SysRole.class)); verify(roleRepository).updateRole(any(SysRole.class));
} }
@Test @Test
@@ -231,7 +235,7 @@ class SysRoleServiceTest {
existingRole.setStatus(StatusConstants.ENABLED); existingRole.setStatus(StatusConstants.ENABLED);
when(roleRepository.findById(1L)).thenReturn(Mono.just(existingRole)); when(roleRepository.findById(1L)).thenReturn(Mono.just(existingRole));
when(roleRepository.save(any(SysRole.class))).thenReturn(Mono.just(testRole)); when(roleRepository.updateRole(any(SysRole.class))).thenReturn(Mono.just(testRole));
cn.novalon.manage.sys.core.command.UpdateRoleCommand command = cn.novalon.manage.sys.core.command.UpdateRoleCommand command =
new cn.novalon.manage.sys.core.command.UpdateRoleCommand( new cn.novalon.manage.sys.core.command.UpdateRoleCommand(
@@ -243,7 +247,7 @@ class SysRoleServiceTest {
.verifyComplete(); .verifyComplete();
verify(roleRepository).findById(1L); verify(roleRepository).findById(1L);
verify(roleRepository).save(any(SysRole.class)); verify(roleRepository).updateRole(any(SysRole.class));
} }
@Test @Test
@@ -252,13 +256,15 @@ class SysRoleServiceTest {
updateRole.setId(1L); updateRole.setId(1L);
updateRole.setRoleName("updated_admin"); updateRole.setRoleName("updated_admin");
when(roleRepository.save(any(SysRole.class))).thenReturn(Mono.just(testRole)); when(roleRepository.findById(1L)).thenReturn(Mono.just(testRole));
when(roleRepository.updateRole(any(SysRole.class))).thenReturn(Mono.just(testRole));
StepVerifier.create(roleService.updateRole(updateRole)) StepVerifier.create(roleService.updateRole(updateRole))
.expectNextMatches(role -> role.getUpdatedAt() != null) .expectNextMatches(role -> role.getUpdatedAt() != null)
.verifyComplete(); .verifyComplete();
verify(roleRepository).save(any(SysRole.class)); verify(roleRepository).findById(1L);
verify(roleRepository).updateRole(any(SysRole.class));
} }
@Test @Test
@@ -1,6 +1,7 @@
package cn.novalon.manage.sys.core.service.impl; package cn.novalon.manage.sys.core.service.impl;
import cn.novalon.manage.common.util.StatusConstants; import cn.novalon.manage.common.util.StatusConstants;
import cn.novalon.manage.sys.audit.service.IAuditLogService;
import cn.novalon.manage.sys.config.IntegrationTestConfig; import cn.novalon.manage.sys.config.IntegrationTestConfig;
import cn.novalon.manage.sys.core.domain.SysUser; import cn.novalon.manage.sys.core.domain.SysUser;
import cn.novalon.manage.sys.core.domain.SysRole; import cn.novalon.manage.sys.core.domain.SysRole;
@@ -76,6 +77,9 @@ class SysUserServiceIntegrationTest {
@Autowired @Autowired
private IUserRoleRepository userRoleRepository; private IUserRoleRepository userRoleRepository;
@Autowired
private IAuditLogService auditLogService;
@Autowired @Autowired
private R2dbcEntityTemplate r2dbcEntityTemplate; private R2dbcEntityTemplate r2dbcEntityTemplate;
@@ -85,7 +89,7 @@ class SysUserServiceIntegrationTest {
@BeforeEach @BeforeEach
void setUp() { void setUp() {
passwordEncoder = new BCryptPasswordEncoder(12); passwordEncoder = new BCryptPasswordEncoder(12);
userService = new SysUserService(userRepository, roleRepository, userRoleRepository, passwordEncoder); userService = new SysUserService(userRepository, roleRepository, userRoleRepository, passwordEncoder, auditLogService);
r2dbcEntityTemplate.delete(SysUser.class).all().block(); r2dbcEntityTemplate.delete(SysUser.class).all().block();
r2dbcEntityTemplate.delete(SysRole.class).all().block(); r2dbcEntityTemplate.delete(SysRole.class).all().block();
@@ -1,6 +1,8 @@
package cn.novalon.manage.sys.core.service.impl; package cn.novalon.manage.sys.core.service.impl;
import cn.novalon.manage.common.util.StatusConstants; import cn.novalon.manage.common.util.StatusConstants;
import cn.novalon.manage.sys.audit.service.IAuditLogService;
import cn.novalon.manage.sys.audit.domain.AuditLog;
import cn.novalon.manage.sys.core.domain.SysUser; import cn.novalon.manage.sys.core.domain.SysUser;
import cn.novalon.manage.sys.core.domain.UserRole; import cn.novalon.manage.sys.core.domain.UserRole;
import cn.novalon.manage.sys.core.repository.ISysUserRepository; import cn.novalon.manage.sys.core.repository.ISysUserRepository;
@@ -45,11 +47,14 @@ class SysUserServiceTest {
@Mock @Mock
private PasswordEncoder passwordEncoder; private PasswordEncoder passwordEncoder;
@Mock
private IAuditLogService auditLogService;
private SysUserService userService; private SysUserService userService;
@BeforeEach @BeforeEach
void setUp() { void setUp() {
userService = new SysUserService(userRepository, roleRepository, userRoleRepository, passwordEncoder); userService = new SysUserService(userRepository, roleRepository, userRoleRepository, passwordEncoder, auditLogService);
} }
@Test @Test
@@ -164,7 +169,8 @@ class SysUserServiceTest {
user.setUsername("testuser"); user.setUsername("testuser");
user.setEmail("updated@example.com"); user.setEmail("updated@example.com");
when(userRepository.save(any(SysUser.class))).thenReturn(Mono.just(user)); when(userRepository.findById(1L)).thenReturn(Mono.just(user));
when(userRepository.update(any(SysUser.class))).thenReturn(Mono.just(user));
StepVerifier.create(userService.updateUser(user)) StepVerifier.create(userService.updateUser(user))
.expectNextMatches(updatedUser -> .expectNextMatches(updatedUser ->
@@ -173,7 +179,8 @@ class SysUserServiceTest {
) )
.verifyComplete(); .verifyComplete();
verify(userRepository, times(1)).save(any(SysUser.class)); verify(userRepository, times(1)).findById(1L);
verify(userRepository, times(1)).update(any(SysUser.class));
} }
@Test @Test
@@ -218,7 +225,7 @@ class SysUserServiceTest {
when(userRepository.findById(1L)).thenReturn(Mono.just(user)); when(userRepository.findById(1L)).thenReturn(Mono.just(user));
when(passwordEncoder.matches("oldPassword", "$2b$12$oldPassword")).thenReturn(true); when(passwordEncoder.matches("oldPassword", "$2b$12$oldPassword")).thenReturn(true);
when(passwordEncoder.encode("newPassword")).thenReturn("$2b$12$newPassword"); when(passwordEncoder.encode("newPassword")).thenReturn("$2b$12$newPassword");
when(userRepository.save(any(SysUser.class))).thenAnswer(invocation -> Mono.just(invocation.getArgument(0))); when(userRepository.update(any(SysUser.class))).thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
StepVerifier.create(userService.changePassword(1L, "oldPassword", "newPassword")) StepVerifier.create(userService.changePassword(1L, "oldPassword", "newPassword"))
.expectNextMatches(updatedUser -> .expectNextMatches(updatedUser ->
@@ -228,7 +235,7 @@ class SysUserServiceTest {
verify(passwordEncoder, times(1)).matches("oldPassword", "$2b$12$oldPassword"); verify(passwordEncoder, times(1)).matches("oldPassword", "$2b$12$oldPassword");
verify(passwordEncoder, times(1)).encode("newPassword"); verify(passwordEncoder, times(1)).encode("newPassword");
verify(userRepository, times(1)).save(any(SysUser.class)); verify(userRepository, times(1)).update(any(SysUser.class));
} }
@Test @Test
@@ -10,6 +10,7 @@ import cn.novalon.manage.sys.core.service.ISysMenuService;
import cn.novalon.manage.sys.core.service.ISysRoleService; import cn.novalon.manage.sys.core.service.ISysRoleService;
import cn.novalon.manage.sys.core.service.ISysUserService; import cn.novalon.manage.sys.core.service.ISysUserService;
import cn.novalon.manage.sys.core.service.impl.SysMenuService; import cn.novalon.manage.sys.core.service.impl.SysMenuService;
import cn.novalon.manage.sys.audit.service.IAuditLogService;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
@@ -61,6 +62,9 @@ class SystemConfigRegressionTest {
@Mock @Mock
private ISysMenuRepository menuRepository; private ISysMenuRepository menuRepository;
@Mock
private IAuditLogService auditLogService;
private SysUser adminUser; private SysUser adminUser;
private SysUser normalUser; private SysUser normalUser;
private SysUser guestUser; private SysUser guestUser;
@@ -374,7 +378,7 @@ class SystemConfigRegressionTest {
void testAdminUser_MenuManagement() { void testAdminUser_MenuManagement() {
/* unused */ /* unused */
ISysMenuService menuService = new SysMenuService(menuRepository); ISysMenuService menuService = new SysMenuService(menuRepository, auditLogService);
StepVerifier.create(menuService.findAll()) StepVerifier.create(menuService.findAll())
.expectNextCount(0) .expectNextCount(0)
@@ -384,7 +388,7 @@ class SystemConfigRegressionTest {
@Test @Test
@DisplayName("3.2 普通用户 - 菜单访问控制") @DisplayName("3.2 普通用户 - 菜单访问控制")
void testNormalUser_MenuAccess() { void testNormalUser_MenuAccess() {
ISysMenuService menuService = new SysMenuService(menuRepository); ISysMenuService menuService = new SysMenuService(menuRepository, auditLogService);
StepVerifier.create(menuService.findAll()) StepVerifier.create(menuService.findAll())
.expectNextCount(0) .expectNextCount(0)
@@ -394,7 +398,7 @@ class SystemConfigRegressionTest {
@Test @Test
@DisplayName("3.3 访客用户 - 菜单访问控制") @DisplayName("3.3 访客用户 - 菜单访问控制")
void testGuestUser_MenuAccess() { void testGuestUser_MenuAccess() {
ISysMenuService menuService = new SysMenuService(menuRepository); ISysMenuService menuService = new SysMenuService(menuRepository, auditLogService);
StepVerifier.create(menuService.findAll()) StepVerifier.create(menuService.findAll())
.expectNextCount(0) .expectNextCount(0)
@@ -404,7 +408,7 @@ class SystemConfigRegressionTest {
@Test @Test
@DisplayName("3.4 菜单树构建 - 管理员视图") @DisplayName("3.4 菜单树构建 - 管理员视图")
void testMenuTree_Build_Admin() { void testMenuTree_Build_Admin() {
ISysMenuService menuService = new SysMenuService(menuRepository); ISysMenuService menuService = new SysMenuService(menuRepository, auditLogService);
StepVerifier.create(menuService.findAll()) StepVerifier.create(menuService.findAll())
.verifyComplete(); .verifyComplete();
@@ -413,7 +417,7 @@ class SystemConfigRegressionTest {
@Test @Test
@DisplayName("3.5 权限菜单过滤 - 普通用户视图") @DisplayName("3.5 权限菜单过滤 - 普通用户视图")
void testMenuFilter_NormalUser() { void testMenuFilter_NormalUser() {
ISysMenuService menuService = new SysMenuService(menuRepository); ISysMenuService menuService = new SysMenuService(menuRepository, auditLogService);
StepVerifier.create(menuService.findAll()) StepVerifier.create(menuService.findAll())
.expectNextCount(0) .expectNextCount(0)
@@ -423,7 +427,7 @@ class SystemConfigRegressionTest {
@Test @Test
@DisplayName("3.6 权限菜单过滤 - 访客视图") @DisplayName("3.6 权限菜单过滤 - 访客视图")
void testMenuFilter_Guest() { void testMenuFilter_Guest() {
ISysMenuService menuService = new SysMenuService(menuRepository); ISysMenuService menuService = new SysMenuService(menuRepository, auditLogService);
StepVerifier.create(menuService.findAll()) StepVerifier.create(menuService.findAll())
.expectNextCount(0) .expectNextCount(0)
@@ -472,7 +476,7 @@ class SystemConfigRegressionTest {
@Test @Test
@DisplayName("5.2 大量菜单加载性能测试") @DisplayName("5.2 大量菜单加载性能测试")
void testLargeMenuLoadPerformance() { void testLargeMenuLoadPerformance() {
ISysMenuService menuService = new SysMenuService(menuRepository); ISysMenuService menuService = new SysMenuService(menuRepository, auditLogService);
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
@@ -516,7 +520,7 @@ class SystemConfigRegressionTest {
@Test @Test
@DisplayName("6.3 菜单层级结构完整性") @DisplayName("6.3 菜单层级结构完整性")
void testMenuHierarchy_Integrity() { void testMenuHierarchy_Integrity() {
ISysMenuService menuService = new SysMenuService(menuRepository); ISysMenuService menuService = new SysMenuService(menuRepository, auditLogService);
StepVerifier.create(menuService.findAll()) StepVerifier.create(menuService.findAll())
.verifyComplete(); .verifyComplete();
@@ -22,7 +22,7 @@ class IpUtilsTest {
@Test @Test
@DisplayName("当request为null时,应返回unknown") @DisplayName("当request为null时,应返回unknown")
void getClientIp_whenRequestIsNull_shouldReturnUnknown() { void getClientIp_whenRequestIsNull_shouldReturnUnknown() {
String ip = IpUtils.getClientIp(null); String ip = IpUtils.getClientIp((ServerRequest) null);
assertEquals("unknown", ip); assertEquals("unknown", ip);
} }