package com.jinhe.tss.component.support.test;
import java.io.File;
import java.sql.Connection;
import java.sql.Statement;
import java.util.List;
import org.apache.log4j.Logger;
import com.jinhe.tss.component.log.maintain.LogQueryCondition;
import com.jinhe.tss.component.log.maintain.LogService;
import com.jinhe.tss.core.cachepool.extend.connection.DBHelper;
import com.jinhe.tss.core.persistence.IDao;
import com.jinhe.tss.core.util.FileHelper;
import com.jinhe.tss.core.util.URLUtil;
public class TestUtil {
protected static Logger log = Logger.getLogger(TestUtil.class);
public static String DYN_ENTITY_CONFIG_PATH = "template/dyninit/";
public static String getInitSQLDir() {
String path = URLUtil.getResourceFileUrl("com/jinhe/tss").getPath();
return path.substring(1, path.indexOf("jinhe-tss") + 9) + "/tss-webapp/sql";
}
public static void excuteSQL(String sqlDir) {
log.info("正在执行目录:" + sqlDir+ "下的SQL脚本。。。。。。");
try {
Connection conn = DBHelper.getConnection();
Statement stat = conn.createStatement();
List<File> sqlFiles = FileHelper.listFilesByTypeDeeply(".sql", new File(sqlDir));
for(File sqlFile : sqlFiles) {
stat.execute(FileHelper.readFile(sqlFile));
log.info("SQL脚本:" + sqlFile+ " 执行完毕。");
}
log.info("成功执行目录:" + sqlDir+ "下的SQL脚本!");
stat.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("目录:" + sqlDir+ "下的SQL脚本执行出错:", e);
}
}
public static int printLogs(LogService logService) {
LogQueryCondition condition = new LogQueryCondition();
Object[] result = logService.getLogsByCondition(condition);
List<?> logs = (List<?>) result[0];
Integer logCount = (Integer) result[1];
log.debug("本次测试共生成了 " + logCount + " 条日志");
for(Object temp : logs) {
log.debug(temp);
}
log.debug("\n");
return logs.size();
}
public static void printEntity(IDao<?> dao, String entity) {
List<?> list = dao.getEntities("from " + entity );
log.debug("表【" + entity + "】的所有记录:");
for(Object temp : list) {
log.debug(temp);
}
log.debug("\n");
}
}