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[][]{