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