Skip to content
Snippets Groups Projects
Unverified Commit 6eca6407 authored by Patrick Jiang(白泽)'s avatar Patrick Jiang(白泽) Committed by GitHub
Browse files

Merge pull request #549 from Patrick0308/config-center-zk-test-cover

Improve code coverage of zookeeper config center
parents 0a08cdaa 4a0f73e1
No related branches found
No related tags found
No related merge requests found
......@@ -20,11 +20,9 @@ package zookeeper
import (
"strings"
"sync"
"time"
)
import (
"github.com/dubbogo/go-zookeeper/zk"
gxset "github.com/dubbogo/gost/container/set"
perrors "github.com/pkg/errors"
)
......@@ -81,32 +79,6 @@ func newZookeeperDynamicConfiguration(url *common.URL) (*zookeeperDynamicConfigu
}
func newMockZookeeperDynamicConfiguration(url *common.URL, opts ...zookeeper.Option) (*zk.TestCluster, *zookeeperDynamicConfiguration, error) {
c := &zookeeperDynamicConfiguration{
url: url,
rootPath: "/" + url.GetParam(constant.CONFIG_NAMESPACE_KEY, config_center.DEFAULT_GROUP) + "/config",
}
var (
tc *zk.TestCluster
err error
)
tc, c.client, _, err = zookeeper.NewMockZookeeperClient("test", 15*time.Second, opts...)
if err != nil {
logger.Errorf("mock zookeeper client start error ,error message is %v", err)
return tc, c, err
}
c.wg.Add(1)
go zookeeper.HandleClientRestart(c)
c.listener = zookeeper.NewZkEventListener(c.client)
c.cacheListener = NewCacheListener(c.rootPath)
err = c.client.Create(c.rootPath)
go c.listener.ListenServiceEvent(url, c.rootPath, c.cacheListener)
return tc, c, err
}
func (c *zookeeperDynamicConfiguration) AddListener(key string, listener config_center.ConfigurationListener, opions ...config_center.Option) {
c.cacheListener.AddListener(key, listener)
}
......
......@@ -18,6 +18,7 @@ package zookeeper
import (
"fmt"
"strconv"
"sync"
"testing"
)
......@@ -30,16 +31,28 @@ import (
import (
"github.com/apache/dubbo-go/common"
"github.com/apache/dubbo-go/common/constant"
"github.com/apache/dubbo-go/config_center"
"github.com/apache/dubbo-go/config_center/parser"
)
func initZkData(group string, t *testing.T) (*zk.TestCluster, *zookeeperDynamicConfiguration) {
regurl, _ := common.NewURL("registry://127.0.0.1:1111")
ts, reg, err := newMockZookeeperDynamicConfiguration(&regurl)
reg.SetParser(&parser.DefaultConfigurationParser{})
ts, err := zk.StartTestCluster(1, nil, nil)
assert.NoError(t, err)
assert.NotNil(t, ts.Servers[0])
urlString := "registry://127.0.0.1:" + strconv.Itoa(ts.Servers[0].Port)
regurl, err := common.NewURL(urlString)
assert.NoError(t, err)
regurl.AddParam(constant.REGISTRY_TIMEOUT_KEY, "15s")
zkFactory := &zookeeperDynamicConfigurationFactory{}
reg, err := zkFactory.GetDynamicConfiguration(&regurl)
zreg, ok := reg.(*zookeeperDynamicConfiguration)
assert.True(t, ok)
assert.NoError(t, err)
assert.True(t, zreg.IsAvailable())
assert.Equal(t, zreg.GetUrl(), regurl)
assert.True(t, zreg.RestartCallBack())
zreg.SetParser(&parser.DefaultConfigurationParser{})
data := `
dubbo.consumer.request_timeout=5s
......@@ -63,20 +76,20 @@ func initZkData(group string, t *testing.T) (*zk.TestCluster, *zookeeperDynamicC
dubbo.service.com.ikurento.user.UserProvider.cluster=failover
`
if group != "" {
err = reg.client.Create(reg.rootPath + "/dubbo/dubbo.properties")
err = zreg.client.Create(zreg.rootPath + "/dubbo/dubbo.properties")
assert.NoError(t, err)
_, err = reg.client.Conn.Set(reg.rootPath+"/dubbo/dubbo.properties", []byte(data), 0)
_, err = zreg.client.Conn.Set(zreg.rootPath+"/dubbo/dubbo.properties", []byte(data), 0)
assert.NoError(t, err)
} else {
err = reg.client.Create(reg.rootPath + "/dubbo.properties")
err = zreg.client.Create(zreg.rootPath + "/dubbo.properties")
assert.NoError(t, err)
_, err = reg.client.Conn.Set(reg.rootPath+"/dubbo.properties", []byte(data), 0)
_, err = zreg.client.Conn.Set(zreg.rootPath+"/dubbo.properties", []byte(data), 0)
assert.NoError(t, err)
}
return ts, reg
return ts, zreg
}
func Test_GetConfig(t *testing.T) {
......@@ -87,6 +100,12 @@ func Test_GetConfig(t *testing.T) {
m, err := reg.Parser().Parse(configs)
assert.NoError(t, err)
assert.Equal(t, "5s", m["dubbo.consumer.request_timeout"])
configs, err = reg.GetProperties("dubbo.properties")
assert.Error(t, err)
configs, err = reg.GetInternalProperty("dubbo.properties")
assert.Error(t, err)
configs, err = reg.GetRule("dubbo.properties")
assert.Error(t, err)
}
func Test_AddListener(t *testing.T) {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment