Demogorgon314 commented on code in PR #16552:
URL: https://github.com/apache/pulsar/pull/16552#discussion_r922926440


##########
pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/impl/BundleSplitterTaskTest.java:
##########
@@ -95,6 +96,61 @@ public void testSplitTaskWhenTopicJustOne() {
         Assert.assertEquals(bundlesToSplit.size(), 0);
     }
 
+    @Test
+    public void testLoadBalancerNamespaceMaximumBundles() {
+        pulsar.getConfiguration().setLoadBalancerNamespaceMaximumBundles(3);
+
+        final BundleSplitterTask bundleSplitterTask = new BundleSplitterTask();
+        LoadData loadData = new LoadData();
+
+        LocalBrokerData brokerData = new LocalBrokerData();
+        Map<String, NamespaceBundleStats> lastStats = new HashMap<>();
+        final NamespaceBundleStats namespaceBundleStats = new 
NamespaceBundleStats();
+        namespaceBundleStats.topics = 5;
+        lastStats.put("ten/ns/0x00000000_0x20000000", namespaceBundleStats);
+
+        final NamespaceBundleStats namespaceBundleStats2 = new 
NamespaceBundleStats();
+        namespaceBundleStats2.topics = 5;
+        lastStats.put("ten/ns/0x20000000_0x40000000", namespaceBundleStats2);
+
+        final NamespaceBundleStats namespaceBundleStats3 = new 
NamespaceBundleStats();
+        namespaceBundleStats3.topics = 5;
+        lastStats.put("ten/ns/0x40000000_0x60000000", namespaceBundleStats3);
+
+        brokerData.setLastStats(lastStats);
+        loadData.getBrokerData().put("broker", new BrokerData(brokerData));
+
+        BundleData bundleData1 = new BundleData();
+        TimeAverageMessageData averageMessageData1 = new 
TimeAverageMessageData();
+        
averageMessageData1.setMsgRateIn(pulsar.getConfiguration().getLoadBalancerNamespaceBundleMaxMsgRate()
 * 2);
+        averageMessageData1.setMsgRateOut(1);
+        bundleData1.setLongTermData(averageMessageData1);
+        loadData.getBundleData().put("ten/ns/0x00000000_0x20000000", 
bundleData1);
+
+        BundleData bundleData2 = new BundleData();
+        TimeAverageMessageData averageMessageData2 = new 
TimeAverageMessageData();
+        
averageMessageData2.setMsgRateIn(pulsar.getConfiguration().getLoadBalancerNamespaceBundleMaxMsgRate()
 * 2);
+        averageMessageData2.setMsgRateOut(1);
+        bundleData2.setLongTermData(averageMessageData2);
+        loadData.getBundleData().put("ten/ns/0x20000000_0x40000000", 
bundleData2);
+
+        BundleData bundleData3 = new BundleData();
+        TimeAverageMessageData averageMessageData3 = new 
TimeAverageMessageData();
+        
averageMessageData3.setMsgRateIn(pulsar.getConfiguration().getLoadBalancerNamespaceBundleMaxMsgRate()
 * 2);
+        averageMessageData3.setMsgRateOut(1);
+        bundleData3.setLongTermData(averageMessageData3);
+        loadData.getBundleData().put("ten/ns/0x40000000_0x60000000", 
bundleData3);
+
+        try {
+            int currentBundleCount = 
pulsar.getNamespaceService().getBundleCount(NamespaceName.get("ten/ns"));
+            final Set<String> bundlesToSplit = 
bundleSplitterTask.findBundlesToSplit(loadData, pulsar);
+            Assert.assertEquals(bundlesToSplit.size() + currentBundleCount,
+                    
pulsar.getConfiguration().getLoadBalancerNamespaceMaximumBundles());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }

Review Comment:
   ```suggestion
           int currentBundleCount = 
pulsar.getNamespaceService().getBundleCount(NamespaceName.get("ten/ns"));
           final Set<String> bundlesToSplit = 
bundleSplitterTask.findBundlesToSplit(loadData, pulsar);
           Assert.assertEquals(bundlesToSplit.size() + currentBundleCount,
                   
pulsar.getConfiguration().getLoadBalancerNamespaceMaximumBundles());
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to