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

hefengen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git


The following commit(s) were added to refs/heads/master by this push:
     new fa813522b [type: refactor] polaris test refactor. (#4986)
fa813522b is described below

commit fa813522be09a1217da2e91ba3c714f5d58a515f
Author: DamonXue <[email protected]>
AuthorDate: Tue Aug 15 21:10:39 2023 +0800

    [type: refactor] polaris test refactor. (#4986)
    
    * polaris test refactor.
    
    * 11.
    
    * 11.
    
    * 11.
    
    * 11.
    
    * 11.
---
 shenyu-client/shenyu-client-core/pom.xml           |   5 +
 .../client/polaris/PolarisMockConfigFile.java      |  90 +++++++++++++-
 .../client/polaris/PolarisMockConfigService.java   |  59 +++++----
 .../data/polaris/PolarisSyncDataConfiguration.java |   4 +-
 .../polaris/PolarisSyncDataConfigurationTest.java  |  29 +++--
 .../data/polaris/PolarisSyncDataServiceTest.java   |   4 +-
 .../polaris/handler/PolarisCacheHandlerTest.java   |  21 ++--
 .../polaris/handler/PolarisMockConfigFile.java     | 138 ++++++++++++++++++++-
 .../PolarisMockConfigFilePublishService.java       |  64 ----------
 .../handler/PolarisMockConfigFileService.java      |  64 ----------
 .../polaris/handler/PolarisMockConfigService.java  | 111 +++++++++++++++++
 11 files changed, 400 insertions(+), 189 deletions(-)

diff --git a/shenyu-client/shenyu-client-core/pom.xml 
b/shenyu-client/shenyu-client-core/pom.xml
index 2986c7ec4..a4bfbf093 100644
--- a/shenyu-client/shenyu-client-core/pom.xml
+++ b/shenyu-client/shenyu-client-core/pom.xml
@@ -66,6 +66,11 @@
             <artifactId>shenyu-register-client-apollo</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.shenyu</groupId>
+            <artifactId>shenyu-register-client-polaris</artifactId>
+            <version>${project.version}</version>
+        </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-core</artifactId>
diff --git 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigFile.java
 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigFile.java
index fc2097855..2fd82b56e 100644
--- 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigFile.java
+++ 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigFile.java
@@ -20,10 +20,16 @@ package org.apache.shenyu.register.client.polaris;
 import com.tencent.polaris.configuration.api.core.ConfigFile;
 import com.tencent.polaris.configuration.api.core.ConfigFileChangeListener;
 import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
+import com.tencent.polaris.configuration.api.core.ConfigKVFile;
+import com.tencent.polaris.configuration.api.core.ConfigKVFileChangeListener;
 import java.lang.reflect.Type;
 import java.util.Objects;
+import java.util.Properties;
+import java.util.Set;
 
-public class PolarisMockConfigFile implements ConfigFile {
+public class PolarisMockConfigFile implements ConfigFile, ConfigKVFile {
+
+    private final Properties properties = new Properties();
 
     private final String namespace;
 
@@ -31,7 +37,7 @@ public class PolarisMockConfigFile implements ConfigFile {
 
     private String fileName;
 
-    private String content;
+    private final String content;
 
     public PolarisMockConfigFile(final ConfigFileMetadata configFileMetadata) {
         this(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
@@ -42,9 +48,7 @@ public class PolarisMockConfigFile implements ConfigFile {
     }
 
     public PolarisMockConfigFile(final String namespace, final String 
fileGroup, final String fileName) {
-        this.namespace = namespace;
-        this.fileGroup = fileGroup;
-        this.fileName = fileName;
+        this(namespace, fileGroup, fileName, null);
     }
 
     public PolarisMockConfigFile(final String namespace, final String 
fileGroup, final String fileName, final String content) {
@@ -79,6 +83,16 @@ public class PolarisMockConfigFile implements ConfigFile {
 
     }
 
+    @Override
+    public void addChangeListener(final ConfigKVFileChangeListener listener) {
+
+    }
+
+    @Override
+    public void removeChangeListener(final ConfigKVFileChangeListener 
listener) {
+
+    }
+
     @Override
     public void removeChangeListener(final ConfigFileChangeListener 
configFileChangeListener) {
 
@@ -124,4 +138,70 @@ public class PolarisMockConfigFile implements ConfigFile {
     public int hashCode() {
         return com.google.common.base.Objects.hashCode(getNamespace(), 
getFileGroup(), getFileName());
     }
+
+    @Override
+    public String getProperty(final String key, final String defaultValue) {
+        return properties.getProperty(key, defaultValue);
+    }
+
+    @Override
+    public Integer getIntProperty(final String key, final Integer 
defaultValue) {
+        return Integer.valueOf(getProperty(key, 
Integer.toString(defaultValue)));
+    }
+
+    @Override
+    public Long getLongProperty(final String key, final Long defaultValue) {
+        return Long.valueOf(getProperty(key, Long.toString(defaultValue)));
+    }
+
+    @Override
+    public Short getShortProperty(final String key, final Short defaultValue) {
+        return Short.valueOf(getProperty(key, Short.toString(defaultValue)));
+    }
+
+    @Override
+    public Float getFloatProperty(final String key, final Float defaultValue) {
+        return Float.valueOf(getProperty(key, Float.toString(defaultValue)));
+    }
+
+    @Override
+    public Double getDoubleProperty(final String key, final Double 
defaultValue) {
+        return Double.valueOf(getProperty(key, Double.toString(defaultValue)));
+    }
+
+    @Override
+    public Byte getByteProperty(final String key, final Byte defaultValue) {
+        return Byte.valueOf(getProperty(key, Byte.toString(defaultValue)));
+    }
+
+    @Override
+    public Boolean getBooleanProperty(final String key, final Boolean 
defaultValue) {
+        return Boolean.valueOf(getProperty(key, 
Boolean.toString(defaultValue)));
+    }
+
+    @Override
+    public String[] getArrayProperty(final String key, final String delimiter, 
final String[] defaultValue) {
+        return null;
+    }
+
+    @Override
+    public <T extends Enum<T>> T getEnumProperty(final String key, final 
Class<T> enumType, final T defaultValue) {
+        return null;
+    }
+
+    @Override
+    public <T> T getJsonProperty(final String key, final Class<T> clazz, final 
T defaultValue) {
+        return null;
+    }
+
+    @Override
+    public <T> T getJsonProperty(final String key, final Type typeOfT, final T 
defaultValue) {
+        return null;
+    }
+
+    @Override
+    public Set<String> getPropertyNames() {
+        return null;
+    }
+
 }
diff --git 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigService.java
 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigService.java
index dfcdd06dc..3c120f5c5 100644
--- 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigService.java
+++ 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigService.java
@@ -17,13 +17,15 @@
 
 package org.apache.shenyu.register.client.polaris;
 
+import com.tencent.polaris.api.exception.ServerCodes;
+import com.tencent.polaris.api.plugin.configuration.ConfigFile;
 import com.tencent.polaris.api.plugin.configuration.ConfigFileResponse;
-import com.tencent.polaris.configuration.api.core.ConfigFile;
 import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
 import com.tencent.polaris.configuration.api.core.ConfigFilePublishService;
 
 import com.tencent.polaris.configuration.api.core.ConfigFileService;
 import com.tencent.polaris.configuration.api.core.ConfigKVFile;
+import 
com.tencent.polaris.configuration.client.internal.DefaultConfigFileMetadata;
 import java.util.Map;
 
 public class PolarisMockConfigService implements ConfigFilePublishService, 
ConfigFileService {
@@ -35,65 +37,76 @@ public class PolarisMockConfigService implements 
ConfigFilePublishService, Confi
     }
 
     @Override
-    public ConfigFileResponse createConfigFile(final String s, final String 
s1, final String s2, final String s3) {
-        return null;
+    public ConfigFileResponse createConfigFile(final String namespace, final 
String fileGroup, final String fileName, final String content) {
+        final DefaultConfigFileMetadata configFileMetadata = new 
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+        store.put(configFileMetadata, content);
+        final ConfigFile configFile = new ConfigFile(namespace, fileGroup, 
fileName);
+        configFile.setContent(content);
+        return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success", 
configFile);
     }
 
     @Override
     public ConfigFileResponse createConfigFile(final ConfigFileMetadata 
configFileMetadata, final String content) {
-        store.put(configFileMetadata, content);
-        return null;
+        return createConfigFile(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName(), content);
     }
 
     @Override
-    public ConfigFileResponse updateConfigFile(final String s, final String 
s1, final String s2, final String s3) {
-        return null;
+    public ConfigFileResponse updateConfigFile(final String namespace, final 
String fileGroup, final String fileName, final String content) {
+        final DefaultConfigFileMetadata configFileMetadata = new 
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+        store.put(configFileMetadata, content);
+        final ConfigFile configFile =
+            new ConfigFile(namespace, fileGroup, fileName);
+        configFile.setContent(content);
+        return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success", 
configFile);
     }
 
     @Override
     public ConfigFileResponse updateConfigFile(final ConfigFileMetadata 
configFileMetadata, final String content) {
-        store.put(configFileMetadata, content);
-        return null;
+        return updateConfigFile(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName(), content);
     }
 
     @Override
-    public ConfigFileResponse releaseConfigFile(final String s, final String 
s1, final String s2) {
-        return null;
+    public ConfigFileResponse releaseConfigFile(final String namespace, final 
String fileGroup, final String fileName) {
+        final DefaultConfigFileMetadata configFileMetadata = new 
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+        final ConfigFile configFile = new ConfigFile(namespace, fileGroup, 
fileName);
+        configFile.setContent(store.getOrDefault(configFileMetadata, "{}"));
+        return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success", 
configFile);
     }
 
     @Override
     public ConfigFileResponse releaseConfigFile(final ConfigFileMetadata 
configFileMetadata) {
-        return null;
+        return releaseConfigFile(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
     }
 
     @Override
-    public ConfigKVFile getConfigPropertiesFile(final String s, final String 
s1, final String s2) {
-        return null;
+    public ConfigKVFile getConfigPropertiesFile(final String namespace, final 
String fileGroup, final String fileName) {
+        final DefaultConfigFileMetadata configFileMetadata = new 
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+        return new PolarisMockConfigFile(configFileMetadata, 
store.getOrDefault(configFileMetadata, "{}"));
     }
 
     @Override
     public ConfigKVFile getConfigPropertiesFile(final ConfigFileMetadata 
configFileMetadata) {
-        store.get(configFileMetadata);
-        return null;
+        return getConfigPropertiesFile(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
     }
 
     @Override
-    public ConfigKVFile getConfigYamlFile(final String s, final String s1, 
final String s2) {
-        return null;
+    public ConfigKVFile getConfigYamlFile(final String namespace, final String 
fileGroup, final String fileName) {
+        final DefaultConfigFileMetadata configFileMetadata = new 
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+        return new PolarisMockConfigFile(configFileMetadata, 
store.getOrDefault(configFileMetadata, "{}"));
     }
 
     @Override
     public ConfigKVFile getConfigYamlFile(final ConfigFileMetadata 
configFileMetadata) {
-        return null;
+        return getConfigYamlFile(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
     }
 
     @Override
-    public ConfigFile getConfigFile(final String s, final String s1, final 
String s2) {
-        return null;
+    public com.tencent.polaris.configuration.api.core.ConfigFile 
getConfigFile(final String namespace, final String fileGroup, final String 
fileName) {
+        return getConfigFile(new DefaultConfigFileMetadata(namespace, 
fileGroup, fileName));
     }
 
     @Override
-    public ConfigFile getConfigFile(final ConfigFileMetadata 
configFileMetadata) {
-        return new PolarisMockConfigFile(configFileMetadata, 
store.get(configFileMetadata));
+    public com.tencent.polaris.configuration.api.core.ConfigFile 
getConfigFile(final ConfigFileMetadata configFileMetadata) {
+        return new PolarisMockConfigFile(configFileMetadata, 
store.getOrDefault(configFileMetadata, "{}"));
     }
 }
diff --git 
a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/main/java/org/apache/shenyu/springboot/starter/sync/data/polaris/PolarisSyncDataConfiguration.java
 
b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/main/java/org/apache/shenyu/springboot/starter/sync/data/polaris/PolarisSyncDataConfiguration.java
index eb7a555ef..b31be4784 100644
--- 
a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/main/java/org/apache/shenyu/springboot/starter/sync/data/polaris/PolarisSyncDataConfiguration.java
+++ 
b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/main/java/org/apache/shenyu/springboot/starter/sync/data/polaris/PolarisSyncDataConfiguration.java
@@ -61,13 +61,13 @@ public class PolarisSyncDataConfiguration {
      * @return the sync data service
      */
     @Bean
-    public SyncDataService polarisSyncDataService(final PolarisConfig 
polarisConfig, final ObjectProvider<ConfigFileService> configFileServices,
+    public SyncDataService polarisSyncDataService(final 
ObjectProvider<PolarisConfig> polarisConfig, final 
ObjectProvider<ConfigFileService> configFileServices,
                                                   final 
ObjectProvider<PluginDataSubscriber> pluginSubscriber,
                                                   final 
ObjectProvider<List<MetaDataSubscriber>> metaSubscribers,
                                                   final 
ObjectProvider<List<AuthDataSubscriber>> authSubscribers,
                                                   final 
ObjectProvider<List<ProxySelectorDataSubscriber>> proxySelectorSubscribers) {
         LOGGER.info("you use polaris sync shenyu data.......");
-        return new PolarisSyncDataService(polarisConfig, 
configFileServices.getIfAvailable(), pluginSubscriber.getIfAvailable(),
+        return new PolarisSyncDataService(polarisConfig.getIfAvailable(), 
configFileServices.getIfAvailable(), pluginSubscriber.getIfAvailable(),
                 metaSubscribers.getIfAvailable(Collections::emptyList), 
authSubscribers.getIfAvailable(Collections::emptyList),
                 proxySelectorSubscribers.getIfAvailable());
     }
diff --git 
a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/test/java/org/apache/shenyu/springboot/stater/sync/data/polaris/PolarisSyncDataConfigurationTest.java
 
b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/test/java/org/apache/shenyu/springboot/stater/sync/data/polaris/PolarisSyncDataConfigurationTest.java
index dcbe8a75f..0febf044a 100644
--- 
a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/test/java/org/apache/shenyu/springboot/stater/sync/data/polaris/PolarisSyncDataConfigurationTest.java
+++ 
b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/test/java/org/apache/shenyu/springboot/stater/sync/data/polaris/PolarisSyncDataConfigurationTest.java
@@ -17,10 +17,16 @@
 
 package org.apache.shenyu.springboot.stater.sync.data.polaris;
 
+import com.tencent.polaris.client.api.SDKContext;
+import com.tencent.polaris.configuration.api.core.ConfigFileService;
+import com.tencent.polaris.configuration.client.DefaultConfigFileService;
 import 
org.apache.shenyu.springboot.starter.sync.data.polaris.PolarisSyncDataConfiguration;
 import org.apache.shenyu.sync.data.api.SyncDataService;
 import org.apache.shenyu.sync.data.polaris.config.PolarisConfig;
 import org.junit.jupiter.api.Assertions;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,8 +34,6 @@ import 
org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
 /**
  * The test case for {@link PolarisSyncDataConfiguration}.
  */
@@ -37,13 +41,15 @@ import static 
org.junit.jupiter.api.Assertions.assertNotNull;
 @SpringBootTest(
         classes = PolarisSyncDataConfiguration.class,
         properties = {
-                "shenyu.sync.polaris.url=127.0.0.1:8093",
+                "shenyu.sync.polaris.url=" + 
PolarisSyncDataConfigurationTest.URL,
                 "shenyu.sync.polaris.namespace=default",
                 "shenyu.sync.polaris.fileGroup=fileGroup"
         })
 @EnableAutoConfiguration
 public final class PolarisSyncDataConfigurationTest {
 
+    public static final String URL = "127.0.0.1:8093";
+
     @Autowired
     private SyncDataService syncDataService;
 
@@ -51,18 +57,15 @@ public final class PolarisSyncDataConfigurationTest {
     private PolarisConfig polarisConfig;
 
     @Test
-    public void polarisSyncDataServiceTest() {
+    public void polarisConfigServiceTest() {
         assertNotNull(syncDataService);
-    }
-
-    @Test
-    public void polarisConfigTest() {
         assertNotNull(polarisConfig);
-    }
-
-    @Test
-    public void polarisConfigServiceTest() {
         final PolarisSyncDataConfiguration polarisSyncDataConfiguration = new 
PolarisSyncDataConfiguration();
-        Assertions.assertDoesNotThrow(() -> 
polarisSyncDataConfiguration.polarisConfigServices(polarisConfig));
+
+        final ConfigFileService configFileService = 
Assertions.assertDoesNotThrow(() -> 
polarisSyncDataConfiguration.polarisConfigServices(polarisConfig));
+        assertInstanceOf(DefaultConfigFileService.class, configFileService);
+        DefaultConfigFileService defaultConfigFileService = 
(DefaultConfigFileService) configFileService;
+        final SDKContext sdkContext = defaultConfigFileService.getSDKContext();
+        
assertTrue(sdkContext.getConfig().getConfigFile().getServerConnector().getAddresses().contains(PolarisSyncDataConfigurationTest.URL));
     }
 }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/PolarisSyncDataServiceTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/PolarisSyncDataServiceTest.java
index 96995e83e..043a21ec1 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/PolarisSyncDataServiceTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/PolarisSyncDataServiceTest.java
@@ -19,7 +19,7 @@ package org.apache.shenyu.sync.data.polaris;
 
 import com.tencent.polaris.configuration.api.core.ConfigFileService;
 import org.apache.shenyu.sync.data.polaris.config.PolarisConfig;
-import 
org.apache.shenyu.sync.data.polaris.handler.PolarisMockConfigFileService;
+import org.apache.shenyu.sync.data.polaris.handler.PolarisMockConfigService;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -36,7 +36,7 @@ public class PolarisSyncDataServiceTest {
     @BeforeEach
     public void setup() {
         PolarisConfig polarisConfig = new PolarisConfig();
-        ConfigFileService configFileService = new 
PolarisMockConfigFileService(new HashMap<>());
+        ConfigFileService configFileService = new PolarisMockConfigService(new 
HashMap<>());
         polarisSyncDataService = new PolarisSyncDataService(polarisConfig, 
configFileService, null,
                 Collections.emptyList(), Collections.emptyList(), 
Collections.emptyList());
     }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisCacheHandlerTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisCacheHandlerTest.java
index 377bbc472..90012f163 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisCacheHandlerTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisCacheHandlerTest.java
@@ -24,6 +24,7 @@ import com.google.common.collect.Maps;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.tencent.polaris.api.exception.PolarisException;
+import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
 import com.tencent.polaris.configuration.api.core.ConfigFilePublishService;
 import com.tencent.polaris.configuration.api.core.ConfigFileService;
 import org.apache.shenyu.common.dto.AppAuthData;
@@ -92,12 +93,12 @@ public class PolarisCacheHandlerTest {
 
     private ConfigFilePublishService configFilePublishService;
 
-    private final Map<String, String> store = new HashMap<>();
+    private final Map<ConfigFileMetadata, String> store = new HashMap<>();
 
     @BeforeEach
     public void setUp() {
-        configFileService = new PolarisMockConfigFileService(store);
-        configFilePublishService = new 
PolarisMockConfigFilePublishService(store);
+        configFileService = new PolarisMockConfigService(store);
+        configFilePublishService = new PolarisMockConfigService(store);
     }
 
     @Test
@@ -133,7 +134,7 @@ public class PolarisCacheHandlerTest {
         assertEquals(2, onSubscribeList.size());
         assertEquals(2, unsubscribeList.size());
         assertEquals(
-                configFileService.getConfigFile(PLUGIN_DATA_FILE_NAME, 
NAMESPACE, "1").getContent(),
+                configFileService.getConfigFile(NAMESPACE, FILE_GROUP, 
PLUGIN_DATA_FILE_NAME).getContent(),
                 ImmutableMap.of(pluginName2, pluginData2, pluginName1, 
pluginData1).toString());
 
     }
@@ -179,7 +180,7 @@ public class PolarisCacheHandlerTest {
         assertEquals(2, subscribeList.size());
         assertEquals(2, unsubscribeList.size());
         assertEquals(
-                configFileService.getConfigFile(SELECTOR_DATA_FILE_NAME, 
NAMESPACE, "1").getContent(),
+                configFileService.getConfigFile(NAMESPACE, FILE_GROUP, 
SELECTOR_DATA_FILE_NAME).getContent(),
                 ImmutableMap.of(
                         selectorDataPluginName2,
                         ImmutableList.of(selectorData2),
@@ -223,7 +224,7 @@ public class PolarisCacheHandlerTest {
         assertEquals(2, subscribeList.size());
         assertEquals(2, unsubscribeList.size());
         assertEquals(
-                configFileService.getConfigFile(RULE_DATA_FILE_NAME, 
NAMESPACE, "1").getContent(),
+                configFileService.getConfigFile(NAMESPACE, FILE_GROUP, 
RULE_DATA_FILE_NAME).getContent(),
                 ImmutableMap.of(
                         selectorId2,
                         ImmutableList.of(ruleData2),
@@ -263,7 +264,7 @@ public class PolarisCacheHandlerTest {
         assertEquals(2, subscribeList.size());
         assertEquals(2, unsubscribeList.size());
         assertEquals(
-                configFileService.getConfigFile(META_DATA_FILE_NAME, 
NAMESPACE, "1").getContent(),
+                configFileService.getConfigFile(NAMESPACE, FILE_GROUP, 
META_DATA_FILE_NAME).getContent(),
                 ImmutableMap.of(metadataPath1, metaData1, metadataPath2, 
metaData2).toString());
     }
 
@@ -304,7 +305,7 @@ public class PolarisCacheHandlerTest {
         assertEquals(2, subscribeList.size());
         assertEquals(2, unsubscribeList.size());
         assertEquals(
-                configFileService.getConfigFile(AUTH_DATA_ID_FILE_NAME, 
NAMESPACE, "1").getContent(),
+                configFileService.getConfigFile(NAMESPACE, FILE_GROUP, 
AUTH_DATA_ID_FILE_NAME).getContent(),
                 ImmutableMap.of(mockAppKey2, appAuthData2, mockAppKey, 
appAuthData).toString());
     }
 
@@ -460,10 +461,10 @@ public class PolarisCacheHandlerTest {
     }
 
     private String getConfig(final String fileName) throws PolarisException {
-        return configFileService.getConfigFile(fileName, NAMESPACE, 
FILE_GROUP).getContent();
+        return configFileService.getConfigFile(NAMESPACE, FILE_GROUP, 
fileName).getContent();
     }
 
     private void publishConfig(final String fileName, final Object data) 
throws PolarisException {
-        configFilePublishService.createConfigFile(fileName, NAMESPACE, 
FILE_GROUP, data.toString());
+        configFilePublishService.createConfigFile(NAMESPACE, FILE_GROUP, 
fileName, data.toString());
     }
 }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFile.java
 
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFile.java
index f8cec6017..fbf1d3470 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFile.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFile.java
@@ -19,14 +19,38 @@ package org.apache.shenyu.sync.data.polaris.handler;
 
 import com.tencent.polaris.configuration.api.core.ConfigFile;
 import com.tencent.polaris.configuration.api.core.ConfigFileChangeListener;
-
+import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
+import com.tencent.polaris.configuration.api.core.ConfigKVFile;
+import com.tencent.polaris.configuration.api.core.ConfigKVFileChangeListener;
 import java.lang.reflect.Type;
+import java.util.Objects;
+import java.util.Properties;
+import java.util.Set;
+
+public class PolarisMockConfigFile implements ConfigFile, ConfigKVFile {
+
+    private final Properties properties = new Properties();
+
+    private final String namespace;
+
+    private final String fileGroup;
 
-public class PolarisMockConfigFile implements ConfigFile {
+    private String fileName;
 
     private final String content;
 
-    public PolarisMockConfigFile(final String content) {
+    public PolarisMockConfigFile(final ConfigFileMetadata configFileMetadata, 
final String content) {
+        this(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName(), content);
+    }
+
+    public PolarisMockConfigFile(final String namespace, final String 
fileGroup, final String fileName) {
+        this(namespace, fileGroup, fileName, null);
+    }
+
+    public PolarisMockConfigFile(final String namespace, final String 
fileGroup, final String fileName, final String content) {
+        this.namespace = namespace;
+        this.fileGroup = fileGroup;
+        this.fileName = fileName;
         this.content = content;
     }
 
@@ -47,7 +71,7 @@ public class PolarisMockConfigFile implements ConfigFile {
 
     @Override
     public boolean hasContent() {
-        return false;
+        return Objects.nonNull(content);
     }
 
     @Override
@@ -55,6 +79,16 @@ public class PolarisMockConfigFile implements ConfigFile {
 
     }
 
+    @Override
+    public void addChangeListener(final ConfigKVFileChangeListener listener) {
+
+    }
+
+    @Override
+    public void removeChangeListener(final ConfigKVFileChangeListener 
listener) {
+
+    }
+
     @Override
     public void removeChangeListener(final ConfigFileChangeListener 
configFileChangeListener) {
 
@@ -62,16 +96,108 @@ public class PolarisMockConfigFile implements ConfigFile {
 
     @Override
     public String getNamespace() {
-        return null;
+        return namespace;
     }
 
     @Override
     public String getFileGroup() {
-        return null;
+        return fileGroup;
+    }
+
+    /**
+     * set file name.
+     * @param fileName fileName
+     */
+    public void setFileName(final String fileName) {
+        this.fileName = fileName;
     }
 
     @Override
     public String getFileName() {
+        return fileName;
+    }
+
+    @Override
+    public boolean equals(final Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof ConfigFileMetadata)) {
+            return false;
+        }
+        final ConfigFileMetadata that = (ConfigFileMetadata) o;
+        return Objects.equals(getNamespace(), that.getNamespace()) && 
Objects.equals(getFileGroup(), that.getFileGroup())
+                   && Objects.equals(getFileName(), that.getFileName());
+    }
+
+    @Override
+    public int hashCode() {
+        return com.google.common.base.Objects.hashCode(getNamespace(), 
getFileGroup(), getFileName());
+    }
+
+    @Override
+    public String getProperty(final String key, final String defaultValue) {
+        return properties.getProperty(key, defaultValue);
+    }
+
+    @Override
+    public Integer getIntProperty(final String key, final Integer 
defaultValue) {
+        return Integer.valueOf(getProperty(key, 
Integer.toString(defaultValue)));
+    }
+
+    @Override
+    public Long getLongProperty(final String key, final Long defaultValue) {
+        return Long.valueOf(getProperty(key, Long.toString(defaultValue)));
+    }
+
+    @Override
+    public Short getShortProperty(final String key, final Short defaultValue) {
+        return Short.valueOf(getProperty(key, Short.toString(defaultValue)));
+    }
+
+    @Override
+    public Float getFloatProperty(final String key, final Float defaultValue) {
+        return Float.valueOf(getProperty(key, Float.toString(defaultValue)));
+    }
+
+    @Override
+    public Double getDoubleProperty(final String key, final Double 
defaultValue) {
+        return Double.valueOf(getProperty(key, Double.toString(defaultValue)));
+    }
+
+    @Override
+    public Byte getByteProperty(final String key, final Byte defaultValue) {
+        return Byte.valueOf(getProperty(key, Byte.toString(defaultValue)));
+    }
+
+    @Override
+    public Boolean getBooleanProperty(final String key, final Boolean 
defaultValue) {
+        return Boolean.valueOf(getProperty(key, 
Boolean.toString(defaultValue)));
+    }
+
+    @Override
+    public String[] getArrayProperty(final String key, final String delimiter, 
final String[] defaultValue) {
+        return new String[0];
+    }
+
+    @Override
+    public <T extends Enum<T>> T getEnumProperty(final String key, final 
Class<T> enumType, final T defaultValue) {
         return null;
     }
+
+    @Override
+    public <T> T getJsonProperty(final String key, final Class<T> clazz, final 
T defaultValue) {
+        return null;
+    }
+
+    @Override
+    public <T> T getJsonProperty(final String key, final Type typeOfT, final T 
defaultValue) {
+        return null;
+    }
+
+    @Override
+    public Set<String> getPropertyNames() {
+        return null;
+    }
+
 }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFilePublishService.java
 
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFilePublishService.java
deleted file mode 100644
index 54d5e3a00..000000000
--- 
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFilePublishService.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shenyu.sync.data.polaris.handler;
-
-import com.tencent.polaris.api.plugin.configuration.ConfigFileResponse;
-import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
-import com.tencent.polaris.configuration.api.core.ConfigFilePublishService;
-
-import java.util.Map;
-
-public class PolarisMockConfigFilePublishService implements 
ConfigFilePublishService {
-
-    private final Map<String, String> store;
-
-    public PolarisMockConfigFilePublishService(final Map<String, String> 
store) {
-        this.store = store;
-    }
-
-    @Override
-    public ConfigFileResponse createConfigFile(final String s, final String 
s1, final String s2, final String s3) {
-        store.put(s, s3);
-        return null;
-    }
-
-    @Override
-    public ConfigFileResponse createConfigFile(final ConfigFileMetadata 
configFileMetadata, final String s) {
-        return null;
-    }
-
-    @Override
-    public ConfigFileResponse updateConfigFile(final String s, final String 
s1, final String s2, final String s3) {
-        return null;
-    }
-
-    @Override
-    public ConfigFileResponse updateConfigFile(final ConfigFileMetadata 
configFileMetadata, final String s) {
-        return null;
-    }
-
-    @Override
-    public ConfigFileResponse releaseConfigFile(final String s, final String 
s1, final String s2) {
-        return null;
-    }
-
-    @Override
-    public ConfigFileResponse releaseConfigFile(final ConfigFileMetadata 
configFileMetadata) {
-        return null;
-    }
-}
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFileService.java
 
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFileService.java
deleted file mode 100644
index 1bbc6eed6..000000000
--- 
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFileService.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shenyu.sync.data.polaris.handler;
-
-import com.tencent.polaris.configuration.api.core.ConfigFile;
-import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
-import com.tencent.polaris.configuration.api.core.ConfigFileService;
-import com.tencent.polaris.configuration.api.core.ConfigKVFile;
-
-import java.util.Map;
-
-public class PolarisMockConfigFileService implements ConfigFileService {
-
-    private final Map<String, String> store;
-
-    public PolarisMockConfigFileService(final Map<String, String> store) {
-        this.store = store;
-    }
-
-    @Override
-    public ConfigKVFile getConfigPropertiesFile(final String s, final String 
s1, final String s2) {
-        return null;
-    }
-
-    @Override
-    public ConfigKVFile getConfigPropertiesFile(final ConfigFileMetadata 
configFileMetadata) {
-        return null;
-    }
-
-    @Override
-    public ConfigKVFile getConfigYamlFile(final String s, final String s1, 
final String s2) {
-        return null;
-    }
-
-    @Override
-    public ConfigKVFile getConfigYamlFile(final ConfigFileMetadata 
configFileMetadata) {
-        return null;
-    }
-
-    @Override
-    public ConfigFile getConfigFile(final String s, final String s1, final 
String s2) {
-        return new PolarisMockConfigFile(store.getOrDefault(s, "{}"));
-    }
-
-    @Override
-    public ConfigFile getConfigFile(final ConfigFileMetadata 
configFileMetadata) {
-        return null;
-    }
-}
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigService.java
 
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigService.java
new file mode 100644
index 000000000..ec39a9935
--- /dev/null
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigService.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.sync.data.polaris.handler;
+
+import com.tencent.polaris.api.exception.ServerCodes;
+import com.tencent.polaris.api.plugin.configuration.ConfigFile;
+import com.tencent.polaris.api.plugin.configuration.ConfigFileResponse;
+import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
+import com.tencent.polaris.configuration.api.core.ConfigFilePublishService;
+import com.tencent.polaris.configuration.api.core.ConfigFileService;
+import com.tencent.polaris.configuration.api.core.ConfigKVFile;
+import 
com.tencent.polaris.configuration.client.internal.DefaultConfigFileMetadata;
+import java.util.Map;
+
+public class PolarisMockConfigService implements ConfigFilePublishService, 
ConfigFileService {
+
+    private final Map<ConfigFileMetadata, String> store;
+
+    public PolarisMockConfigService(final Map<ConfigFileMetadata, String> 
store) {
+        this.store = store;
+    }
+
+    @Override
+    public ConfigFileResponse createConfigFile(final String namespace, final 
String fileGroup, final String fileName, final String content) {
+        final DefaultConfigFileMetadata configFileMetadata = new 
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+        store.put(configFileMetadata, content);
+        final ConfigFile configFile = new ConfigFile(namespace, fileGroup, 
fileName);
+        configFile.setContent(content);
+        return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success", 
configFile);
+    }
+
+    @Override
+    public ConfigFileResponse createConfigFile(final ConfigFileMetadata 
configFileMetadata, final String content) {
+        return createConfigFile(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName(), content);
+    }
+
+    @Override
+    public ConfigFileResponse updateConfigFile(final String namespace, final 
String fileGroup, final String fileName, final String content) {
+        final DefaultConfigFileMetadata configFileMetadata = new 
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+        store.put(configFileMetadata, content);
+        final ConfigFile configFile =
+            new ConfigFile(namespace, fileGroup, fileName);
+        configFile.setContent(content);
+        return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success", 
configFile);
+    }
+
+    @Override
+    public ConfigFileResponse updateConfigFile(final ConfigFileMetadata 
configFileMetadata, final String content) {
+        return updateConfigFile(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName(), content);
+    }
+
+    @Override
+    public ConfigFileResponse releaseConfigFile(final String namespace, final 
String fileGroup, final String fileName) {
+        final DefaultConfigFileMetadata configFileMetadata = new 
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+        final ConfigFile configFile = new ConfigFile(namespace, fileGroup, 
fileName);
+        configFile.setContent(store.getOrDefault(configFileMetadata, "{}"));
+        return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success", 
configFile);
+    }
+
+    @Override
+    public ConfigFileResponse releaseConfigFile(final ConfigFileMetadata 
configFileMetadata) {
+        return releaseConfigFile(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
+    }
+
+    @Override
+    public ConfigKVFile getConfigPropertiesFile(final String namespace, final 
String fileGroup, final String fileName) {
+        final DefaultConfigFileMetadata configFileMetadata = new 
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+        return new PolarisMockConfigFile(configFileMetadata, 
store.getOrDefault(configFileMetadata, "{}"));
+    }
+
+    @Override
+    public ConfigKVFile getConfigPropertiesFile(final ConfigFileMetadata 
configFileMetadata) {
+        return getConfigPropertiesFile(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
+    }
+
+    @Override
+    public ConfigKVFile getConfigYamlFile(final String namespace, final String 
fileGroup, final String fileName) {
+        final DefaultConfigFileMetadata configFileMetadata = new 
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+        return new PolarisMockConfigFile(configFileMetadata, 
store.getOrDefault(configFileMetadata, "{}"));
+    }
+
+    @Override
+    public ConfigKVFile getConfigYamlFile(final ConfigFileMetadata 
configFileMetadata) {
+        return getConfigYamlFile(configFileMetadata.getNamespace(), 
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
+    }
+
+    @Override
+    public com.tencent.polaris.configuration.api.core.ConfigFile 
getConfigFile(final String namespace, final String fileGroup, final String 
fileName) {
+        return getConfigFile(new DefaultConfigFileMetadata(namespace, 
fileGroup, fileName));
+    }
+
+    @Override
+    public com.tencent.polaris.configuration.api.core.ConfigFile 
getConfigFile(final ConfigFileMetadata configFileMetadata) {
+        return new PolarisMockConfigFile(configFileMetadata, 
store.getOrDefault(configFileMetadata, "{}"));
+    }
+}


Reply via email to