From d5a491ee51c978e9ef24e6e56fe7acf45d8a5346 Mon Sep 17 00:00:00 2001
From: Joe Zou <yixian.zou@gmail.com>
Date: Mon, 3 Aug 2020 23:03:20 +0800
Subject: [PATCH] add case for this feature

---
 config/config_center_config.go      |  2 +-
 config/config_center_config_test.go | 45 +++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/config/config_center_config.go b/config/config_center_config.go
index a70415004..e42358201 100644
--- a/config/config_center_config.go
+++ b/config/config_center_config.go
@@ -89,7 +89,7 @@ func (c *ConfigCenterConfig) GetUrlMap() url.Values {
 type configCenter struct {
 }
 
-// toURL will compatible with baseConfig.ConfigCenterConfig.Address before 1.6.0
+// toURL will compatible with baseConfig.ConfigCenterConfig.Address and baseConfig.ConfigCenterConfig.RemoteRef before 1.6.0
 // After 1.6.0 will not compatible, only baseConfig.ConfigCenterConfig.RemoteRef
 func (b *configCenter) toURL(baseConfig BaseConfig) (common.URL, error) {
 	if len(baseConfig.ConfigCenterConfig.Address) > 0 {
diff --git a/config/config_center_config_test.go b/config/config_center_config_test.go
index ae653181e..3a08e0130 100644
--- a/config/config_center_config_test.go
+++ b/config/config_center_config_test.go
@@ -49,3 +49,48 @@ func TestStartConfigCenter(t *testing.T) {
 	assert.True(t, b)
 	assert.Equal(t, "ikurento.com", v)
 }
+
+func TestStartConfigCenterWithRemoteRef(t *testing.T) {
+	extension.SetConfigCenterFactory("mock", func() config_center.DynamicConfigurationFactory {
+		return &config_center.MockDynamicConfigurationFactory{}
+	})
+	m := make(map[string]*RemoteConfig)
+	m["mock"] = &RemoteConfig{Address: "172.0.0.1"}
+	baseConfig = &BaseConfig{
+		Remotes: m,
+		ConfigCenterConfig: &ConfigCenterConfig{
+			Protocol:   "mock",
+			Group:      "dubbo",
+			RemoteRef:  "mock",
+			ConfigFile: "mockDubbo.properties",
+		}}
+
+	c := &configCenter{}
+	err := c.startConfigCenter(*baseConfig)
+	assert.NoError(t, err)
+	b, v := config.GetEnvInstance().Configuration().Back().Value.(*config.InmemoryConfiguration).GetProperty("dubbo.application.organization")
+	assert.True(t, b)
+	assert.Equal(t, "ikurento.com", v)
+
+	baseConfig = nil
+}
+
+func TestStartConfigCenterWithRemoteRefError(t *testing.T) {
+	extension.SetConfigCenterFactory("mock", func() config_center.DynamicConfigurationFactory {
+		return &config_center.MockDynamicConfigurationFactory{}
+	})
+	m := make(map[string]*RemoteConfig)
+	m["mock"] = &RemoteConfig{Address: "172.0.0.1"}
+	baseConfig := &BaseConfig{
+		Remotes: m,
+		ConfigCenterConfig: &ConfigCenterConfig{
+			Protocol:   "mock",
+			Group:      "dubbo",
+			RemoteRef:  "mock",
+			ConfigFile: "mockDubbo.properties",
+		}}
+
+	c := &configCenter{}
+	err := c.startConfigCenter(*baseConfig)
+	assert.Error(t, err)
+}
-- 
GitLab