From 8c59640d6e5660cd80c0083d476dcd0f56a847cc Mon Sep 17 00:00:00 2001 From: hdchen <14106312@qq.com> Date: Tue, 14 May 2019 16:53:06 +0800 Subject: [PATCH] [RIP-10] modify test case of BrokerConsumeStatusSubCommand (#983) --- .../broker/BrokerConsumeStatsSubCommad.java | 23 ++++++++++++++++--- .../BrokerConsumeStatsSubCommadTest.java | 12 +++++++--- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/tools/src/main/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommad.java b/tools/src/main/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommad.java index aee2f6b5..0dee6dee 100644 --- a/tools/src/main/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommad.java +++ b/tools/src/main/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommad.java @@ -36,6 +36,24 @@ import org.apache.rocketmq.tools.command.SubCommandException; public class BrokerConsumeStatsSubCommad implements SubCommand { + private DefaultMQAdminExt defaultMQAdminExt; + + private DefaultMQAdminExt createMQAdminExt(RPCHook rpcHook) throws SubCommandException { + if (this.defaultMQAdminExt != null) { + return defaultMQAdminExt; + } else { + defaultMQAdminExt = new DefaultMQAdminExt(rpcHook); + defaultMQAdminExt.setInstanceName(Long.toString(System.currentTimeMillis())); + try { + defaultMQAdminExt.start(); + } + catch (Exception e) { + throw new SubCommandException(this.getClass().getSimpleName() + " command failed", e); + } + return defaultMQAdminExt; + } + } + @Override public String commandName() { return "brokerConsumeStats"; @@ -69,10 +87,9 @@ public class BrokerConsumeStatsSubCommad implements SubCommand { @Override public void execute(CommandLine commandLine, Options options, RPCHook rpcHook) throws SubCommandException { - DefaultMQAdminExt defaultMQAdminExt = new DefaultMQAdminExt(rpcHook); - defaultMQAdminExt.setInstanceName(Long.toString(System.currentTimeMillis())); try { - defaultMQAdminExt.start(); + defaultMQAdminExt = createMQAdminExt(rpcHook); + String brokerAddr = commandLine.getOptionValue('b').trim(); boolean isOrder = false; long timeoutMillis = 50000; diff --git a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommadTest.java b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommadTest.java index 48e65153..1089c1b7 100644 --- a/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommadTest.java +++ b/tools/src/test/java/org/apache/rocketmq/tools/command/broker/BrokerConsumeStatsSubCommadTest.java @@ -49,6 +49,9 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class BrokerConsumeStatsSubCommadTest { + + private static BrokerConsumeStatsSubCommad cmd = new BrokerConsumeStatsSubCommad(); + private static DefaultMQAdminExt defaultMQAdminExt; private static DefaultMQAdminExtImpl defaultMQAdminExtImpl; private static MQClientInstance mqClientInstance = MQClientManager.getInstance().getAndCreateMQClientInstance(new ClientConfig()); @@ -81,10 +84,13 @@ public class BrokerConsumeStatsSubCommadTest { public static void terminate() { } - @Ignore @Test - public void testExecute() throws SubCommandException { - BrokerConsumeStatsSubCommad cmd = new BrokerConsumeStatsSubCommad(); + public void testExecute() throws SubCommandException, IllegalAccessException, NoSuchFieldException { + + Field field = BrokerConsumeStatsSubCommad.class.getDeclaredField("defaultMQAdminExt"); + field.setAccessible(true); + field.set(cmd, defaultMQAdminExt); + Options options = ServerUtil.buildCommandlineOptions(new Options()); String[] subargs = new String[] {"-b 127.0.0.1:10911", "-t 3000", "-l 5", "-o true"}; final CommandLine commandLine = -- GitLab