SchedConfCLI extends Configured implements Tool { @VisibleForTesting void updateQueues(String args, SchedConfUpdateInfo updateInfo) { if (args == null) { return; } ArrayList<QueueConfigInfo> queueConfigInfos = new ArrayList<>(); for (String arg : args.split(";")) { queueConfigInfos.add(getQueueConfigInfo(arg)); } updateInfo.setUpdateQueueInfo(queueConfigInfos); } SchedConfCLI(); static void main(String[] args); @Override int run(String[] args);  }
@Test(timeout = 10000) public void testUpdateQueues() { SchedConfUpdateInfo schedUpdateInfo = new SchedConfUpdateInfo(); cli.updateQueues("root.a:a1=aVal1,a2=aVal2,a3=", schedUpdateInfo); QueueConfigInfo updateInfo = schedUpdateInfo.getUpdateQueueInfo().get(0); assertEquals("root.a", updateInfo.getQueue()); Map<String, String> params = updateInfo.getParams(); assertEquals(3, params.size()); assertEquals("aVal1", params.get("a1")); assertEquals("aVal2", params.get("a2")); assertNull(params.get("a3")); schedUpdateInfo = new SchedConfUpdateInfo(); cli.updateQueues("root.b:b1=bVal1;root.c:c1=cVal1", schedUpdateInfo); assertEquals(2, schedUpdateInfo.getUpdateQueueInfo().size()); QueueConfigInfo bUpdateInfo = schedUpdateInfo.getUpdateQueueInfo().get(0); assertEquals("root.b", bUpdateInfo.getQueue()); Map<String, String> bParams = bUpdateInfo.getParams(); assertEquals(1, bParams.size()); assertEquals("bVal1", bParams.get("b1")); QueueConfigInfo cUpdateInfo = schedUpdateInfo.getUpdateQueueInfo().get(1); assertEquals("root.c", cUpdateInfo.getQueue()); Map<String, String> cParams = cUpdateInfo.getParams(); assertEquals(1, cParams.size()); assertEquals("cVal1", cParams.get("c1")); }