Skip to content

Commit 2d1e4c2

Browse files
committed
数据权限新增子查询测试
1 parent 8b2b779 commit 2d1e4c2

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/plugins/inner/DataPermissionInterceptorTest.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class DataPermissionInterceptorTest {
2424
private static String TEST_2 = "com.baomidou.userMapper.selectById";
2525
private static String TEST_3 = "com.baomidou.roleMapper.selectByCompanyId";
2626
private static String TEST_4 = "com.baomidou.roleMapper.selectById";
27+
private static String TEST_5 = "com.baomidou.roleMapper.selectByRoleId";
2728

2829
/**
2930
* 这里可以理解为数据库配置的数据权限规则 SQL
@@ -34,6 +35,7 @@ public class DataPermissionInterceptorTest {
3435
put(TEST_2, "u.state=1 and u.amount > 1000");
3536
put(TEST_3, "companyId in (1,2,3)");
3637
put(TEST_4, "username like 'abc%'");
38+
put(TEST_5, "id=1 and role_id in (select id from sys_role)");
3739
}
3840
};
3941

@@ -45,7 +47,7 @@ public Expression getSqlSegment(Expression where, String mappedStatementId) {
4547
String sqlSegment = sqlSegmentMap.get(mappedStatementId);
4648
Expression sqlSegmentExpression = CCJSqlParserUtil.parseCondExpression(sqlSegment);
4749
if (null != where) {
48-
System.out.println("原 where = " + where.toString());
50+
System.out.println("原 where : " + where.toString());
4951
if (mappedStatementId.equals(TEST_4)) {
5052
// 这里测试返回 OR 条件
5153
return new OrExpression(where, sqlSegmentExpression);
@@ -84,6 +86,12 @@ void test4() {
8486
"SELECT * FROM sys_role WHERE id = 3 OR username LIKE 'abc%'");
8587
}
8688

89+
@Test
90+
void test5() {
91+
assertSql(TEST_5, "select * from sys_role where id=3",
92+
"SELECT * FROM sys_role WHERE id = 3 AND id = 1 AND role_id IN (SELECT id FROM sys_role)");
93+
}
94+
8795
void assertSql(String mappedStatementId, String sql, String targetSql) {
8896
assertThat(interceptor.parserSingle(sql, mappedStatementId)).isEqualTo(targetSql);
8997
}

0 commit comments

Comments
 (0)