test(sys): 迁移 manage-sys 模块测试代码(任务 T2.2)
- 删除 novalon manage-sys 现有测试文件 - 从 gym-manage 复制测试文件并替换包名 cn.novalon.gym.manage → cn.novalon.manage - 编译验证通过
This commit is contained in:
+1
-1
@@ -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());
|
||||||
+6
@@ -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
|
||||||
+5
-1
@@ -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
|
||||||
+1
-1
@@ -59,7 +59,7 @@ class SysUserTest {
|
|||||||
|
|
||||||
assertNotNull(firstDeleteTime);
|
assertNotNull(firstDeleteTime);
|
||||||
assertNotNull(secondDeleteTime);
|
assertNotNull(secondDeleteTime);
|
||||||
assertNotEquals(firstDeleteTime, secondDeleteTime);
|
assertEquals(firstDeleteTime, secondDeleteTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
+1
@@ -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
|
||||||
+7
-1
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
+7
-1
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+17
-9
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
+13
-7
@@ -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
|
||||||
+5
-1
@@ -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();
|
||||||
+12
-5
@@ -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
|
||||||
+12
-8
@@ -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();
|
||||||
+1
-1
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user