diff --git a/tools/src/test/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtTest.java b/tools/src/test/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtTest.java index 607abd90969..dc5642f88c2 100644 --- a/tools/src/test/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtTest.java +++ b/tools/src/test/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtTest.java @@ -28,7 +28,6 @@ import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; -import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import org.apache.rocketmq.client.ClientConfig; import org.apache.rocketmq.client.exception.MQBrokerException; @@ -515,28 +514,34 @@ public void testSearchOffset() throws Exception { @Test public void testSearchOffsetWithSpecificBoundaryType() throws Exception { - - String namesrvAddr = "127.0.0.1:9876"; - String topic = "test-topic"; - - DefaultMQAdminExt mqAdminExt = new DefaultMQAdminExt(); - mqAdminExt.setInstanceName(UUID.randomUUID().toString()); - mqAdminExt.setNamesrvAddr(namesrvAddr); - - mqAdminExt.start(); - List timeSpanList = mqAdminExt.queryConsumeTimeSpan(topic, null); - if (timeSpanList != null && timeSpanList.size() > 0) { - for (QueueTimeSpan timeSpan: timeSpanList) { - MessageQueue mq = timeSpan.getMessageQueue(); - long maxOffset = mqAdminExt.maxOffset(mq); - long minOffset = mqAdminExt.minOffset(mq); - // if there is at least one message in queue, the maxOffset returns the queue's latest offset + 1 - assertThat((maxOffset == 0 ? 0 : maxOffset - 1) == mqAdminExt.searchUpperBoundaryOffset(mq, timeSpan.getMaxTimeStamp())).isTrue(); - assertThat(minOffset == mqAdminExt.searchLowerBoundaryOffset(mq, timeSpan.getMinTimeStamp())).isTrue(); - } + // do mock + DefaultMQAdminExt mockDefaultMQAdminExt = mock(DefaultMQAdminExt.class); + when(mockDefaultMQAdminExt.minOffset(any(MessageQueue.class))).thenReturn(0L); + when(mockDefaultMQAdminExt.maxOffset(any(MessageQueue.class))).thenReturn(101L); + when(mockDefaultMQAdminExt.searchLowerBoundaryOffset(any(MessageQueue.class), anyLong())).thenReturn(0L); + when(mockDefaultMQAdminExt.searchUpperBoundaryOffset(any(MessageQueue.class), anyLong())).thenReturn(100L); + when(mockDefaultMQAdminExt.queryConsumeTimeSpan(anyString(), anyString())).thenReturn(mockQueryConsumeTimeSpan()); + + for (QueueTimeSpan timeSpan: mockDefaultMQAdminExt.queryConsumeTimeSpan(TOPIC1, "group_one")) { + MessageQueue mq = timeSpan.getMessageQueue(); + long maxOffset = mockDefaultMQAdminExt.maxOffset(mq); + long minOffset = mockDefaultMQAdminExt.minOffset(mq); + // if there is at least one message in queue, the maxOffset returns the queue's latest offset + 1 + assertThat((maxOffset == 0 ? 0 : maxOffset - 1) == mockDefaultMQAdminExt.searchUpperBoundaryOffset(mq, timeSpan.getMaxTimeStamp())).isTrue(); + assertThat(minOffset == mockDefaultMQAdminExt.searchLowerBoundaryOffset(mq, timeSpan.getMinTimeStamp())).isTrue(); } } + private List mockQueryConsumeTimeSpan() { + List spanSet = new ArrayList<>(); + QueueTimeSpan timeSpan = new QueueTimeSpan(); + timeSpan.setMessageQueue(new MessageQueue(TOPIC1, BROKER1_NAME, 0)); + timeSpan.setMinTimeStamp(1690421253000L); + timeSpan.setMaxTimeStamp(1690507653000L); + spanSet.add(timeSpan); + return spanSet; + } + @Test public void testExamineTopicConfig() throws MQBrokerException, RemotingException, InterruptedException { TopicConfig topicConfig = defaultMQAdminExt.examineTopicConfig("127.0.0.1:10911", "topic_test_examine_topicConfig");