package com.alibaba.druid.bvt.console;
import java.lang.management.ManagementFactory;
import junit.framework.TestCase;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.console.DruidStat;
import com.alibaba.druid.support.console.Option;
import com.alibaba.druid.util.JdbcUtils;
public class DruidStatNullDataTest extends TestCase {
private DruidDataSource dataSource;
private static String getSelfPid() {
String pid = ManagementFactory.getRuntimeMXBean().getName().split("@")[0];
return pid;
}
protected void createDs() throws Exception {
dataSource = new DruidDataSource();
dataSource.setMinIdle(1);
dataSource.setUrl("jdbc:h2:mem:test;");
dataSource.setTestOnBorrow(false);
dataSource.setFilters("stat");
dataSource.setRemoveAbandoned(true);
dataSource.setRemoveAbandonedTimeout(600);
//do not execute any sql, just init the datasource.
dataSource.init();
}
protected void dispose() throws Exception {
JdbcUtils.close(dataSource);
}
public void test_printDruidStat() throws Exception {
createDs();
String pid = getSelfPid();
String[] cmdArray = {"-sql", pid};
Option opt = Option.parseOptions(cmdArray);
DruidStat.printDruidStat(opt);
cmdArray = new String[] {"-act", pid};
opt = Option.parseOptions(cmdArray);
DruidStat.printDruidStat(opt);
dispose();
}
public static void main(String[] args) {
Result result = JUnitCore.runClasses(DruidStatNullDataTest.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
}
}