package com.alibaba.druid.bvt.console; import org.junit.Assert; import junit.framework.TestCase; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; import com.alibaba.druid.support.console.Option; import com.alibaba.druid.support.console.OptionParseException; public class OptionTest extends TestCase { public void test_parseOptions() throws Exception { String[] cmdArray = {"-sql","-ds", "200"}; Option opt = Option.parseOptions(cmdArray); Assert.assertNotNull(opt); Assert.assertTrue(opt.printSqlData()); Assert.assertTrue(opt.printDataSourceData()); Assert.assertFalse(opt.printActiveConn()); Assert.assertEquals(opt.getPid(), 200); cmdArray = new String[] {"-act", "738"}; opt = Option.parseOptions(cmdArray); Assert.assertNotNull(opt); Assert.assertFalse(opt.printSqlData()); Assert.assertFalse(opt.printDataSourceData()); Assert.assertTrue(opt.printActiveConn()); Assert.assertEquals(opt.getPid(), 738); cmdArray = new String[] {"-ds", "-detail", "1319"}; opt = Option.parseOptions(cmdArray); Assert.assertNotNull(opt); Assert.assertFalse(opt.printSqlData()); Assert.assertTrue(opt.printDataSourceData()); Assert.assertFalse(opt.printActiveConn()); Assert.assertTrue(opt.isDetailPrint()); Assert.assertEquals(opt.getPid(), 1319); cmdArray = new String[] {"-sql","-id","5","200"}; opt = Option.parseOptions(cmdArray); Assert.assertNotNull(opt); Assert.assertEquals(opt.getId(), 5); Assert.assertEquals(opt.getPid(), 200); cmdArray = new String[] {"-sql","-id","5","200", "3"}; opt = Option.parseOptions(cmdArray); Assert.assertNotNull(opt); Assert.assertEquals(opt.getId(), 5); Assert.assertEquals(opt.getPid(), 200); Assert.assertEquals(opt.getInterval(), 3); cmdArray = new String[] {"-ds","-id","5", "-detail", "200", "3"}; opt = Option.parseOptions(cmdArray); Assert.assertNotNull(opt); Assert.assertEquals(opt.getId(), 5); Assert.assertEquals(opt.getPid(), 200); Assert.assertEquals(opt.getInterval(), 3); Assert.assertEquals(opt.isDetailPrint(), true); //not enough arguments cmdArray = new String[] {}; try { opt = Option.parseOptions(cmdArray); } catch (OptionParseException e) { System.out.println(e.getMessage()); Assert.assertNotNull(e); } //need pid cmdArray = new String[] {"-ds"}; try { opt = Option.parseOptions(cmdArray); } catch (Exception e) { System.out.println(e.getMessage()); Assert.assertNotNull(e); } } public void test_printHelp() throws Exception { Option.printHelp(); } public static void main(String[] args) { Result result = JUnitCore.runClasses(OptionTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } } }