package cn.org.rapid_framework.generator.ext.tableconfig.model;
import cn.org.rapid_framework.generator.GeneratorTestCase;
import cn.org.rapid_framework.generator.ext.tableconfig.builder.TableConfigXmlBuilder;
import cn.org.rapid_framework.generator.provider.db.sql.model.Sql;
import cn.org.rapid_framework.generator.util.FileHelper;
import cn.org.rapid_framework.generator.util.IOHelper;
import cn.org.rapid_framework.generator.util.test.GeneratorTestHelper;
public class MybatisTableConfigTest extends GeneratorTestCase {
static TableConfigSet tableConfigSet = new TableConfigXmlBuilder().parseFromXML("com.global.pkg", FileHelper.getFile("classpath:cn/org/rapid_framework/generator/ext/tableconfig/"), "user_info.xml");
public void test_gen_operation() throws Exception {
g.addTemplateRootDir("classpath:generator/template/rapid/operation/dal");
g.addTemplateRootDir("classpath:generator/template/rapid/share/dal");
String result = "";
TableConfig tableConfig = tableConfigSet.getBySqlName("user_info");
for(Sql sql : tableConfig.getSqls()) {
result = result + "\n" + GeneratorTestHelper.generateBy(g, Helper.newMapFromSql(sql, tableConfig));
}
System.out.println(result);
assertContains(result, "package com.company.project.user_info.operation.userinfo;");
assertContains(result, IOHelper.readFile(FileHelper.getFile("classpath:IbatisTableConfigTest/expectedParameterAndResult.txt"),"UTF-8"));
}
public void test_gen_TableConfig() throws Exception {
g.addTemplateRootDir("classpath:generator/template/rapid/table_config/dao_mybatis");
g.addTemplateRootDir("classpath:generator/template/rapid/share/dal");
String str = GeneratorTestHelper.generateBy(g, Helper.newMapFromTableConfig(tableConfigSet.getBySqlName("user_info")));
System.out.println(str);
assertContains(str,"public java.lang.Long insert(UserInfoDO userInfo) throws DataAccessException");
assertContains(str,"public java.lang.Long insertWithFunction(UserInfoDO userInfo) throws DataAccessException");
assertContains(str,"根据订单号查询订单");
assertContains(str,"public CountUsernameResult countUsername(Long userId ,com.iwallet.biz.common.util.money.Money age ,com.iwallet.biz.common.util.money.Money sex ,String maxUsername ,String minUsername) throws DataAccessException");
assertContains(str,"用户ID db_column: USER_ID ");
assertContains(str,"private Money sex = new Money(0,0);");
assertContains(str,IOHelper.readFile(FileHelper.getFile("classpath:MybatisTableConfigTest/expectedUserInfoDao.txt"),"UTF-8"));
assertContains(str,IOHelper.readFile(FileHelper.getFile("classpath:IbatisTableConfigTest/expectedUserInfoDO.txt"),"UTF-8"));
assertContains(str,IOHelper.readFile(FileHelper.getFile("classpath:MybatisTableConfigTest/expectedUserInfoMapper.xml"),"UTF-8"));
assertContains(str,"src/main/java/com/company/project/user_info/dataobject/UserInfoDO.java");
assertContains(str,"src/main/java/com/company/project/user_info/dao/UserInfoDao.java");
}
}