This is an automated email from the ASF dual-hosted git repository.

technoboy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 3571e244e17 [improve][broker]Add test for getting partitioned topic 
metadata with PulsarAdmin client (#25026)
3571e244e17 is described below

commit 3571e244e175ca0a2d4566b1a1edc80270e7f943
Author: fengyubiao <[email protected]>
AuthorDate: Sun Nov 30 22:56:56 2025 +0800

    [improve][broker]Add test for getting partitioned topic metadata with 
PulsarAdmin client (#25026)
---
 .../broker/admin/GetPartitionMetadataTest.java     | 65 ++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/GetPartitionMetadataTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/GetPartitionMetadataTest.java
index 4b796fcca33..5ff88205ce7 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/GetPartitionMetadataTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/GetPartitionMetadataTest.java
@@ -34,6 +34,7 @@ import org.apache.pulsar.broker.BrokerTestUtil;
 import org.apache.pulsar.broker.PulsarService;
 import org.apache.pulsar.broker.ServiceConfiguration;
 import org.apache.pulsar.client.admin.PulsarAdmin;
+import org.apache.pulsar.client.admin.PulsarAdminException;
 import org.apache.pulsar.client.api.PulsarClient;
 import org.apache.pulsar.client.api.PulsarClientException;
 import org.apache.pulsar.client.impl.ClientCnx;
@@ -177,6 +178,70 @@ public class GetPartitionMetadataTest extends 
TestRetrySupport {
         assertFalse(topicList.contains(topicName.getPartitionedTopicName()));
     }
 
+    @DataProvider
+    public Object[][] allowAutoAutoCreations() {
+        return new Object[][]{
+                {true, TopicDomain.persistent},
+                {false, TopicDomain.persistent},
+                {true, TopicDomain.non_persistent},
+                {false, TopicDomain.non_persistent}
+        };
+    }
+
+    @Test(dataProvider = "allowAutoAutoCreations")
+    public void testGetMetadataIfNonPartitionedTopicExistsWithAdmin(boolean 
allowAutoCreation, TopicDomain topicDomain)
+            throws Exception {
+        modifyTopicAutoCreation(allowAutoCreation, TopicType.PARTITIONED, 3);
+
+        // Create topic.
+        final String topicNameStr = 
BrokerTestUtil.newUniqueName(topicDomain.value() + "://" + DEFAULT_NS + "/tp_");
+        admin1.topics().createNonPartitionedTopic(topicNameStr);
+
+        // Verify: the result of get partitioned topic metadata.
+        PartitionedTopicMetadata metadata = 
admin1.topics().getPartitionedTopicMetadata(topicNameStr);
+        assertEquals(metadata.partitions, 0);
+        List<String> partitionedTopics = 
admin1.topics().getPartitionedTopicList("public/default");
+        assertFalse(partitionedTopics.contains(topicNameStr));
+        verifyPartitionsNeverCreated(topicNameStr);
+
+        // Cleanup.
+        admin1.topics().delete(topicNameStr, false);
+    }
+
+    @Test(dataProvider = "allowAutoAutoCreations")
+    public void testGetMetadataIfPartitionedTopicExistsWithAdmin(boolean 
allowAutoCreation, TopicDomain topicDomain)
+            throws Exception {
+        modifyTopicAutoCreation(allowAutoCreation, TopicType.PARTITIONED, 3);
+
+        // Create topic.
+        final String topicNameStr = 
BrokerTestUtil.newUniqueName(topicDomain.value() + "://" + DEFAULT_NS + "/tp");
+        admin1.topics().createPartitionedTopic(topicNameStr, 3);
+
+        // Verify: the result of get partitioned topic metadata.
+        PartitionedTopicMetadata metadata = 
admin1.topics().getPartitionedTopicMetadata(topicNameStr);
+        assertEquals(metadata.partitions, 3);
+        verifyNonPartitionedTopicNeverCreated(topicNameStr);
+
+        // Cleanup.
+        admin1.topics().deletePartitionedTopic(topicNameStr, false);
+    }
+
+    @Test(dataProvider = "allowAutoAutoCreations")
+    public void testGetMetadataIfNotExistWithPulsarAdmin(boolean 
allowAutoCreation, TopicDomain topicDomain)
+            throws Exception {
+        modifyTopicAutoCreation(allowAutoCreation, TopicType.PARTITIONED, 3);
+        // Define topic.
+        final String topicNameStr = 
BrokerTestUtil.newUniqueName(topicDomain.value() + "://" + DEFAULT_NS + "/tp");
+        // Verify: the result of get partitioned topic metadata.
+        try {
+            admin1.topics().getPartitionedTopicMetadata(topicNameStr);
+            fail("Expect a not found exception");
+        } catch (Exception e) {
+            Throwable unwrapEx = FutureUtil.unwrapCompletionException(e);
+            assertTrue(unwrapEx instanceof 
PulsarAdminException.NotFoundException);
+        }
+    }
+
     @DataProvider(name = "topicDomains")
     public Object[][] topicDomains() {
         return new Object[][]{

Reply via email to