Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
458a0427
提交
458a0427
authored
2月 02, 2023
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善 SensitiveWordServiceImpl 单元测试
上级
9185e5d2
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
44 行增加
和
12 行删除
+44
-12
SensitiveWordServiceImpl.java
...ystem/service/sensitiveword/SensitiveWordServiceImpl.java
+10
-7
SensitiveWordServiceImplTest.java
...m/service/sensitiveword/SensitiveWordServiceImplTest.java
+34
-5
没有找到文件。
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java
浏览文件 @
458a0427
...
...
@@ -25,6 +25,7 @@ import javax.annotation.Resource;
import
java.util.*
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
common
.
exception
.
util
.
ServiceExceptionUtil
.
exception
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
common
.
util
.
collection
.
CollectionUtils
.
filterList
;
import
static
cn
.
iocoder
.
yudao
.
module
.
system
.
enums
.
ErrorCodeConstants
.
SENSITIVE_WORD_EXISTS
;
import
static
cn
.
iocoder
.
yudao
.
module
.
system
.
enums
.
ErrorCodeConstants
.
SENSITIVE_WORD_NOT_EXISTS
;
...
...
@@ -85,7 +86,7 @@ public class SensitiveWordServiceImpl implements SensitiveWordService {
private
void
initSensitiveWordTrie
(
List
<
SensitiveWordDO
>
wordDOs
)
{
// 过滤禁用的敏感词
wordDOs
=
CollectionUtils
.
filterList
(
wordDOs
,
word
->
word
.
getStatus
().
equals
(
CommonStatusEnum
.
ENABLE
.
getStatus
()));
wordDOs
=
filterList
(
wordDOs
,
word
->
word
.
getStatus
().
equals
(
CommonStatusEnum
.
ENABLE
.
getStatus
()));
// 初始化默认的 defaultSensitiveWordTrie
this
.
defaultSensitiveWordTrie
=
new
SimpleTrie
(
CollectionUtils
.
convertList
(
wordDOs
,
SensitiveWordDO:
:
getName
));
...
...
@@ -107,7 +108,8 @@ public class SensitiveWordServiceImpl implements SensitiveWordService {
@Override
public
Long
createSensitiveWord
(
SensitiveWordCreateReqVO
createReqVO
)
{
// 校验唯一性
checkSensitiveWordNameUnique
(
null
,
createReqVO
.
getName
());
validateSensitiveWordNameUnique
(
null
,
createReqVO
.
getName
());
// 插入
SensitiveWordDO
sensitiveWord
=
SensitiveWordConvert
.
INSTANCE
.
convert
(
createReqVO
);
sensitiveWordMapper
.
insert
(
sensitiveWord
);
...
...
@@ -119,8 +121,9 @@ public class SensitiveWordServiceImpl implements SensitiveWordService {
@Override
public
void
updateSensitiveWord
(
SensitiveWordUpdateReqVO
updateReqVO
)
{
// 校验唯一性
checkSensitiveWordExists
(
updateReqVO
.
getId
());
checkSensitiveWordNameUnique
(
updateReqVO
.
getId
(),
updateReqVO
.
getName
());
validateSensitiveWordExists
(
updateReqVO
.
getId
());
validateSensitiveWordNameUnique
(
updateReqVO
.
getId
(),
updateReqVO
.
getName
());
// 更新
SensitiveWordDO
updateObj
=
SensitiveWordConvert
.
INSTANCE
.
convert
(
updateReqVO
);
sensitiveWordMapper
.
updateById
(
updateObj
);
...
...
@@ -131,14 +134,14 @@ public class SensitiveWordServiceImpl implements SensitiveWordService {
@Override
public
void
deleteSensitiveWord
(
Long
id
)
{
// 校验存在
check
SensitiveWordExists
(
id
);
validate
SensitiveWordExists
(
id
);
// 删除
sensitiveWordMapper
.
deleteById
(
id
);
// 发送消息,刷新缓存
sensitiveWordProducer
.
sendSensitiveWordRefreshMessage
();
}
private
void
check
SensitiveWordNameUnique
(
Long
id
,
String
name
)
{
private
void
validate
SensitiveWordNameUnique
(
Long
id
,
String
name
)
{
SensitiveWordDO
word
=
sensitiveWordMapper
.
selectByName
(
name
);
if
(
word
==
null
)
{
return
;
...
...
@@ -152,7 +155,7 @@ public class SensitiveWordServiceImpl implements SensitiveWordService {
}
}
private
void
check
SensitiveWordExists
(
Long
id
)
{
private
void
validate
SensitiveWordExists
(
Long
id
)
{
if
(
sensitiveWordMapper
.
selectById
(
id
)
==
null
)
{
throw
exception
(
SENSITIVE_WORD_NOT_EXISTS
);
}
...
...
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImplTest.java
浏览文件 @
458a0427
...
...
@@ -16,13 +16,12 @@ 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.Arrays
;
import
java.util.List
;
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
.
common
.
util
.
object
.
ObjectUtils
.
max
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
test
.
core
.
util
.
AssertUtils
.
assertPojoEquals
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
test
.
core
.
util
.
AssertUtils
.
assertServiceException
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
test
.
core
.
util
.
RandomUtils
.
randomLongId
;
...
...
@@ -135,6 +134,36 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest {
assertServiceException
(()
->
sensitiveWordService
.
deleteSensitiveWord
(
id
),
SENSITIVE_WORD_NOT_EXISTS
);
}
@Test
public
void
testGetSensitiveWord
()
{
// mock 数据
SensitiveWordDO
sensitiveWord
=
randomPojo
(
SensitiveWordDO
.
class
);
sensitiveWordMapper
.
insert
(
sensitiveWord
);
// 准备参数
Long
id
=
sensitiveWord
.
getId
();
// 调用
SensitiveWordDO
dbSensitiveWord
=
sensitiveWordService
.
getSensitiveWord
(
id
);
// 断言
assertPojoEquals
(
sensitiveWord
,
dbSensitiveWord
);
}
@Test
public
void
testGetSensitiveWordList
()
{
// mock 数据
SensitiveWordDO
sensitiveWord01
=
randomPojo
(
SensitiveWordDO
.
class
);
sensitiveWordMapper
.
insert
(
sensitiveWord01
);
SensitiveWordDO
sensitiveWord02
=
randomPojo
(
SensitiveWordDO
.
class
);
sensitiveWordMapper
.
insert
(
sensitiveWord02
);
// 调用
List
<
SensitiveWordDO
>
list
=
sensitiveWordService
.
getSensitiveWordList
();
// 断言
assertEquals
(
2
,
list
.
size
());
assertEquals
(
sensitiveWord01
,
list
.
get
(
0
));
assertEquals
(
sensitiveWord02
,
list
.
get
(
1
));
}
@Test
public
void
testGetSensitiveWordPage
()
{
// mock 数据
...
...
@@ -156,7 +185,7 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest {
reqVO
.
setName
(
"笨"
);
reqVO
.
setTag
(
"论坛"
);
reqVO
.
setStatus
(
CommonStatusEnum
.
ENABLE
.
getStatus
());
reqVO
.
setCreateTime
(
(
new
LocalDateTime
[]{
buildTime
(
2022
,
2
,
1
),
buildTime
(
2022
,
2
,
12
)}
));
reqVO
.
setCreateTime
(
buildBetweenTime
(
2022
,
2
,
1
,
2022
,
2
,
12
));
// 调用
PageResult
<
SensitiveWordDO
>
pageResult
=
sensitiveWordService
.
getSensitiveWordPage
(
reqVO
);
...
...
@@ -167,7 +196,7 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest {
}
@Test
public
void
testGetSensitiveWordList
()
{
public
void
testGetSensitiveWordList
_export
()
{
// mock 数据
SensitiveWordDO
dbSensitiveWord
=
randomPojo
(
SensitiveWordDO
.
class
,
o
->
{
// 等会查询到
o
.
setName
(
"笨蛋"
);
...
...
@@ -187,7 +216,7 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest {
reqVO
.
setName
(
"笨"
);
reqVO
.
setTag
(
"论坛"
);
reqVO
.
setStatus
(
CommonStatusEnum
.
ENABLE
.
getStatus
());
reqVO
.
setCreateTime
(
(
new
LocalDateTime
[]{
buildTime
(
2022
,
2
,
1
),
buildTime
(
2022
,
2
,
12
)}
));
reqVO
.
setCreateTime
(
buildBetweenTime
(
2022
,
2
,
1
,
2022
,
2
,
12
));
// 调用
List
<
SensitiveWordDO
>
list
=
sensitiveWordService
.
getSensitiveWordList
(
reqVO
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论