package cn.org.rapid_framework.generator.provider.db.model; import java.lang.reflect.InvocationTargetException; import java.util.Map; import junit.framework.TestCase; import cn.org.rapid_framework.generator.GeneratorConstants; import cn.org.rapid_framework.generator.GeneratorProperties; import cn.org.rapid_framework.generator.GeneratorTestCase; import cn.org.rapid_framework.generator.provider.db.table.TableFactory; import cn.org.rapid_framework.generator.provider.db.table.model.Column; import cn.org.rapid_framework.generator.provider.db.table.model.Table; import cn.org.rapid_framework.generator.util.BeanHelper; public class TableTest extends TestCase{ public void testTable() throws Exception { new GeneratorTestCase().runSqlScripts(); Table t = TableFactory.getInstance().getTable("USER_INFO"); t.getColumnByName("username").setHasOne("user_info(username)"); //Table t2 = ObjectHelper.deepClone(t); print(t); System.out.println("\n\n column: \n"); print(t.getColumns().iterator().next()); printForTableConfig(t.getColumns().iterator().next()); } private void print(Object o) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException { Map map = BeanHelper.describe(o); System.out.println("|| *属性* || *描述* || *示例值* ||"); for(Object key : map.keySet()) { System.out.println(String.format("||*%s*|| ||%s||",key,map.get(key))); } } private void printForTableConfig(Column o) throws IllegalAccessException,InvocationTargetException, NoSuchMethodException { Map map = BeanHelper.describe(o); System.out.println("|| *属性* || *描述* || *示例值* ||"); for(Object key : map.keySet()) { if(map.get(key) instanceof Boolean) { System.out.println(String.format("<%s>${c.%s?string}</%s>",key,key,map.get(key))); }else { System.out.println(String.format("<%s>${c.%s!}</%s>",key,key,map.get(key))); } } } public void test_remove_table_prefix() { GeneratorProperties.setProperty(GeneratorConstants.TABLE_REMOVE_PREFIXES, "t_,v_"); Table table = new Table(); table.setSqlName("t_user_info"); assertEquals("UserInfo",table.getClassName()); table.setSqlName("v_user"); assertEquals("User",table.getClassName()); table.setSqlName("diy_user"); assertEquals("DiyUser",table.getClassName()); } public void test_alipay_dalgen_rule() { GeneratorProperties.setProperty(GeneratorConstants.TABLE_NAME_SINGULARIZE, "true"); Table table = new Table(); table.setSqlName("bashes"); // assertEquals("dalgen是这种规则","Bashe",table.getClassName()); //TODO dalgen是这种规则 } public void test_TABLE_NAME_SINGULARIZE() { GeneratorProperties.setProperty(GeneratorConstants.TABLE_NAME_SINGULARIZE, "true"); Table table = new Table(); table.setSqlName("bashes"); assertEquals("Bash",table.getClassName()); table.setSqlName("cuStomeRs"); assertEquals("CuStomeR",table.getClassName()); GeneratorProperties.setProperty(GeneratorConstants.TABLE_REMOVE_PREFIXES, "t_,v_"); table.setSqlName("t_user_infos"); assertEquals("UserInfo",table.getClassName()); GeneratorProperties.setProperty(GeneratorConstants.TABLE_NAME_SINGULARIZE, "false"); table.setSqlName("bashes"); assertEquals("Bashes",table.getClassName()); table.setSqlName("cuStomeRs"); assertEquals("CuStomeRs",table.getClassName()); GeneratorProperties.setProperty(GeneratorConstants.TABLE_REMOVE_PREFIXES, "t_,v_"); table.setSqlName("t_user_infos"); assertEquals("UserInfos",table.getClassName()); } }