|
86 | 86 | import org.apache.pulsar.common.policies.data.PublishRate; |
87 | 87 | import org.apache.pulsar.common.policies.data.RetentionPolicies; |
88 | 88 | import org.apache.pulsar.common.policies.data.SubscribeRate; |
| 89 | +import org.apache.pulsar.common.policies.data.SubscriptionPolicies; |
89 | 90 | import org.apache.pulsar.common.policies.data.TenantInfoImpl; |
90 | 91 | import org.apache.pulsar.common.policies.data.TopicPolicies; |
91 | 92 | import org.apache.pulsar.common.policies.data.TopicStats; |
| 93 | +import org.apache.pulsar.common.policies.data.impl.DispatchRateImpl; |
92 | 94 | import org.assertj.core.api.Assertions; |
93 | 95 | import org.awaitility.Awaitility; |
94 | 96 | import org.mockito.Mockito; |
@@ -3215,7 +3217,7 @@ public void testDelayedDeliveryPolicy() throws Exception { |
3215 | 3217 |
|
3216 | 3218 | admin.topics().delete(topic, true); |
3217 | 3219 | } |
3218 | | - |
| 3220 | + |
3219 | 3221 | @Test |
3220 | 3222 | public void testUpdateRetentionWithPartialFailure() throws Exception { |
3221 | 3223 | String tpName = BrokerTestUtil.newUniqueName("persistent://" + myNamespace + "/tp"); |
@@ -3259,4 +3261,40 @@ public void testUpdateRetentionWithPartialFailure() throws Exception { |
3259 | 3261 | admin.namespaces().removeRetention(myNamespace); |
3260 | 3262 | admin.topics().delete(tpName, false); |
3261 | 3263 | } |
| 3264 | + |
| 3265 | + @Test |
| 3266 | + public void testTopicPoliciesGetSubscriptionPolicies() throws Exception { |
| 3267 | + TopicPolicies topicPolicies = TopicPolicies.builder() |
| 3268 | + .maxProducerPerTopic(10).subscriptionPolicies(null).build(); |
| 3269 | + Assert.assertNotNull(topicPolicies.getSubscriptionPolicies()); |
| 3270 | + Assert.assertEquals(topicPolicies.getMaxProducerPerTopic(), 10); |
| 3271 | + Assert.assertTrue(topicPolicies.getSubscriptionPolicies().isEmpty()); |
| 3272 | + topicPolicies.getSubscriptionPolicies().computeIfAbsent("sub", k -> |
| 3273 | + new SubscriptionPolicies()).setDispatchRate(new DispatchRateImpl()); |
| 3274 | + Assert.assertEquals(topicPolicies.getSubscriptionPolicies().get("sub").getDispatchRate() |
| 3275 | + .getDispatchThrottlingRateInByte(), 0); |
| 3276 | + } |
| 3277 | + |
| 3278 | + @Test |
| 3279 | + public void testSetSubRateWithNoSub() throws Exception { |
| 3280 | + String topic = "persistent://" + myNamespace + "/testSetSubRateWithNoSub"; |
| 3281 | + admin.topics().createNonPartitionedTopic(topic); |
| 3282 | + admin.topicPolicies().setSubscriptionDispatchRate(topic, DispatchRate.builder() |
| 3283 | + .dispatchThrottlingRateInMsg(10) |
| 3284 | + .dispatchThrottlingRateInByte(10) |
| 3285 | + .ratePeriodInSecond(10) |
| 3286 | + .build()); |
| 3287 | + } |
| 3288 | + |
| 3289 | + @Test |
| 3290 | + public void testSetSubRateWithSub() throws Exception { |
| 3291 | + String topic = "persistent://" + myNamespace + "/testSetSubRateWithSub"; |
| 3292 | + admin.topics().createNonPartitionedTopic(topic); |
| 3293 | + admin.topics().createSubscription(topic, "sub1", MessageId.earliest); |
| 3294 | + admin.topicPolicies().setSubscriptionDispatchRate(topic, "sub1", DispatchRate.builder() |
| 3295 | + .dispatchThrottlingRateInMsg(10) |
| 3296 | + .dispatchThrottlingRateInByte(10) |
| 3297 | + .ratePeriodInSecond(10) |
| 3298 | + .build()); |
| 3299 | + } |
3262 | 3300 | } |
0 commit comments