From 23482a685d9f5a280a42f8a284618c63b7552f50 Mon Sep 17 00:00:00 2001 From: Dmitri Bourlatchkov Date: Mon, 2 Jun 2025 13:13:06 -0400 Subject: [PATCH] Add unit test for legacy config lookup Following up on #1766 --- .../PolarisConfigurationStoreTest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/polaris-core/src/test/java/org/apache/polaris/service/storage/PolarisConfigurationStoreTest.java b/polaris-core/src/test/java/org/apache/polaris/service/storage/PolarisConfigurationStoreTest.java index 9994b3833f..daff3df96e 100644 --- a/polaris-core/src/test/java/org/apache/polaris/service/storage/PolarisConfigurationStoreTest.java +++ b/polaris-core/src/test/java/org/apache/polaris/service/storage/PolarisConfigurationStoreTest.java @@ -20,12 +20,15 @@ import jakarta.annotation.Nullable; import java.util.List; +import java.util.Map; +import java.util.function.Function; import java.util.function.Supplier; import org.apache.polaris.core.PolarisCallContext; import org.apache.polaris.core.config.BehaviorChangeConfiguration; import org.apache.polaris.core.config.FeatureConfiguration; import org.apache.polaris.core.config.PolarisConfiguration; import org.apache.polaris.core.config.PolarisConfigurationStore; +import org.apache.polaris.core.entity.CatalogEntity; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -144,4 +147,39 @@ public void testBehaviorAndFeatureConfigs() { consumer.consumeConfiguration(featureConfig, () -> 42, 43); } + + @Test + public void testEntityOverrides() { + @SuppressWarnings("deprecation") + Function> cfg = + i -> + PolarisConfiguration.builder() + .key("key" + i) + .catalogConfig("polaris.config.catalog-key" + i) + .catalogConfigUnsafe("legacy-key" + i) + .description("") + .defaultValue("test-default" + i) + .buildFeatureConfiguration(); + + PolarisConfigurationStore store = + new PolarisConfigurationStore() { + @Override + public @Nullable T getConfiguration(PolarisCallContext ctx, String configName) { + //noinspection unchecked + return (T) Map.of("key2", "config-value2").get(configName); + } + }; + + PolarisCallContext ctx = null; + CatalogEntity entity = + new CatalogEntity.Builder() + .addProperty("polaris.config.catalog-key3", "entity-new3") + .addProperty("legacy-key4", "entity-legacy4") + .build(); + + Assertions.assertEquals("test-default1", store.getConfiguration(ctx, entity, cfg.apply(1))); + Assertions.assertEquals("config-value2", store.getConfiguration(ctx, entity, cfg.apply(2))); + Assertions.assertEquals("entity-new3", store.getConfiguration(ctx, entity, cfg.apply(3))); + Assertions.assertEquals("entity-legacy4", store.getConfiguration(ctx, entity, cfg.apply(4))); + } }