1、完善DeptServiceImpl单元测试覆盖率90%;2、新增security mock能力;3、移除postservice相关代码;4、移除部分无用模块的单测代码;

This commit is contained in:
gaoqr
2025-09-10 16:54:02 +08:00
parent ecae82b507
commit 283759c90d
32 changed files with 586 additions and 1643 deletions
@@ -73,6 +73,11 @@
<artifactId>bizlog-sdk</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
</dependency>
</dependencies>
</project>
@@ -138,6 +138,18 @@ public class SecurityFrameworkUtils {
}
/**
* 获取当前用户的部门ID
*
*/
public static Long getUserDeptId() {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
if (loginUser == null) {
throw new ServiceException(GlobalErrorCodeConstants.UNAUTHORIZED);
}
return loginUser.getDeptId();
}
/**
* 当前用户是否超级管理员
*
@@ -0,0 +1,22 @@
package com.cf.imes.framework.security.test;
import org.springframework.security.test.context.support.WithSecurityContext;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* security mock loginuser annotation
*
* @author Gqr
* @since 2025/9/8 11:16
*/
@Retention(RetentionPolicy.RUNTIME)
@WithSecurityContext(factory = WithMockLoginUserSecurityContextFactory.class)
public @interface WithMockLoginUser {
String username() default "";
long deptId() default 0L;
boolean isSuperAdmin() default false;
}
@@ -0,0 +1,36 @@
package com.cf.imes.framework.security.test;
import cn.hutool.core.util.RandomUtil;
import com.cf.imes.framework.security.core.LoginUser;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.test.context.support.WithSecurityContextFactory;
import java.util.Collections;
/**
* security mock loginuser
*
* @author Gqr
* @since 2025/9/8 11:17
*/
public class WithMockLoginUserSecurityContextFactory implements WithSecurityContextFactory<WithMockLoginUser> {
@Override
public SecurityContext createSecurityContext(WithMockLoginUser annotation) {
SecurityContext context = SecurityContextHolder.createEmptyContext();
LoginUser loginUser = new LoginUser();
loginUser.setNickname(RandomUtil.randomString(10));
loginUser.setDeptId(RandomUtil.randomLong());
loginUser.setOrganId(RandomUtil.randomLong());
loginUser.setIsSupAdmin(annotation.isSuperAdmin());
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(
loginUser, null, Collections.emptyList());
context.setAuthentication(authenticationToken);
return context;
}
}