mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-08 01:28:24 +08:00
权限入口添加单元测试
This commit is contained in:
parent
978151a53a
commit
31a58c8b7f
@ -42,6 +42,11 @@ public class Account {
|
|||||||
@Column(isLogicDelete = true)
|
@Column(isLogicDelete = true)
|
||||||
private Boolean isDelete;
|
private Boolean isDelete;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
private String insertUserId;
|
||||||
|
|
||||||
|
|
||||||
public Long getId() {
|
public Long getId() {
|
||||||
return id;
|
return id;
|
||||||
@ -99,4 +104,11 @@ public class Account {
|
|||||||
isDelete = delete;
|
isDelete = delete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getInsertUserId() {
|
||||||
|
return insertUserId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInsertUserId(String insertUserId) {
|
||||||
|
this.insertUserId = insertUserId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,96 @@
|
|||||||
|
package com.mybatisflex.coretest;
|
||||||
|
|
||||||
|
import com.mybatisflex.core.dialect.DbType;
|
||||||
|
import com.mybatisflex.core.dialect.DialectFactory;
|
||||||
|
import com.mybatisflex.core.dialect.IDialect;
|
||||||
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
|
import com.mybatisflex.core.row.Row;
|
||||||
|
import com.mybatisflex.core.row.RowKey;
|
||||||
|
import com.mybatisflex.core.row.RowUtil;
|
||||||
|
import com.mybatisflex.core.table.TableInfoFactory;
|
||||||
|
import com.mybatisflex.coretest.auth.AuthDialectImpl;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static com.mybatisflex.coretest.table.AccountTableDef.ACCOUNT;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 权限测试
|
||||||
|
* @author zhang
|
||||||
|
* @since 2023/12/17
|
||||||
|
*/
|
||||||
|
public class AuthTest {
|
||||||
|
|
||||||
|
private IDialect dialect;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void init() {
|
||||||
|
DialectFactory.registerDialect(DbType.MYSQL, new AuthDialectImpl());
|
||||||
|
dialect = DialectFactory.getDialect();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
// 1.单个删除
|
||||||
|
assert "DELETE FROM `tb_account` WHERE `id` = ? AND `insert_user_id` = 1"
|
||||||
|
.equals(dialect.forDeleteById(ACCOUNT.getSchema(), ACCOUNT.getTableName(), new String[]{ACCOUNT.ID.getName()}));
|
||||||
|
// 2.批量删除
|
||||||
|
assert "DELETE FROM `tb_account` WHERE `id` = ? AND `insert_user_id` = 1"
|
||||||
|
.equals(dialect.forDeleteBatchByIds(ACCOUNT.getSchema(), ACCOUNT.getTableName(), new String[]{ACCOUNT.ID.getName()}, new Object[]{1L}));
|
||||||
|
// 3.查询
|
||||||
|
QueryWrapper deleteWrapper =
|
||||||
|
QueryWrapper.create(new Account()).where(ACCOUNT.ID.eq(1));
|
||||||
|
assert "DELETE FROM `tb_account` WHERE `id` = ? AND `sex` = ? AND `is_normal` = ? AND `insert_user_id` = ?"
|
||||||
|
.equals(dialect.forDeleteByQuery(deleteWrapper));
|
||||||
|
// 4.更新
|
||||||
|
assert "UPDATE `tb_account` SET `age` = ? WHERE `id` = ? AND `insert_user_id` = 1"
|
||||||
|
.equals(dialect.forUpdateById(ACCOUNT.getSchema(), ACCOUNT.getTableName(),
|
||||||
|
Row.ofKey(RowKey.AUTO).set(ACCOUNT.AGE, 18)));
|
||||||
|
// 5.更新
|
||||||
|
Row row = new Row();
|
||||||
|
row.set(ACCOUNT.AGE, 18);
|
||||||
|
QueryWrapper updateWrapper =
|
||||||
|
QueryWrapper.create(new Account()).where(ACCOUNT.ID.eq(1));
|
||||||
|
assert "UPDATE `tb_account` SET `age` = ? WHERE `id` = ? AND `sex` = ? AND `is_normal` = ? AND `insert_user_id` = ?"
|
||||||
|
.equals(dialect.forUpdateByQuery(updateWrapper, row));
|
||||||
|
// 6.ID查询
|
||||||
|
assert "SELECT * FROM `tb_account` WHERE `id` = ? AND `insert_user_id` = 1"
|
||||||
|
.equals(dialect.forSelectOneById(ACCOUNT.getSchema(), ACCOUNT.getTableName(), new String[]{ACCOUNT.ID.getName()}, new Object[]{1L}));
|
||||||
|
QueryWrapper queryWrapper =
|
||||||
|
QueryWrapper.create().select(ACCOUNT.ALL_COLUMNS).where(ACCOUNT.ID.eq(1));
|
||||||
|
// 7.query查询
|
||||||
|
assert "SELECT * FROM WHERE `id` = ? AND `insert_user_id` = ?"
|
||||||
|
.equals(dialect.forSelectByQuery(queryWrapper));
|
||||||
|
// 8.删除
|
||||||
|
assert "UPDATE `tb_account` SET `is_delete` = 1 WHERE `id` = ? AND `is_delete` = 0 AND `insert_user_id` = 1"
|
||||||
|
.equals(dialect.forDeleteEntityById(TableInfoFactory.ofEntityClass(Account.class)));
|
||||||
|
// 9.批量删除
|
||||||
|
assert "UPDATE `tb_account` SET `is_delete` = 1 WHERE (`id` = ? ) AND `is_delete` = 0 AND `insert_user_id` = 1"
|
||||||
|
.equals(dialect.forDeleteEntityBatchByIds(TableInfoFactory.ofEntityClass(Account.class), new String[]{ACCOUNT.ID.getName()}));
|
||||||
|
// 10.query删除
|
||||||
|
assert "UPDATE `tb_account` SET `is_delete` = 1 WHERE `id` = ? AND `insert_user_id` = ? AND `insert_user_id` = ?"
|
||||||
|
.equals(dialect.forDeleteEntityBatchByQuery(TableInfoFactory.ofEntityClass(Account.class), queryWrapper));
|
||||||
|
// 11.更新
|
||||||
|
Account account = new Account();
|
||||||
|
account.setAge(18);
|
||||||
|
assert "UPDATE `tb_account` SET `sex` = ? , `age` = ? , `is_normal` = ? WHERE `id` = ? AND `is_delete` = 0 AND `insert_user_id` = 1"
|
||||||
|
.equals(dialect.forUpdateEntity(TableInfoFactory.ofEntityClass(Account.class), account, true));
|
||||||
|
// 12.更新
|
||||||
|
assert "UPDATE `tb_account` SET `sex` = ? , `age` = ? , `is_normal` = ? WHERE `id` = ? AND `insert_user_id` = ? AND `insert_user_id` = ? AND `insert_user_id` = ?"
|
||||||
|
.equals(dialect.forUpdateEntityByQuery(TableInfoFactory.ofEntityClass(Account.class), account, true, queryWrapper));
|
||||||
|
// 13.ID查询
|
||||||
|
assert "SELECT * FROM `tb_account` WHERE `id` = ? AND `is_delete` = 0 AND `insert_user_id` = 1"
|
||||||
|
.equals(dialect.forSelectOneEntityById(TableInfoFactory.ofEntityClass(Account.class)));
|
||||||
|
// 14.查询
|
||||||
|
assert "SELECT `id`, `user_name`, `birthday`, `sex`, `age`, `is_normal`, `is_delete`, `insert_user_id` FROM `tb_account` WHERE (`id` = ? ) AND `is_delete` = 0 AND `insert_user_id` = 1"
|
||||||
|
.equals(dialect.forSelectEntityListByIds(TableInfoFactory.ofEntityClass(Account.class), new String[]{ACCOUNT.ID.getName()}));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testWrapper() {
|
||||||
|
// (为什么打印的sql是这样的 DELETE FROM WHERE `id` = ? AND `insert_user_id` = ?)
|
||||||
|
QueryWrapper deleteWrapper =
|
||||||
|
QueryWrapper.create().where(ACCOUNT.ID.eq(1));
|
||||||
|
System.out.println(dialect.forDeleteByQuery(deleteWrapper));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -111,6 +111,7 @@ public class LambdaSqlTest {
|
|||||||
" ` ac `.` age `,\n" +
|
" ` ac `.` age `,\n" +
|
||||||
" ` ac `.` is_normal `,\n" +
|
" ` ac `.` is_normal `,\n" +
|
||||||
" ` ac `.` is_delete `,\n" +
|
" ` ac `.` is_delete `,\n" +
|
||||||
|
" ` ac `.` insert_user_id `,\n" +
|
||||||
" ` ar `.` title `,\n" +
|
" ` ar `.` title `,\n" +
|
||||||
" ` ar `.` content `\n" +
|
" ` ar `.` content `\n" +
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
@ -138,6 +139,7 @@ public class LambdaSqlTest {
|
|||||||
" ` ac `.` age `,\n" +
|
" ` ac `.` age `,\n" +
|
||||||
" ` ac `.` is_normal `,\n" +
|
" ` ac `.` is_normal `,\n" +
|
||||||
" ` ac `.` is_delete `,\n" +
|
" ` ac `.` is_delete `,\n" +
|
||||||
|
" ` ac `.` insert_user_id `,\n" +
|
||||||
" ` ar `.*\n" +
|
" ` ar `.*\n" +
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
" ` tb_account ` AS ` ac `\n" +
|
" ` tb_account ` AS ` ac `\n" +
|
||||||
|
|||||||
@ -0,0 +1,34 @@
|
|||||||
|
package com.mybatisflex.coretest.auth;
|
||||||
|
|
||||||
|
import com.mybatisflex.core.dialect.OperateType;
|
||||||
|
import com.mybatisflex.core.dialect.impl.CommonsDialectImpl;
|
||||||
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
|
import com.mybatisflex.core.table.TableInfo;
|
||||||
|
|
||||||
|
import static com.mybatisflex.core.constant.SqlConsts.AND;
|
||||||
|
import static com.mybatisflex.core.constant.SqlConsts.EQUALS;
|
||||||
|
import static com.mybatisflex.coretest.table.AccountTableDef.ACCOUNT;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 权限处理
|
||||||
|
*/
|
||||||
|
public class AuthDialectImpl extends CommonsDialectImpl {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void prepareAuth(QueryWrapper queryWrapper, OperateType operateType) {
|
||||||
|
queryWrapper.and(ACCOUNT.INSERT_USER_ID.eq(1));
|
||||||
|
super.prepareAuth(queryWrapper, operateType);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void prepareAuth(String schema, String tableName, StringBuilder sql, OperateType operateType) {
|
||||||
|
sql.append(AND).append(wrap("insert_user_id")).append(EQUALS).append(1);
|
||||||
|
super.prepareAuth(schema, tableName, sql, operateType);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void prepareAuth(TableInfo tableInfo, StringBuilder sql, OperateType operateType) {
|
||||||
|
sql.append(AND).append(wrap("insert_user_id")).append(EQUALS).append(1);
|
||||||
|
super.prepareAuth(tableInfo, sql, operateType);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user