test: update test

This commit is contained in:
Michael Yang 2024-10-05 15:09:08 +08:00
parent 9f142276da
commit a221833742
2 changed files with 23 additions and 11 deletions

View File

@ -20,6 +20,7 @@ import com.mybatisflex.core.MybatisFlexBootstrap;
import com.mybatisflex.core.audit.AuditManager;
import com.mybatisflex.core.audit.ConsoleMessageCollector;
import com.mybatisflex.core.datasource.DataSourceKey;
import com.mybatisflex.core.logicdelete.LogicDeleteManager;
import com.mybatisflex.core.mybatis.Mappers;
import com.mybatisflex.core.query.If;
import com.mybatisflex.core.query.QueryColumnBehavior;
@ -30,6 +31,7 @@ import com.mybatisflex.core.update.UpdateChain;
import com.mybatisflex.core.update.UpdateWrapper;
import com.mybatisflex.core.util.UpdateEntity;
import com.mybatisflex.mapper.ArticleMapper;
import com.mybatisflex.test.table.ArticleTableDef;
import org.apache.ibatis.logging.stdout.StdOutImpl;
import org.assertj.core.api.WithAssertions;
import org.assertj.core.data.Index;
@ -236,29 +238,36 @@ public class AccountNativeTest implements WithAssertions {
*/
@Test
public void testGiteeIssue_I7QD29() {
LogicDeleteManager.execWithoutLogicDelete(()->{
QueryWrapper queryWrapper = QueryWrapper.create();
ArticleTableDef a1 = ARTICLE.as("a1");
ArticleTableDef a2 = ARTICLE.as("a2");
queryWrapper.from(ACCOUNT)
.leftJoin(ARTICLE).as("a1").on(ACCOUNT.ID.eq(ARTICLE.ACCOUNT_ID))
.leftJoin(ARTICLE).as("a2").on(ACCOUNT.ID.eq(ARTICLE.ACCOUNT_ID))
.leftJoin(a1).on(ACCOUNT.ID.eq(a1.ACCOUNT_ID))
.leftJoin(a2).on(ACCOUNT.ID.eq(a2.ACCOUNT_ID))
.where(ACCOUNT.ID.ge(1));
List<Article> accounts = articleMapper.selectListByQuery(queryWrapper);
accounts = articleMapper.selectListByQuery(queryWrapper);
String expectSql = "SELECT * FROM `tb_account` " +
"LEFT JOIN `tb_article` AS `a1` ON (`tb_account`.`id` = `a1`.`account_id`) AND `a1`.`is_delete` = 0 " +
"LEFT JOIN `tb_article` AS `a2` ON (`tb_account`.`id` = `a1`.`account_id`) AND `a2`.`is_delete` = 0 " +
"WHERE (`tb_account`.`id` >= 1) AND `tb_account`.`is_delete` = 0";
"LEFT JOIN `tb_article` AS `a1` ON `tb_account`.`id` = `a1`.`account_id` " +
"LEFT JOIN `tb_article` AS `a2` ON `tb_account`.`id` = `a2`.`account_id` " +
"WHERE `tb_account`.`id` >= 1";
// "WHERE `tb_account`.`id` >= 1";
//SELECT * FROM `tb_account`
// LEFT JOIN `tb_article` AS `a1` ON (`tb_account`.`id` = `a1`.`account_id`) AND `a1`.`is_delete` = 0
// LEFT JOIN `tb_article` AS `a2` ON (`tb_account`.`id` = `a1`.`account_id`) AND `a2`.`is_delete` = 0
// WHERE `tb_account`.`id` >= 1
System.out.println("aa>>11: \"" + queryWrapper.toSQL()+"\"");
System.out.println("aa>>22: \"" + expectSql+"\"");
// SELECT * FROM `tb_account`
// LEFT JOIN `tb_article` AS `a1` ON (`tb_account`.`id` = `a1`.`account_id`) AND `a1`.`is_delete` = 0
// LEFT JOIN `tb_article` AS `a2` ON (`tb_account`.`id` = `a1`.`account_id`) AND `a2`.`is_delete` = 0
// WHERE `tb_account`.`id` >= 1
// assertThat(queryWrapper.toSQL()).isEqualTo(expectSql);
assertThat(accounts).hasSize(9);
assertThat(queryWrapper.toSQL()).isEqualTo(expectSql);
// assertThat(accounts).hasSize(9);
});
}
/**

View File

@ -44,14 +44,16 @@ public class EnumTest implements WithAssertions {
QueryWrapper query = new QueryWrapper()
.select()
.from(ACCOUNT).where(ACCOUNT.SEX.in(Sex.MALE, Sex.FEMALE));
// 注意此处虽然显示是MALEFEMALE但是如果使用了枚举的typeHandler实际sql执行时会使用typeHandler进行处理
assertThat(query.toSQL()).isEqualTo("SELECT * FROM `tb_account` WHERE `sex` IN ('MALE', 'FEMALE')");
System.out.println("sql >>aa: " + query.toSQL());
assertThat(query.toSQL()).isEqualTo("SELECT * FROM `tb_account` WHERE `sex` IN (MALE, FEMALE)");
List<Account> list = accountMapper.selectListByQuery(query);
assertThat(list).isNotNull();
for (Account account : list) {
assertThat(account.getSex()).isIn(Sex.MALE, Sex.FEMALE);
}
}
@Test
public void test_create_entity_with_enum_type() {
Account account = new Account();
@ -59,13 +61,14 @@ public class EnumTest implements WithAssertions {
QueryWrapper queryWrapper = QueryWrapper.create(account);
String sql = queryWrapper.toSQL();
System.out.println(sql);
// 注意此处虽然显示是MALE但是如果使用了枚举的typeHandler实际sql执行时会使用typeHandler进行处理
assertThat(sql).isEqualTo("SELECT `id`, `user_name`, `age`, `birthday`, `sex` FROM `tb_account` WHERE `sex` = 'MALE'");
List<Account> list = accountMapper.selectListByQuery(queryWrapper);
assertThat(list).isNotNull();
for (Account item : list) {
assertThat(item.getSex()).isEqualTo(Sex.MALE);
}
assertThat(sql).isEqualTo("SELECT `id`, `user_name`, `age`, `birthday`, `sex` FROM `tb_account` WHERE `sex` = 1");
}
}