MahsaSeifikar commented on code in PR #19742:
URL: https://github.com/apache/kafka/pull/19742#discussion_r2103027135


##########
core/src/test/scala/unit/kafka/server/ClientQuotaManagerTest.scala:
##########
@@ -501,6 +501,76 @@ class ClientQuotaManagerTest extends 
BaseClientQuotaManagerTest {
     }
   }
 
+  @Test
+  def testQuotaTypesEnabledUpdatesOnAddAndRemove(): Unit = {
+    val clientQuotaManager = new ClientQuotaManager(config, metrics, 
QuotaType.CONTROLLER_MUTATION, time, "")
+    try {
+      // Initially, quotaTypesEnabled should be QuotaTypes.NoQuotas and 
quotasEnabled should be false
+      assertEquals(QuotaTypes.NoQuotas, 
clientQuotaManager.getQuotaTypesEnabled)
+      assertFalse(clientQuotaManager.quotasEnabled)
+
+      // Add a client-id quota and quotaTypesEnabled should be 
QuotaTypes.ClientIdQuotaEnabled
+      clientQuotaManager.updateQuota(
+        None,
+        Some(ClientQuotaManager.ClientIdEntity("client1")),
+        Some(new Quota(5, true))
+      )
+      assertEquals(QuotaTypes.ClientIdQuotaEnabled, 
clientQuotaManager.getQuotaTypesEnabled)
+      assertTrue(clientQuotaManager.quotasEnabled)
+
+      // Add a user quota and quotaTypesEnabled should be 
QuotaTypes.UserQuotaEnabled | QuotaTypes.ClientIdQuotaEnabled
+      clientQuotaManager.updateQuota(
+        Some(ClientQuotaManager.UserEntity("userA")),
+        None,
+        Some(new Quota(5, true))
+      )
+      assertEquals(QuotaTypes.UserQuotaEnabled | 
QuotaTypes.ClientIdQuotaEnabled, clientQuotaManager.getQuotaTypesEnabled)
+      assertTrue(clientQuotaManager.quotasEnabled)
+
+      // Add a user-client-id quota and quotaTypesEnabled should
+      // be QuotaTypes.UserClientIdQuotaEnabled | 
QuotaTypes.ClientIdQuotaEnabled | QuotaTypes.UserQuotaEnabled
+      clientQuotaManager.updateQuota(
+        Some(ClientQuotaManager.UserEntity("userB")),
+        Some(ClientQuotaManager.ClientIdEntity("client2")),
+        Some(new Quota(10, true))
+      )
+      assertEquals(
+        QuotaTypes.UserClientIdQuotaEnabled | QuotaTypes.ClientIdQuotaEnabled 
| QuotaTypes.UserQuotaEnabled,
+        clientQuotaManager.getQuotaTypesEnabled
+      )
+      assertTrue(clientQuotaManager.quotasEnabled)
+

Review Comment:
   After adding this test, I found an edge case that this pr doesn't cover. 
Thanks for pointing this out



-- 
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: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to