This is an automated email from the ASF dual-hosted git repository.

jshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new 53bad8a11f [MINOR] fix(core): Fix UT for cache (#7463)
53bad8a11f is described below

commit 53bad8a11fd3a01db362bfa1aa755ea2cdd5d17a
Author: Lord of Abyss <[email protected]>
AuthorDate: Wed Jun 25 14:29:37 2025 +0800

    [MINOR] fix(core): Fix UT for cache (#7463)
    
    ### What changes were proposed in this pull request?
    
    Fix UT for cache.
    
    
    | Class | Change Description | Purpose & Impact |
    | --------------------- |
    ------------------------------------------------------ |
    ------------------------------------------------------------ |
    | `CaffeineEntityCache` | Replace `estimatedSize()` with
    `cacheIndex.size()` | Ensure accurate and deterministic cache size
    reporting |
    | `EntityCacheWeigher` | Make `MAX_WEIGHT` private and use
    `@VisibleForTesting` | Prevent misuse, expose only to test code via
    MockStatic |
    | | Relax constructor visibility to `protected` | |
    
    ### Why are the changes needed?
    
    MINOR
    
    ### Does this PR introduce _any_ user-facing change?
    
    no
    
    ### How was this patch tested?
    
    local test.
    
    ---------
    
    Co-authored-by: Jerry Shao <[email protected]>
---
 .../gravitino/cache/CaffeineEntityCache.java       |   2 +-
 .../apache/gravitino/cache/EntityCacheWeigher.java |   6 +-
 .../gravitino/cache/TestCaffeineEntityCache.java   | 561 ++++++++++++---------
 3 files changed, 318 insertions(+), 251 deletions(-)

diff --git 
a/core/src/main/java/org/apache/gravitino/cache/CaffeineEntityCache.java 
b/core/src/main/java/org/apache/gravitino/cache/CaffeineEntityCache.java
index 7609f0efc8..c572427fd1 100644
--- a/core/src/main/java/org/apache/gravitino/cache/CaffeineEntityCache.java
+++ b/core/src/main/java/org/apache/gravitino/cache/CaffeineEntityCache.java
@@ -185,7 +185,7 @@ public class CaffeineEntityCache extends BaseEntityCache {
   /** {@inheritDoc} */
   @Override
   public long size() {
-    return cacheData.estimatedSize();
+    return cacheIndex.size();
   }
 
   /** {@inheritDoc} */
diff --git 
a/core/src/main/java/org/apache/gravitino/cache/EntityCacheWeigher.java 
b/core/src/main/java/org/apache/gravitino/cache/EntityCacheWeigher.java
index 8fe8c5e255..bdf32172b3 100644
--- a/core/src/main/java/org/apache/gravitino/cache/EntityCacheWeigher.java
+++ b/core/src/main/java/org/apache/gravitino/cache/EntityCacheWeigher.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.cache;
 
 import com.github.benmanes.caffeine.cache.Weigher;
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableMap;
 import java.util.List;
@@ -53,10 +54,11 @@ public class EntityCacheWeigher implements 
Weigher<EntityCacheKey, List<Entity>>
           Entity.EntityType.METALAKE, METALAKE_WEIGHT,
           Entity.EntityType.CATALOG, CATALOG_WEIGHT,
           Entity.EntityType.SCHEMA, SCHEMA_WEIGHT);
-  public static long MAX_WEIGHT =
+  private static long MAX_WEIGHT =
       2 * (METALAKE_WEIGHT * 10 + CATALOG_WEIGHT * (10 * 200) + SCHEMA_WEIGHT 
* (10 * 200 * 1000));
 
-  private EntityCacheWeigher() {}
+  @VisibleForTesting
+  protected EntityCacheWeigher() {}
 
   /**
    * Returns the maximum weight that can be stored in the cache.
diff --git 
a/core/src/test/java/org/apache/gravitino/cache/TestCaffeineEntityCache.java 
b/core/src/test/java/org/apache/gravitino/cache/TestCaffeineEntityCache.java
index d355425808..489c3c044d 100644
--- a/core/src/test/java/org/apache/gravitino/cache/TestCaffeineEntityCache.java
+++ b/core/src/test/java/org/apache/gravitino/cache/TestCaffeineEntityCache.java
@@ -19,16 +19,20 @@
 
 package org.apache.gravitino.cache;
 
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+import static org.awaitility.Awaitility.await;
+import static org.mockito.Mockito.mockStatic;
+
 import com.github.benmanes.caffeine.cache.Cache;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Sets;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 import org.apache.commons.lang3.reflect.FieldUtils;
 import org.apache.gravitino.Config;
 import org.apache.gravitino.Configs;
 import org.apache.gravitino.Entity;
-import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.Namespace;
 import org.apache.gravitino.SupportsRelationOperations;
 import org.apache.gravitino.meta.BaseMetalake;
@@ -43,29 +47,15 @@ import org.apache.gravitino.meta.TableEntity;
 import org.apache.gravitino.meta.TagEntity;
 import org.apache.gravitino.meta.TopicEntity;
 import org.apache.gravitino.meta.UserEntity;
-import org.apache.gravitino.utils.NameIdentifierUtil;
 import org.apache.gravitino.utils.TestUtil;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInstance;
+import org.mockito.MockedStatic;
 
 @TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class TestCaffeineEntityCache {
-  private static NameIdentifier ident1;
-  private static NameIdentifier ident2;
-  private static NameIdentifier ident3;
-  private static NameIdentifier ident4;
-  private static NameIdentifier ident5;
-  private static NameIdentifier ident6;
-  private static NameIdentifier ident7;
-  private static NameIdentifier ident8;
-  private static NameIdentifier ident9;
-  private static NameIdentifier ident10;
-  private static NameIdentifier ident11;
-  private static NameIdentifier ident12;
-  private static NameIdentifier ident13;
-
   // Test Entities.
   private static SchemaEntity entity1;
   private static SchemaEntity entity2;
@@ -95,14 +85,46 @@ public class TestCaffeineEntityCache {
   }
 
   @BeforeAll
-  static void init() {
-    initTestNameIdentifier();
-    initTestEntities();
+  static void initTestEntities() {
+    entity1 =
+        TestUtil.getTestSchemaEntity(
+            1L, "schema1", Namespace.of("metalake1", "catalog1"), 
"test_schema1");
+    entity2 =
+        TestUtil.getTestSchemaEntity(
+            2L, "schema2", Namespace.of("metalake2", "catalog2"), 
"test_schema2");
+    entity3 =
+        TestUtil.getTestTableEntity(3L, "table1", Namespace.of("metalake1", 
"catalog1", "schema1"));
+    entity4 =
+        TestUtil.getTestTableEntity(4L, "table2", Namespace.of("metalake1", 
"catalog2", "schema1"));
+    entity5 =
+        TestUtil.getTestTableEntity(5L, "table3", Namespace.of("metalake1", 
"catalog1", "schema2"));
+    entity6 =
+        TestUtil.getTestCatalogEntity(
+            6L, "catalog1", Namespace.of("metalake1"), "hive", "test_catalog");
+    entity7 = TestUtil.getTestMetalake(7L, "metalake1", "test_metalake1");
+
+    entity8 = TestUtil.getTestUserEntity(8L, "user1", "metalake1", 
ImmutableList.of(12L));
+    entity9 = TestUtil.getTestUserEntity(9L, "user2", "metalake1", 
ImmutableList.of(12L));
+
+    entity10 = TestUtil.getTestGroupEntity(10L, "group1", "metalake2", 
ImmutableList.of("role2"));
+    entity11 = TestUtil.getTestGroupEntity(11L, "group2", "metalake2", 
ImmutableList.of("role2"));
+
+    entity12 = TestUtil.getTestRoleEntity(12L, "role1", "metalake1");
+    entity13 = TestUtil.getTestRoleEntity(13L, "role2", "metalake2");
+  }
+
+  @Test
+  void testEnableStats() {
+    Config config = new Config() {};
+    config.set(Configs.CACHE_STATS_ENABLED, true);
+    EntityCache cache = new CaffeineEntityCache(config);
+
+    Assertions.assertDoesNotThrow(() -> cache.put(entity1));
   }
 
   @Test
   void testPutAllTypeInCache() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     BaseMetalake testMetalake = TestUtil.getTestMetalake();
     CatalogEntity testCatalogEntity = TestUtil.getTestCatalogEntity();
@@ -193,7 +215,7 @@ public class TestCaffeineEntityCache {
 
   @Test
   void testPutSameIdentifierEntities() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     UserEntity testUserEntity = TestUtil.getTestUserEntity();
     TableEntity testTableEntity =
@@ -211,7 +233,7 @@ public class TestCaffeineEntityCache {
 
   @Test
   void testPutAndGet() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     cache.put(entity1);
     cache.put(entity2);
@@ -236,30 +258,34 @@ public class TestCaffeineEntityCache {
         SupportsRelationOperations.Type.ROLE_GROUP_REL,
         ImmutableList.of(entity10, entity11));
 
-    Assertions.assertTrue(cache.contains(ident1, Entity.EntityType.SCHEMA));
-    Assertions.assertTrue(cache.contains(ident2, Entity.EntityType.SCHEMA));
-    Assertions.assertTrue(cache.contains(ident3, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident4, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident5, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident6, Entity.EntityType.CATALOG));
-    Assertions.assertTrue(cache.contains(ident7, Entity.EntityType.METALAKE));
+    Assertions.assertTrue(cache.contains(entity1.nameIdentifier(), 
entity1.type()));
+    Assertions.assertTrue(cache.contains(entity2.nameIdentifier(), 
entity2.type()));
+    Assertions.assertTrue(cache.contains(entity3.nameIdentifier(), 
entity3.type()));
+    Assertions.assertTrue(cache.contains(entity4.nameIdentifier(), 
entity4.type()));
+    Assertions.assertTrue(cache.contains(entity5.nameIdentifier(), 
entity5.type()));
+    Assertions.assertTrue(cache.contains(entity6.nameIdentifier(), 
entity6.type()));
+    Assertions.assertTrue(cache.contains(entity7.nameIdentifier(), 
entity7.type()));
 
-    Assertions.assertTrue(cache.contains(ident8, Entity.EntityType.USER));
-    Assertions.assertTrue(cache.contains(ident9, Entity.EntityType.USER));
-    Assertions.assertTrue(cache.contains(ident10, Entity.EntityType.GROUP));
-    Assertions.assertTrue(cache.contains(ident11, Entity.EntityType.GROUP));
+    Assertions.assertTrue(cache.contains(entity8.nameIdentifier(), 
entity8.type()));
+    Assertions.assertTrue(cache.contains(entity9.nameIdentifier(), 
entity9.type()));
+    Assertions.assertTrue(cache.contains(entity10.nameIdentifier(), 
entity10.type()));
+    Assertions.assertTrue(cache.contains(entity11.nameIdentifier(), 
entity11.type()));
 
     Assertions.assertTrue(
         cache.contains(
-            ident12, Entity.EntityType.ROLE, 
SupportsRelationOperations.Type.ROLE_USER_REL));
+            entity12.nameIdentifier(),
+            entity12.type(),
+            SupportsRelationOperations.Type.ROLE_USER_REL));
     Assertions.assertTrue(
         cache.contains(
-            ident13, Entity.EntityType.ROLE, 
SupportsRelationOperations.Type.ROLE_GROUP_REL));
+            entity13.nameIdentifier(),
+            entity13.type(),
+            SupportsRelationOperations.Type.ROLE_GROUP_REL));
   }
 
   @Test
   void testGetIfPresent() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     cache.put(entity1);
     cache.put(entity2);
@@ -270,42 +296,48 @@ public class TestCaffeineEntityCache {
         SupportsRelationOperations.Type.ROLE_USER_REL,
         ImmutableList.of(entity8, entity9));
 
-    Assertions.assertTrue(cache.getIfPresent(ident1, 
Entity.EntityType.SCHEMA).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident2, 
Entity.EntityType.SCHEMA).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident3, 
Entity.EntityType.TABLE).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity1.nameIdentifier(), 
entity1.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity2.nameIdentifier(), 
entity2.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity3.nameIdentifier(), 
entity3.type()).isPresent());
     Assertions.assertTrue(
         cache
             .getIfPresent(
-                SupportsRelationOperations.Type.ROLE_USER_REL, ident12, 
Entity.EntityType.ROLE)
+                SupportsRelationOperations.Type.ROLE_USER_REL,
+                entity12.nameIdentifier(),
+                entity12.type())
             .isPresent());
     Assertions.assertEquals(cache.size(), 4);
 
-    Assertions.assertFalse(cache.getIfPresent(ident4, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident5, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident6, 
Entity.EntityType.CATALOG).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident7, 
Entity.EntityType.METALAKE).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity4.nameIdentifier(), 
entity4.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity5.nameIdentifier(), 
entity5.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity6.nameIdentifier(), 
entity6.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity7.nameIdentifier(), 
entity7.type()).isPresent());
   }
 
   @Test
   void testContains() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     cache.put(entity1);
     cache.put(entity2);
     cache.put(entity3);
 
-    Assertions.assertTrue(cache.contains(ident1, Entity.EntityType.SCHEMA));
-    Assertions.assertTrue(cache.contains(ident2, Entity.EntityType.SCHEMA));
-    Assertions.assertTrue(cache.contains(ident3, Entity.EntityType.TABLE));
-    Assertions.assertFalse(cache.contains(ident4, Entity.EntityType.TABLE));
-    Assertions.assertFalse(cache.contains(ident5, Entity.EntityType.TABLE));
-    Assertions.assertFalse(cache.contains(ident6, Entity.EntityType.CATALOG));
-    Assertions.assertFalse(cache.contains(ident7, Entity.EntityType.METALAKE));
+    Assertions.assertTrue(cache.contains(entity1.nameIdentifier(), 
entity1.type()));
+    Assertions.assertTrue(cache.contains(entity2.nameIdentifier(), 
entity2.type()));
+    Assertions.assertTrue(cache.contains(entity3.nameIdentifier(), 
entity3.type()));
+    Assertions.assertFalse(cache.contains(entity4.nameIdentifier(), 
entity4.type()));
+    Assertions.assertFalse(cache.contains(entity5.nameIdentifier(), 
entity5.type()));
+    Assertions.assertFalse(cache.contains(entity6.nameIdentifier(), 
entity6.type()));
+    Assertions.assertFalse(cache.contains(entity7.nameIdentifier(), 
entity7.type()));
   }
 
   @Test
   void testSize() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     cache.put(entity1);
     cache.put(entity2);
@@ -316,7 +348,7 @@ public class TestCaffeineEntityCache {
 
   @Test
   void testClear() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
     Assertions.assertDoesNotThrow(cache::clear);
 
     cache.put(entity1);
@@ -342,28 +374,39 @@ public class TestCaffeineEntityCache {
     cache.clear();
 
     Assertions.assertEquals(0, cache.size());
-    Assertions.assertFalse(cache.getIfPresent(ident1, 
Entity.EntityType.SCHEMA).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident2, 
Entity.EntityType.SCHEMA).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident3, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident4, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident5, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident6, 
Entity.EntityType.CATALOG).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident7, 
Entity.EntityType.METALAKE).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity1.nameIdentifier(), 
entity1.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity2.nameIdentifier(), 
entity2.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity3.nameIdentifier(), 
entity3.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity4.nameIdentifier(), 
entity4.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity5.nameIdentifier(), 
entity5.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity6.nameIdentifier(), 
entity6.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity7.nameIdentifier(), 
entity7.type()).isPresent());
     Assertions.assertFalse(
         cache
             .getIfPresent(
-                SupportsRelationOperations.Type.ROLE_USER_REL, ident12, 
Entity.EntityType.ROLE)
+                SupportsRelationOperations.Type.ROLE_USER_REL,
+                entity12.nameIdentifier(),
+                entity12.type())
             .isPresent());
     Assertions.assertFalse(
         cache
             .getIfPresent(
-                SupportsRelationOperations.Type.ROLE_GROUP_REL, ident13, 
Entity.EntityType.ROLE)
+                SupportsRelationOperations.Type.ROLE_GROUP_REL,
+                entity13.nameIdentifier(),
+                entity13.type())
             .isPresent());
   }
 
   @Test
   void testInvalidateMetalake() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     cache.put(entity1);
     cache.put(entity2);
@@ -390,27 +433,29 @@ public class TestCaffeineEntityCache {
 
     Assertions.assertEquals(13, cache.size());
 
-    cache.invalidate(ident7, Entity.EntityType.METALAKE);
+    cache.invalidate(entity7.nameIdentifier(), entity7.type());
 
     Assertions.assertEquals(4, cache.size());
-    Assertions.assertTrue(cache.contains(ident10, Entity.EntityType.GROUP));
-    Assertions.assertTrue(cache.contains(ident11, Entity.EntityType.GROUP));
+    Assertions.assertTrue(cache.contains(entity10.nameIdentifier(), 
entity10.type()));
+    Assertions.assertTrue(cache.contains(entity11.nameIdentifier(), 
entity11.type()));
     Assertions.assertTrue(
         cache.contains(
-            ident13, Entity.EntityType.ROLE, 
SupportsRelationOperations.Type.ROLE_GROUP_REL));
-    Assertions.assertTrue(cache.getIfPresent(ident2, 
Entity.EntityType.SCHEMA).isPresent());
-
-    Assertions.assertFalse(cache.contains(ident1, Entity.EntityType.SCHEMA));
-    Assertions.assertFalse(cache.contains(ident3, Entity.EntityType.TABLE));
-    Assertions.assertFalse(cache.contains(ident4, Entity.EntityType.TABLE));
-    Assertions.assertFalse(cache.contains(ident5, Entity.EntityType.TABLE));
-    Assertions.assertFalse(cache.contains(ident6, Entity.EntityType.TABLE));
-    Assertions.assertFalse(cache.contains(ident7, Entity.EntityType.TABLE));
+            entity13.nameIdentifier(),
+            entity13.type(),
+            SupportsRelationOperations.Type.ROLE_GROUP_REL));
+    Assertions.assertTrue(cache.getIfPresent(entity2.nameIdentifier(), 
entity2.type()).isPresent());
+
+    Assertions.assertFalse(cache.contains(entity1.nameIdentifier(), 
entity1.type()));
+    Assertions.assertFalse(cache.contains(entity3.nameIdentifier(), 
entity3.type()));
+    Assertions.assertFalse(cache.contains(entity4.nameIdentifier(), 
entity4.type()));
+    Assertions.assertFalse(cache.contains(entity5.nameIdentifier(), 
entity5.type()));
+    Assertions.assertFalse(cache.contains(entity6.nameIdentifier(), 
entity6.type()));
+    Assertions.assertFalse(cache.contains(entity7.nameIdentifier(), 
entity7.type()));
   }
 
   @Test
   void testInvalidateCatalog() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     cache.put(entity1);
     cache.put(entity2);
@@ -421,30 +466,34 @@ public class TestCaffeineEntityCache {
     cache.put(entity7);
 
     Assertions.assertEquals(7, cache.size());
-    Assertions.assertTrue(cache.contains(ident1, Entity.EntityType.SCHEMA));
-    Assertions.assertTrue(cache.contains(ident2, Entity.EntityType.SCHEMA));
-    Assertions.assertTrue(cache.contains(ident3, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident4, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident5, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident6, Entity.EntityType.CATALOG));
-    Assertions.assertTrue(cache.contains(ident7, Entity.EntityType.METALAKE));
-
-    cache.invalidate(ident6, Entity.EntityType.CATALOG);
+    Assertions.assertTrue(cache.contains(entity1.nameIdentifier(), 
entity1.type()));
+    Assertions.assertTrue(cache.contains(entity2.nameIdentifier(), 
entity2.type()));
+    Assertions.assertTrue(cache.contains(entity3.nameIdentifier(), 
entity3.type()));
+    Assertions.assertTrue(cache.contains(entity4.nameIdentifier(), 
entity4.type()));
+    Assertions.assertTrue(cache.contains(entity5.nameIdentifier(), 
entity5.type()));
+    Assertions.assertTrue(cache.contains(entity6.nameIdentifier(), 
entity6.type()));
+    Assertions.assertTrue(cache.contains(entity7.nameIdentifier(), 
entity7.type()));
+
+    cache.invalidate(entity6.nameIdentifier(), entity6.type());
     Assertions.assertEquals(3, cache.size());
 
-    Assertions.assertTrue(cache.getIfPresent(ident7, 
Entity.EntityType.METALAKE).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident4, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident2, 
Entity.EntityType.SCHEMA).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity7.nameIdentifier(), 
entity7.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity4.nameIdentifier(), 
entity4.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity2.nameIdentifier(), 
entity2.type()).isPresent());
 
-    Assertions.assertFalse(cache.getIfPresent(ident1, 
Entity.EntityType.SCHEMA).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident3, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident5, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident6, 
Entity.EntityType.TABLE).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity1.nameIdentifier(), 
entity1.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity3.nameIdentifier(), 
entity3.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity5.nameIdentifier(), 
entity5.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity6.nameIdentifier(), 
entity6.type()).isPresent());
   }
 
   @Test
   void testInvalidateSchema() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     cache.put(entity1);
     cache.put(entity2);
@@ -455,31 +504,33 @@ public class TestCaffeineEntityCache {
     cache.put(entity7);
 
     Assertions.assertEquals(7, cache.size());
-    Assertions.assertTrue(cache.contains(ident1, Entity.EntityType.SCHEMA));
-    Assertions.assertTrue(cache.contains(ident2, Entity.EntityType.SCHEMA));
-    Assertions.assertTrue(cache.contains(ident3, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident4, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident5, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident6, Entity.EntityType.CATALOG));
-    Assertions.assertTrue(cache.contains(ident7, Entity.EntityType.METALAKE));
+    Assertions.assertTrue(cache.contains(entity1.nameIdentifier(), 
entity1.type()));
+    Assertions.assertTrue(cache.contains(entity2.nameIdentifier(), 
entity2.type()));
+    Assertions.assertTrue(cache.contains(entity3.nameIdentifier(), 
entity3.type()));
+    Assertions.assertTrue(cache.contains(entity4.nameIdentifier(), 
entity4.type()));
+    Assertions.assertTrue(cache.contains(entity5.nameIdentifier(), 
entity5.type()));
+    Assertions.assertTrue(cache.contains(entity6.nameIdentifier(), 
entity6.type()));
+    Assertions.assertTrue(cache.contains(entity7.nameIdentifier(), 
entity7.type()));
 
-    cache.invalidate(ident1, Entity.EntityType.SCHEMA);
+    cache.invalidate(entity1.nameIdentifier(), entity1.type());
 
     Assertions.assertEquals(5, cache.size());
 
-    Assertions.assertTrue(cache.getIfPresent(ident2, 
Entity.EntityType.SCHEMA).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident4, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident5, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident6, 
Entity.EntityType.CATALOG).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident7, 
Entity.EntityType.METALAKE).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity2.nameIdentifier(), 
entity2.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity4.nameIdentifier(), 
entity4.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity5.nameIdentifier(), 
entity5.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity6.nameIdentifier(), 
entity6.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity7.nameIdentifier(), 
entity7.type()).isPresent());
 
-    Assertions.assertFalse(cache.getIfPresent(ident1, 
Entity.EntityType.SCHEMA).isPresent());
-    Assertions.assertFalse(cache.getIfPresent(ident3, 
Entity.EntityType.TABLE).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity1.nameIdentifier(), 
entity1.type()).isPresent());
+    Assertions.assertFalse(
+        cache.getIfPresent(entity3.nameIdentifier(), 
entity3.type()).isPresent());
   }
 
   @Test
   void testInvalidateTable() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     cache.put(entity1);
     cache.put(entity2);
@@ -490,30 +541,30 @@ public class TestCaffeineEntityCache {
     cache.put(entity7);
 
     Assertions.assertEquals(7, cache.size());
-    Assertions.assertTrue(cache.contains(ident1, Entity.EntityType.SCHEMA));
-    Assertions.assertTrue(cache.contains(ident2, Entity.EntityType.SCHEMA));
-    Assertions.assertTrue(cache.contains(ident3, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident4, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident5, Entity.EntityType.TABLE));
-    Assertions.assertTrue(cache.contains(ident6, Entity.EntityType.CATALOG));
-    Assertions.assertTrue(cache.contains(ident7, Entity.EntityType.METALAKE));
+    Assertions.assertTrue(cache.contains(entity1.nameIdentifier(), 
entity1.type()));
+    Assertions.assertTrue(cache.contains(entity2.nameIdentifier(), 
entity2.type()));
+    Assertions.assertTrue(cache.contains(entity3.nameIdentifier(), 
entity3.type()));
+    Assertions.assertTrue(cache.contains(entity4.nameIdentifier(), 
entity4.type()));
+    Assertions.assertTrue(cache.contains(entity5.nameIdentifier(), 
entity5.type()));
+    Assertions.assertTrue(cache.contains(entity6.nameIdentifier(), 
entity6.type()));
+    Assertions.assertTrue(cache.contains(entity7.nameIdentifier(), 
entity7.type()));
 
-    cache.invalidate(ident3, Entity.EntityType.TABLE);
+    cache.invalidate(entity3.nameIdentifier(), entity3.type());
 
     Assertions.assertEquals(6, cache.size());
-    Assertions.assertTrue(cache.getIfPresent(ident1, 
Entity.EntityType.SCHEMA).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident2, 
Entity.EntityType.SCHEMA).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident4, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident5, 
Entity.EntityType.TABLE).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident6, 
Entity.EntityType.CATALOG).isPresent());
-    Assertions.assertTrue(cache.getIfPresent(ident7, 
Entity.EntityType.METALAKE).isPresent());
-
-    Assertions.assertFalse(cache.contains(ident3, Entity.EntityType.TABLE));
+    Assertions.assertTrue(cache.getIfPresent(entity1.nameIdentifier(), 
entity1.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity2.nameIdentifier(), 
entity2.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity4.nameIdentifier(), 
entity4.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity5.nameIdentifier(), 
entity5.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity6.nameIdentifier(), 
entity6.type()).isPresent());
+    Assertions.assertTrue(cache.getIfPresent(entity7.nameIdentifier(), 
entity7.type()).isPresent());
+
+    Assertions.assertFalse(cache.contains(entity3.nameIdentifier(), 
entity3.type()));
   }
 
   @Test
   void testPutRelationalEntitiesWithMerge() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
     RoleEntity testRoleEntity = TestUtil.getTestRoleEntity();
     GroupEntity testGroupEntity1 =
         TestUtil.getTestGroupEntity(
@@ -568,7 +619,7 @@ public class TestCaffeineEntityCache {
             "test model version",
             ImmutableList.of("alias1", "alias2"));
 
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
     cache.put(testModelEntity);
     Assertions.assertEquals(1, cache.size());
     Assertions.assertTrue(cache.contains(testModelEntity.nameIdentifier(), 
testModelEntity.type()));
@@ -583,7 +634,7 @@ public class TestCaffeineEntityCache {
 
   @Test
   void testPutSameRelationalEntities() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
     RoleEntity testRoleEntity = TestUtil.getTestRoleEntity();
     GroupEntity testGroupEntity =
         TestUtil.getTestGroupEntity(
@@ -627,7 +678,7 @@ public class TestCaffeineEntityCache {
 
   @Test
   void testPutRelationalEntitiesWithEmptyList() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
     RoleEntity testRoleEntity = TestUtil.getTestRoleEntity();
 
     Assertions.assertDoesNotThrow(
@@ -642,7 +693,7 @@ public class TestCaffeineEntityCache {
 
   @Test
   void testPutRelationalEntitiesWithDifferentOrderButDeduplicated() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
     RoleEntity testRoleEntity = TestUtil.getTestRoleEntity();
     GroupEntity testGroupEntity1 =
         TestUtil.getTestGroupEntity(
@@ -685,7 +736,7 @@ public class TestCaffeineEntityCache {
 
   @Test
   void testInvalidateRelationKeyAndRelatedEntities() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
     RoleEntity role = TestUtil.getTestRoleEntity();
     GroupEntity group = TestUtil.getTestGroupEntity();
     UserEntity user = TestUtil.getTestUserEntity();
@@ -715,39 +766,44 @@ public class TestCaffeineEntityCache {
 
   @Test
   void testRemoveNonExistentEntity() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     cache.put(entity1);
 
     Assertions.assertEquals(1, cache.size());
-    Assertions.assertTrue(cache.contains(ident1, Entity.EntityType.SCHEMA));
+    Assertions.assertTrue(cache.contains(entity1.nameIdentifier(), 
entity1.type()));
 
-    Assertions.assertDoesNotThrow(() -> cache.invalidate(ident2, 
Entity.EntityType.SCHEMA));
-    Assertions.assertFalse(cache.invalidate(ident2, Entity.EntityType.SCHEMA));
+    Assertions.assertDoesNotThrow(() -> 
cache.invalidate(entity2.nameIdentifier(), entity2.type()));
+    Assertions.assertFalse(cache.invalidate(entity2.nameIdentifier(), 
entity2.type()));
 
-    Assertions.assertDoesNotThrow(() -> cache.invalidate(ident7, 
Entity.EntityType.METALAKE));
-    Assertions.assertFalse(cache.invalidate(ident7, 
Entity.EntityType.METALAKE));
+    Assertions.assertDoesNotThrow(() -> 
cache.invalidate(entity7.nameIdentifier(), entity7.type()));
+    Assertions.assertFalse(cache.invalidate(entity7.nameIdentifier(), 
entity7.type()));
   }
 
   @Test
-  void testExpireByTime() throws InterruptedException {
-    int waitTime = 3_000;
+  @SuppressWarnings("unchecked")
+  void testExpireByTime() {
     long expireTime = 1_000L;
 
     Config config = new Config() {};
     config.set(Configs.CACHE_EXPIRATION_TIME, expireTime);
     config.set(Configs.CACHE_WEIGHER_ENABLED, false);
-    EntityCache cache = new CaffeineEntityCache(config);
 
+    EntityCache cache = new CaffeineEntityCache(config);
     cache.put(entity1);
-    Thread.sleep(waitTime);
-    cache.put(entity2);
 
-    Cache<EntityCacheKey, List<Entity>> caffeineObject =
-        (Cache<EntityCacheKey, List<Entity>>) getCacheDataFrom(cache);
-    caffeineObject.cleanUp();
+    await()
+        .atMost(3_000, MILLISECONDS)
+        .pollInterval(100, MILLISECONDS)
+        .until(
+            () -> {
+              cache.put(entity2);
+              Cache<EntityCacheKey, List<Entity>> internalCache =
+                  (Cache<EntityCacheKey, List<Entity>>) 
getCacheDataFrom(cache);
+              internalCache.cleanUp();
+              return !cache.contains(entity1.nameIdentifier(), 
Entity.EntityType.SCHEMA);
+            });
 
-    Assertions.assertEquals(1, cache.size());
     Assertions.assertFalse(cache.contains(entity1.nameIdentifier(), 
Entity.EntityType.SCHEMA));
     Assertions.assertTrue(cache.contains(entity2.nameIdentifier(), 
Entity.EntityType.SCHEMA));
   }
@@ -755,51 +811,69 @@ public class TestCaffeineEntityCache {
   @Test
   void testExpireByWeightExceedMaxWeight() {
     Config config = new Config() {};
-    long oldMaxWeight = EntityCacheWeigher.MAX_WEIGHT;
-    EntityCacheWeigher.MAX_WEIGHT = 75;
     config.set(Configs.CACHE_WEIGHER_ENABLED, true);
-    EntityCache cache = new CaffeineEntityCache(config);
 
-    cache.put(entity7);
-    Cache<EntityCacheKey, List<Entity>> caffeineObject =
-        (Cache<EntityCacheKey, List<Entity>>) getCacheDataFrom(cache);
-    caffeineObject.cleanUp();
+    try (MockedStatic<EntityCacheWeigher> mockedStatic = 
mockStatic(EntityCacheWeigher.class)) {
+      mockedStatic.when(EntityCacheWeigher::getMaxWeight).thenReturn(75L);
+      mockedStatic.when(EntityCacheWeigher::getInstance).thenReturn(new 
EntityCacheWeigher());
 
-    Assertions.assertEquals(0, cache.size());
-    Assertions.assertFalse(cache.contains(entity7.nameIdentifier(), 
Entity.EntityType.METALAKE));
+      EntityCache cache = new CaffeineEntityCache(config);
+      cache.put(entity7);
 
-    EntityCacheWeigher.MAX_WEIGHT = oldMaxWeight;
-  }
+      Cache<EntityCacheKey, List<Entity>> caffeineObject =
+          (Cache<EntityCacheKey, List<Entity>>) getCacheDataFrom(cache);
 
-  @Test
-  void testExpireByWeight() {
-    Config config = new Config() {};
-    long maxWeight = EntityCacheWeigher.MAX_WEIGHT;
-    EntityCacheWeigher.MAX_WEIGHT = 100;
-    config.set(Configs.CACHE_WEIGHER_ENABLED, true);
-    EntityCache cache = new CaffeineEntityCache(config);
+      await()
+          .atMost(1, TimeUnit.SECONDS)
+          .pollInterval(50, TimeUnit.MILLISECONDS)
+          .until(
+              () -> {
+                caffeineObject.cleanUp();
+                return !cache.contains(entity7.nameIdentifier(), 
Entity.EntityType.METALAKE);
+              });
 
-    cache.put(entity7);
-    Assertions.assertEquals(1, cache.size());
-    Assertions.assertTrue(cache.contains(entity7.nameIdentifier(), 
Entity.EntityType.METALAKE));
-
-    cache.put(entity1);
-    cache.put(entity2);
-    Cache<EntityCacheKey, List<Entity>> caffeineObject =
-        (Cache<EntityCacheKey, List<Entity>>) getCacheDataFrom(cache);
-    caffeineObject.cleanUp();
-
-    Assertions.assertEquals(2, cache.size());
-    Assertions.assertTrue(cache.contains(entity1.nameIdentifier(), 
Entity.EntityType.SCHEMA));
-    Assertions.assertTrue(cache.contains(entity2.nameIdentifier(), 
Entity.EntityType.SCHEMA));
+      Assertions.assertEquals(0, cache.size());
+      Assertions.assertFalse(cache.contains(entity7.nameIdentifier(), 
Entity.EntityType.METALAKE));
+    }
+  }
 
-    EntityCacheWeigher.MAX_WEIGHT = maxWeight;
+  @Test
+  @SuppressWarnings("unchecked")
+  void testExpireByWeight() throws InterruptedException {
+    try (MockedStatic<EntityCacheWeigher> entityCacheWeigherMocked =
+        mockStatic(EntityCacheWeigher.class)) {
+      
entityCacheWeigherMocked.when(EntityCacheWeigher::getMaxWeight).thenReturn(105L);
+      entityCacheWeigherMocked
+          .when(EntityCacheWeigher::getInstance)
+          .thenReturn(new EntityCacheWeigher());
+      Config config = new Config() {};
+      config.set(Configs.CACHE_WEIGHER_ENABLED, true);
+
+      EntityCache cache = new CaffeineEntityCache(config);
+      cache.put(entity7);
+      Assertions.assertEquals(1, cache.size());
+      Assertions.assertTrue(cache.contains(entity7.nameIdentifier(), 
entity7.type()));
+
+      cache.put(entity1);
+      cache.put(entity2);
+      cache.getIfPresent(entity1.nameIdentifier(), entity1.type());
+      cache.getIfPresent(entity2.nameIdentifier(), entity2.type());
+
+      Cache<EntityCacheKey, List<Entity>> caffeineObject =
+          (Cache<EntityCacheKey, List<Entity>>) getCacheDataFrom(cache);
+      caffeineObject.cleanUp();
+      await()
+          .atMost(1500, MILLISECONDS)
+          .pollInterval(50, MILLISECONDS)
+          .until(() -> !cache.contains(entity7.nameIdentifier(), 
entity7.type()));
+    }
   }
 
   @Test
   void testExpireBySize() {
     Config config = new Config() {};
     config.set(Configs.CACHE_WEIGHER_ENABLED, false);
+    config.set(Configs.CACHE_EXPIRATION_TIME, 0L);
     config.set(Configs.CACHE_MAX_ENTRIES, 1);
     EntityCache cache = new CaffeineEntityCache(config);
 
@@ -808,18 +882,24 @@ public class TestCaffeineEntityCache {
 
     cache.put(entity1);
     caffeineObject.cleanUp();
+    await()
+        .atMost(500, MILLISECONDS)
+        .until(() -> cache.contains(entity1.nameIdentifier(), 
Entity.EntityType.SCHEMA));
     Assertions.assertEquals(1, cache.size());
-    Assertions.assertTrue(cache.contains(entity1.nameIdentifier(), 
Entity.EntityType.SCHEMA));
 
     cache.put(entity2);
     caffeineObject.cleanUp();
+    await()
+        .atMost(500, MILLISECONDS)
+        .until(() -> cache.contains(entity2.nameIdentifier(), entity2.type()));
     Assertions.assertEquals(1, cache.size());
-    Assertions.assertTrue(cache.contains(entity2.nameIdentifier(), 
Entity.EntityType.SCHEMA));
 
     cache.put(entity3);
     caffeineObject.cleanUp();
+    await()
+        .atMost(500, MILLISECONDS)
+        .until(() -> cache.contains(entity3.nameIdentifier(), entity3.type()));
     Assertions.assertEquals(1, cache.size());
-    Assertions.assertTrue(cache.contains(entity3.nameIdentifier(), 
Entity.EntityType.TABLE));
   }
 
   @Test
@@ -827,29 +907,38 @@ public class TestCaffeineEntityCache {
     int metalakeWeight =
         EntityCacheWeigher.getInstance()
             .weigh(
-                EntityCacheKey.of(ident7, Entity.EntityType.METALAKE), 
ImmutableList.of(entity7));
+                EntityCacheKey.of(entity7.nameIdentifier(), entity7.type()),
+                ImmutableList.of(entity7));
     Assertions.assertEquals(100, metalakeWeight);
 
     int catalogWeight =
         EntityCacheWeigher.getInstance()
-            .weigh(EntityCacheKey.of(ident6, Entity.EntityType.CATALOG), 
ImmutableList.of(entity6));
+            .weigh(
+                EntityCacheKey.of(entity6.nameIdentifier(), entity6.type()),
+                ImmutableList.of(entity6));
     Assertions.assertEquals(75, catalogWeight);
 
     int schemaWeight =
         EntityCacheWeigher.getInstance()
-            .weigh(EntityCacheKey.of(ident1, Entity.EntityType.SCHEMA), 
ImmutableList.of(entity1));
+            .weigh(
+                EntityCacheKey.of(entity1.nameIdentifier(), entity1.type()),
+                ImmutableList.of(entity1));
     Assertions.assertEquals(50, schemaWeight);
 
     int tableWeight =
         EntityCacheWeigher.getInstance()
-            .weigh(EntityCacheKey.of(ident3, Entity.EntityType.TABLE), 
ImmutableList.of(entity3));
+            .weigh(
+                EntityCacheKey.of(entity3.nameIdentifier(), entity3.type()),
+                ImmutableList.of(entity3));
     Assertions.assertEquals(15, tableWeight);
 
     int multiUserWeight =
         EntityCacheWeigher.getInstance()
             .weigh(
                 EntityCacheKey.of(
-                    ident12, Entity.EntityType.ROLE, 
SupportsRelationOperations.Type.ROLE_USER_REL),
+                    entity12.nameIdentifier(),
+                    entity12.type(),
+                    SupportsRelationOperations.Type.ROLE_USER_REL),
                 ImmutableList.of(entity8, entity9));
 
     Assertions.assertEquals(30, multiUserWeight);
@@ -857,16 +946,17 @@ public class TestCaffeineEntityCache {
 
   @Test
   void testGetIfPresentWithNull() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
     cache.put(entity1);
 
     Assertions.assertThrows(
         IllegalArgumentException.class, () -> cache.getIfPresent(null, 
Entity.EntityType.SCHEMA));
-    Assertions.assertThrows(IllegalArgumentException.class, () -> 
cache.getIfPresent(ident1, null));
+    Assertions.assertThrows(
+        IllegalArgumentException.class, () -> 
cache.getIfPresent(entity1.nameIdentifier(), null));
 
     Assertions.assertThrows(
         IllegalArgumentException.class,
-        () -> cache.getIfPresent(null, ident12, Entity.EntityType.ROLE));
+        () -> cache.getIfPresent(null, entity12.nameIdentifier(), 
entity12.type()));
     Assertions.assertThrows(
         IllegalArgumentException.class,
         () ->
@@ -874,19 +964,24 @@ public class TestCaffeineEntityCache {
                 SupportsRelationOperations.Type.ROLE_USER_REL, null, 
Entity.EntityType.ROLE));
     Assertions.assertThrows(
         IllegalArgumentException.class,
-        () -> 
cache.getIfPresent(SupportsRelationOperations.Type.ROLE_USER_REL, ident12, 
null));
+        () ->
+            cache.getIfPresent(
+                SupportsRelationOperations.Type.ROLE_USER_REL, 
entity12.nameIdentifier(), null));
     Assertions.assertThrows(
         IllegalArgumentException.class,
-        () -> 
cache.getIfPresent(SupportsRelationOperations.Type.ROLE_USER_REL, ident12, 
null));
+        () ->
+            cache.getIfPresent(
+                SupportsRelationOperations.Type.ROLE_USER_REL, 
entity12.nameIdentifier(), null));
   }
 
   @Test
   void testContainsWithNull() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     Assertions.assertThrows(
         IllegalArgumentException.class, () -> cache.contains(null, 
Entity.EntityType.SCHEMA));
-    Assertions.assertThrows(IllegalArgumentException.class, () -> 
cache.contains(ident7, null));
+    Assertions.assertThrows(
+        IllegalArgumentException.class, () -> 
cache.contains(entity7.nameIdentifier(), null));
 
     Assertions.assertThrows(
         IllegalArgumentException.class,
@@ -895,19 +990,22 @@ public class TestCaffeineEntityCache {
                 null, Entity.EntityType.ROLE, 
SupportsRelationOperations.Type.ROLE_USER_REL));
     Assertions.assertThrows(
         IllegalArgumentException.class,
-        () -> cache.contains(ident12, null, 
SupportsRelationOperations.Type.ROLE_USER_REL));
+        () ->
+            cache.contains(
+                entity12.nameIdentifier(), null, 
SupportsRelationOperations.Type.ROLE_USER_REL));
     Assertions.assertThrows(
         IllegalArgumentException.class,
-        () -> cache.contains(ident12, Entity.EntityType.ROLE, null));
+        () -> cache.contains(entity12.nameIdentifier(), entity12.type(), 
null));
   }
 
   @Test
   void testInvalidateWithNull() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     Assertions.assertThrows(
         IllegalArgumentException.class, () -> cache.invalidate(null, 
Entity.EntityType.CATALOG));
-    Assertions.assertThrows(IllegalArgumentException.class, () -> 
cache.invalidate(ident7, null));
+    Assertions.assertThrows(
+        IllegalArgumentException.class, () -> 
cache.invalidate(entity7.nameIdentifier(), null));
 
     Assertions.assertThrows(
         IllegalArgumentException.class,
@@ -916,15 +1014,17 @@ public class TestCaffeineEntityCache {
                 null, Entity.EntityType.ROLE, 
SupportsRelationOperations.Type.ROLE_USER_REL));
     Assertions.assertThrows(
         IllegalArgumentException.class,
-        () -> cache.invalidate(ident12, null, 
SupportsRelationOperations.Type.ROLE_USER_REL));
+        () ->
+            cache.invalidate(
+                entity12.nameIdentifier(), null, 
SupportsRelationOperations.Type.ROLE_USER_REL));
     Assertions.assertThrows(
         IllegalArgumentException.class,
-        () -> cache.invalidate(ident12, Entity.EntityType.ROLE, null));
+        () -> cache.invalidate(entity12.nameIdentifier(), entity12.type(), 
null));
   }
 
   @Test
   void testPutWithNull() {
-    EntityCache cache = new CaffeineEntityCache(new Config() {});
+    EntityCache cache = getNormalCache();
 
     Assertions.assertThrows(IllegalArgumentException.class, () -> 
cache.put(null));
 
@@ -940,64 +1040,29 @@ public class TestCaffeineEntityCache {
         IllegalArgumentException.class,
         () ->
             cache.put(
-                ident12, null, SupportsRelationOperations.Type.ROLE_USER_REL, 
ImmutableList.of()));
+                entity12.nameIdentifier(),
+                null,
+                SupportsRelationOperations.Type.ROLE_USER_REL,
+                ImmutableList.of()));
     Assertions.assertThrows(
         IllegalArgumentException.class,
-        () -> cache.put(ident12, Entity.EntityType.ROLE, null, 
ImmutableList.of()));
+        () -> cache.put(entity12.nameIdentifier(), entity12.type(), null, 
ImmutableList.of()));
     Assertions.assertThrows(
         IllegalArgumentException.class,
         () ->
             cache.put(
-                ident12,
+                entity12.nameIdentifier(),
                 Entity.EntityType.ROLE,
                 SupportsRelationOperations.Type.ROLE_USER_REL,
                 null));
   }
 
-  private static void initTestNameIdentifier() {
-    ident1 = NameIdentifier.of("metalake1", "catalog1", "schema1");
-    ident2 = NameIdentifier.of("metalake2", "catalog2", "schema2");
-    ident3 = NameIdentifier.of("metalake1", "catalog1", "schema1", "table1");
-    ident4 = NameIdentifier.of("metalake1", "catalog2", "schema1", "table2");
-    ident5 = NameIdentifier.of("metalake1", "catalog1", "schema2", "table3");
-    ident6 = NameIdentifier.of("metalake1", "catalog1");
-    ident7 = NameIdentifier.of("metalake1");
-
-    ident8 = NameIdentifierUtil.ofUser("metalake1", "user1");
-    ident9 = NameIdentifierUtil.ofUser("metalake1", "user2");
-
-    ident10 = NameIdentifierUtil.ofGroup("metalake2", "group1");
-    ident11 = NameIdentifierUtil.ofGroup("metalake2", "group2");
-
-    ident12 = NameIdentifierUtil.ofRole("metalake1", "role1");
-    ident13 = NameIdentifierUtil.ofRole("metalake2", "role2");
-  }
-
-  private static void initTestEntities() {
-    entity1 =
-        TestUtil.getTestSchemaEntity(
-            1L, "schema1", Namespace.of("metalake1", "catalog1"), 
"test_schema1");
-    entity2 =
-        TestUtil.getTestSchemaEntity(
-            2L, "schema2", Namespace.of("metalake2", "catalog2"), 
"test_schema2");
-    entity3 =
-        TestUtil.getTestTableEntity(3L, "table1", Namespace.of("metalake1", 
"catalog1", "schema1"));
-    entity4 =
-        TestUtil.getTestTableEntity(4L, "table2", Namespace.of("metalake1", 
"catalog2", "schema1"));
-    entity5 =
-        TestUtil.getTestTableEntity(5L, "table3", Namespace.of("metalake1", 
"catalog1", "schema2"));
-    entity6 =
-        TestUtil.getTestCatalogEntity(
-            6L, "catalog1", Namespace.of("metalake1"), "hive", "test_catalog");
-    entity7 = TestUtil.getTestMetalake(7L, "metalake1", "test_metalake1");
-
-    entity8 = TestUtil.getTestUserEntity(8L, "user1", "metalake1", 
ImmutableList.of(12L));
-    entity9 = TestUtil.getTestUserEntity(9L, "user2", "metalake1", 
ImmutableList.of(12L));
-
-    entity10 = TestUtil.getTestGroupEntity(10L, "group1", "metalake2", 
ImmutableList.of("role2"));
-    entity11 = TestUtil.getTestGroupEntity(11L, "group2", "metalake2", 
ImmutableList.of("role2"));
+  private EntityCache getNormalCache() {
+    Config config = new Config() {};
+    config.set(Configs.CACHE_EXPIRATION_TIME, 0L);
+    config.set(Configs.CACHE_WEIGHER_ENABLED, false);
+    config.set(Configs.CACHE_MAX_ENTRIES, 1000000);
 
-    entity12 = TestUtil.getTestRoleEntity(12L, "role1", "metalake1");
-    entity13 = TestUtil.getTestRoleEntity(13L, "role2", "metalake2");
+    return new CaffeineEntityCache(config);
   }
 }

Reply via email to