@@ -5,8 +5,6 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum ;
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants ;
import cn.iocoder.yudao.framework.common.pojo.PageResult ;
import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils ;
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils ;
import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum ;
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest ;
import cn.iocoder.yudao.framework.test.core.util.RandomUtils ;
@@ -16,20 +14,20 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.Oper
import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO ;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO ;
import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper ;
import cn.iocoder.yudao.module.system.enums.common.SexEnum ;
import cn.iocoder.yudao.module.system.service.user.AdminUserService ;
import org.junit.jupiter.api.Test ;
import org.springframework.boot.test.mock.mockito.MockBean ;
import org.springframework.context.annotation.Import ;
import javax.annotation.Resource ;
import java.time.LocalDateTime ;
import java.util.Collections ;
import java.util.List ;
import static cn.hutool.core.util.RandomUtil.randomEle ;
import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST ;
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime ;
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime ;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId ;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals ;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId ;
import static org.junit.jupiter.api.Assertions.assertEquals ;
@@ -49,34 +47,28 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
@Test
public void testCreateOperateLogAsync ( ) {
String traceId = Tracer Utils. getTraceId ( ) ;
OperateLogCreateReqDTO reqVO = Random Utils . randomPojo ( OperateLogCreateReqDTO . class , o - > {
o . setTraceId ( traceId ) ;
o . setUserId ( randomLongId ( ) ) ;
o . setUserType ( randomEle ( UserTypeEnum . values ( ) ) . getValue ( ) ) ;
o . setExts ( MapUtil . < String , Object > builder ( " orderId " , randomLongId ( ) ) . build ( ) ) ;
} ) ;
OperateLogCreateReqDTO reqVO = Random Utils. randomPojo ( OperateLogCreateReqDTO . class ,
o - > o . setExts ( Map Util . < String , Object > builder ( " orderId " , randomLongId ( ) ) . build ( ) ) ) ;
// 执行service方法
// 调研
operateLogServiceImpl . createOperateLog ( reqVO ) ;
// 断言插入是否正确
OperateLogDO sysO perateLogDO = operateLogMapper . selectOne ( " trace_id " , traceId ) ;
assertPojoEquals ( reqVO , sysO perateLogDO) ;
// 断言
OperateLogDO o perateLogDO = operateLogMapper . selectOne ( null ) ;
assertPojoEquals ( reqVO , o perateLogDO) ;
}
@Test
public void testGetOperateLogPage ( ) {
// 构造测试数据
// 先构造用户
// mock( 用户信息)
AdminUserDO user = RandomUtils . randomPojo ( AdminUserDO . class , o - > {
o . setNickname ( " wangkai " ) ;
o . setSex ( SexEnum . MALE . getSex ( ) ) ;
o . setNickname ( " wang " ) ;
o . setStatus ( CommonStatusEnum . ENABLE . getStatus ( ) ) ;
} ) ;
when ( userService . getUsersByNickname ( " wangkai " ) ) . thenReturn ( Collections . singletonList ( user ) ) ;
when ( userService . getUsersByNickname ( " wang " ) ) . thenReturn ( Collections . singletonList ( user ) ) ;
Long userId = user . getId ( ) ;
// 构造操作日志
OperateLogDO sysO perateLogDO = RandomUtils . randomPojo ( OperateLogDO . class , o - > {
OperateLogDO o perateLogDO = RandomUtils . randomPojo ( OperateLogDO . class , o - > {
o . setUserId ( userId ) ;
o . setUserType ( randomEle ( UserTypeEnum . values ( ) ) . getValue ( ) ) ;
o . setModule ( " order " ) ;
@@ -85,50 +77,46 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
o . setResultCode ( GlobalErrorCodeConstants . SUCCESS . getCode ( ) ) ;
o . setExts ( MapUtil . < String , Object > builder ( " orderId " , randomLongId ( ) ) . build ( ) ) ;
} ) ;
operateLogMapper . insert ( sysO perateLogDO) ;
// 下面几个是不匹配的数据
// 随机 userId
operateLogMapper . insert ( ObjectUtils . cloneIgnoreId( sysO perateLogDO, logDO - > logDO . setUserId ( userId + 1 ) ) ) ;
// modul e 不同
operateLogMapper . insert ( ObjectUtils . cloneIgnoreId( sysO perateLogDO, logDO - > logDO . setModule ( " user " ) ) ) ;
// typ e 不同
operateLogMapper . insert ( ObjectUtils . cloneIgnoreId( sysO perateLogDO, logDO - > logDO . setType ( OperateTypeEnum . IMPORT . getType ( ) ) ) ) ;
// createTim e 不同
operateLogMapper . insert ( ObjectUtils . cloneIgnoreId( sysO perateLogDO, logDO - > logDO . setStartTime ( buildTime ( 2021 , 2 , 6 ) ) ) ) ;
// resultCode 不同
operateLogMapper . insert ( ObjectUtils . cloneIgnoreId ( sysOperateLogDO , logDO - > logDO . setResultCode ( BAD_REQUEST . getCode ( ) ) ) ) ;
operateLogMapper . insert ( o perateLogDO) ;
// 测试 userId 不匹配
operateLogMapper . insert ( cloneIgnoreId ( operateLogDO , o - > o . setUserId ( userId + 1 ) ) ) ;
// 测试 module 不匹配
operateLogMapper . insert ( cloneIgnoreId ( o perateLogDO, o - > o . setModule ( " user " ) ) ) ;
// 测试 typ e 不匹配
operateLogMapper . insert ( cloneIgnoreId ( o perateLogDO, o - > o . setType ( OperateTypeEnum . IMPORT . getType ( ) ) ) ) ;
// 测试 createTim e 不匹配
operateLogMapper . insert ( cloneIgnoreId ( o perateLogDO, o - > o . setStartTime ( buildTime ( 2021 , 2 , 6 ) ) ) ) ;
// 测试 resultCod e 不匹配
operateLogMapper . insert ( cloneIgnoreId ( o perateLogDO, o - > o . setResultCode ( BAD_REQUEST . getCode ( ) ) ) ) ;
// 构造调用参数
OperateLogPageReqVO reqVO = new OperateLogPageReqVO ( ) ;
reqVO . setUserNickname ( " wangkai " ) ;
reqVO . setUserNickname ( " wang " ) ;
reqVO . setModule ( " order " ) ;
reqVO . setType ( OperateTypeEnum . CREATE . getType ( ) ) ;
reqVO . setStartTime ( ( new LocalDateTime [ ] { buildTime ( 2021 , 3 , 5 ) ,
buildTime ( 2021 , 3 , 7 ) } ) ) ;
reqVO . setStartTime ( buildBetweenTime ( 2021 , 3 , 5 , 2021 , 3 , 7 ) ) ;
reqVO . setSuccess ( true ) ;
// 调用service方法
// 调用
PageResult < OperateLogDO > pageResult = operateLogServiceImpl . getOperateLogPage ( reqVO ) ;
// 断言,只查到了一条符合条件的
assertEquals ( 1 , pageResult . getTotal ( ) ) ;
assertEquals ( 1 , pageResult . getList ( ) . size ( ) ) ;
assertPojoEquals ( sysO perateLogDO, pageResult . getList ( ) . get ( 0 ) ) ;
assertPojoEquals ( o perateLogDO, pageResult . getList ( ) . get ( 0 ) ) ;
}
@Test
public void testGetOperateLogs ( ) {
// 构造测试数据
// 先构造用户
// mock( 用户信息)
AdminUserDO user = RandomUtils . randomPojo ( AdminUserDO . class , o - > {
o . setNickname ( " wangkai " ) ;
o . setSex ( SexEnum . MALE . getSex ( ) ) ;
o . setNickname ( " wang " ) ;
o . setStatus ( CommonStatusEnum . ENABLE . getStatus ( ) ) ;
} ) ;
when ( userService . getUsersByNickname ( " wangkai " ) ) . thenReturn ( Collections . singletonList ( user ) ) ;
when ( userService . getUsersByNickname ( " wang " ) ) . thenReturn ( Collections . singletonList ( user ) ) ;
Long userId = user . getId ( ) ;
// 构造操作日志
OperateLogDO sysO perateLogDO = RandomUtils . randomPojo ( OperateLogDO . class , o - > {
OperateLogDO o perateLogDO = RandomUtils . randomPojo ( OperateLogDO . class , o - > {
o . setUserId ( userId ) ;
o . setUserType ( randomEle ( UserTypeEnum . values ( ) ) . getValue ( ) ) ;
o . setModule ( " order " ) ;
@@ -137,33 +125,31 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
o . setResultCode ( GlobalErrorCodeConstants . SUCCESS . getCode ( ) ) ;
o . setExts ( MapUtil . < String , Object > builder ( " orderId " , randomLongId ( ) ) . build ( ) ) ;
} ) ;
operateLogMapper . insert ( sysO perateLogDO) ;
// 下面几个是不匹配的数据
// 随机 userId
operateLogMapper . insert ( ObjectUtils . cloneIgnoreId( sysO perateLogDO, logDO - > logDO . setUserId ( userId + 1 ) ) ) ;
// modul e 不同
operateLogMapper . insert ( ObjectUtils . cloneIgnoreId( sysO perateLogDO, logDO - > logDO . setModule ( " user " ) ) ) ;
// typ e 不同
operateLogMapper . insert ( ObjectUtils . cloneIgnoreId( sysO perateLogDO, logDO - > logDO . setType ( OperateTypeEnum . IMPORT . getType ( ) ) ) ) ;
// createTim e 不同
operateLogMapper . insert ( ObjectUtils . cloneIgnoreId( sysO perateLogDO, logDO - > logDO . setStartTime ( buildTime ( 2021 , 2 , 6 ) ) ) ) ;
// resultCode 不同
operateLogMapper . insert ( ObjectUtils . cloneIgnoreId ( sysOperateLogDO , logDO - > logDO . setResultCode ( BAD_REQUEST . getCode ( ) ) ) ) ;
operateLogMapper . insert ( o perateLogDO) ;
// 测试 userId 不匹配
operateLogMapper . insert ( cloneIgnoreId ( operateLogDO , o - > o . setUserId ( userId + 1 ) ) ) ;
// 测试 module 不匹配
operateLogMapper . insert ( cloneIgnoreId ( o perateLogDO, o - > o . setModule ( " user " ) ) ) ;
// 测试 typ e 不匹配
operateLogMapper . insert ( cloneIgnoreId ( o perateLogDO, o - > o . setType ( OperateTypeEnum . IMPORT . getType ( ) ) ) ) ;
// 测试 createTim e 不匹配
operateLogMapper . insert ( cloneIgnoreId ( o perateLogDO, o - > o . setStartTime ( buildTime ( 2021 , 2 , 6 ) ) ) ) ;
// 测试 resultCod e 不匹配
operateLogMapper . insert ( cloneIgnoreId ( o perateLogDO, o - > o . setResultCode ( BAD_REQUEST . getCode ( ) ) ) ) ;
// 构造调用参数
OperateLogExportReqVO reqVO = new OperateLogExportReqVO ( ) ;
reqVO . setUserNickname ( " wangkai " ) ;
reqVO . setUserNickname ( " wang " ) ;
reqVO . setModule ( " order " ) ;
reqVO . setType ( OperateTypeEnum . CREATE . getType ( ) ) ;
reqVO . setStartTime ( ( new LocalDateTime [ ] { buildTime ( 2021 , 3 , 5 ) , buildTime ( 2021 , 3 , 7 ) } ) );
reqVO . setStartTime ( buildBetween Time ( 2021 , 3 , 5 , 2021 , 3 , 7 ) ) ;
reqVO . setSuccess ( true ) ;
// 调用 service 方法
List < OperateLogDO > list = operateLogServiceImpl . getOperateLogs ( reqVO ) ;
List < OperateLogDO > list = operateLogServiceImpl . getOperateLogList ( reqVO ) ;
// 断言,只查到了一条符合条件的
assertEquals ( 1 , list . size ( ) ) ;
assertPojoEquals ( sysO perateLogDO, list . get ( 0 ) ) ;
assertPojoEquals ( o perateLogDO, list . get ( 0 ) ) ;
}
}