Skip to content

Commit 6eca640

Browse files
authored
Merge pull request #549 from Patrick0308/config-center-zk-test-cover
Improve code coverage of zookeeper config center
2 parents 0a08cda + 4a0f73e commit 6eca640

File tree

2 files changed

+28
-37
lines changed

2 files changed

+28
-37
lines changed

config_center/zookeeper/impl.go

-28
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,9 @@ package zookeeper
2020
import (
2121
"strings"
2222
"sync"
23-
"time"
2423
)
2524

2625
import (
27-
"github.com/dubbogo/go-zookeeper/zk"
2826
gxset "github.com/dubbogo/gost/container/set"
2927
perrors "github.com/pkg/errors"
3028
)
@@ -81,32 +79,6 @@ func newZookeeperDynamicConfiguration(url *common.URL) (*zookeeperDynamicConfigu
8179

8280
}
8381

84-
func newMockZookeeperDynamicConfiguration(url *common.URL, opts ...zookeeper.Option) (*zk.TestCluster, *zookeeperDynamicConfiguration, error) {
85-
c := &zookeeperDynamicConfiguration{
86-
url: url,
87-
rootPath: "/" + url.GetParam(constant.CONFIG_NAMESPACE_KEY, config_center.DEFAULT_GROUP) + "/config",
88-
}
89-
var (
90-
tc *zk.TestCluster
91-
err error
92-
)
93-
tc, c.client, _, err = zookeeper.NewMockZookeeperClient("test", 15*time.Second, opts...)
94-
if err != nil {
95-
logger.Errorf("mock zookeeper client start error ,error message is %v", err)
96-
return tc, c, err
97-
}
98-
c.wg.Add(1)
99-
go zookeeper.HandleClientRestart(c)
100-
101-
c.listener = zookeeper.NewZkEventListener(c.client)
102-
c.cacheListener = NewCacheListener(c.rootPath)
103-
104-
err = c.client.Create(c.rootPath)
105-
go c.listener.ListenServiceEvent(url, c.rootPath, c.cacheListener)
106-
return tc, c, err
107-
108-
}
109-
11082
func (c *zookeeperDynamicConfiguration) AddListener(key string, listener config_center.ConfigurationListener, opions ...config_center.Option) {
11183
c.cacheListener.AddListener(key, listener)
11284
}

config_center/zookeeper/impl_test.go

+28-9
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package zookeeper
1818

1919
import (
2020
"fmt"
21+
"strconv"
2122
"sync"
2223
"testing"
2324
)
@@ -30,16 +31,28 @@ import (
3031

3132
import (
3233
"github.com/apache/dubbo-go/common"
34+
"github.com/apache/dubbo-go/common/constant"
3335
"github.com/apache/dubbo-go/config_center"
3436
"github.com/apache/dubbo-go/config_center/parser"
3537
)
3638

3739
func initZkData(group string, t *testing.T) (*zk.TestCluster, *zookeeperDynamicConfiguration) {
38-
regurl, _ := common.NewURL("registry://127.0.0.1:1111")
39-
ts, reg, err := newMockZookeeperDynamicConfiguration(&regurl)
40-
reg.SetParser(&parser.DefaultConfigurationParser{})
41-
40+
ts, err := zk.StartTestCluster(1, nil, nil)
41+
assert.NoError(t, err)
42+
assert.NotNil(t, ts.Servers[0])
43+
urlString := "registry://127.0.0.1:" + strconv.Itoa(ts.Servers[0].Port)
44+
regurl, err := common.NewURL(urlString)
45+
assert.NoError(t, err)
46+
regurl.AddParam(constant.REGISTRY_TIMEOUT_KEY, "15s")
47+
zkFactory := &zookeeperDynamicConfigurationFactory{}
48+
reg, err := zkFactory.GetDynamicConfiguration(&regurl)
49+
zreg, ok := reg.(*zookeeperDynamicConfiguration)
50+
assert.True(t, ok)
4251
assert.NoError(t, err)
52+
assert.True(t, zreg.IsAvailable())
53+
assert.Equal(t, zreg.GetUrl(), regurl)
54+
assert.True(t, zreg.RestartCallBack())
55+
zreg.SetParser(&parser.DefaultConfigurationParser{})
4356

4457
data := `
4558
dubbo.consumer.request_timeout=5s
@@ -63,20 +76,20 @@ func initZkData(group string, t *testing.T) (*zk.TestCluster, *zookeeperDynamicC
6376
dubbo.service.com.ikurento.user.UserProvider.cluster=failover
6477
`
6578
if group != "" {
66-
err = reg.client.Create(reg.rootPath + "/dubbo/dubbo.properties")
79+
err = zreg.client.Create(zreg.rootPath + "/dubbo/dubbo.properties")
6780
assert.NoError(t, err)
6881

69-
_, err = reg.client.Conn.Set(reg.rootPath+"/dubbo/dubbo.properties", []byte(data), 0)
82+
_, err = zreg.client.Conn.Set(zreg.rootPath+"/dubbo/dubbo.properties", []byte(data), 0)
7083
assert.NoError(t, err)
7184
} else {
72-
err = reg.client.Create(reg.rootPath + "/dubbo.properties")
85+
err = zreg.client.Create(zreg.rootPath + "/dubbo.properties")
7386
assert.NoError(t, err)
7487

75-
_, err = reg.client.Conn.Set(reg.rootPath+"/dubbo.properties", []byte(data), 0)
88+
_, err = zreg.client.Conn.Set(zreg.rootPath+"/dubbo.properties", []byte(data), 0)
7689
assert.NoError(t, err)
7790
}
7891

79-
return ts, reg
92+
return ts, zreg
8093
}
8194

8295
func Test_GetConfig(t *testing.T) {
@@ -87,6 +100,12 @@ func Test_GetConfig(t *testing.T) {
87100
m, err := reg.Parser().Parse(configs)
88101
assert.NoError(t, err)
89102
assert.Equal(t, "5s", m["dubbo.consumer.request_timeout"])
103+
configs, err = reg.GetProperties("dubbo.properties")
104+
assert.Error(t, err)
105+
configs, err = reg.GetInternalProperty("dubbo.properties")
106+
assert.Error(t, err)
107+
configs, err = reg.GetRule("dubbo.properties")
108+
assert.Error(t, err)
90109
}
91110

92111
func Test_AddListener(t *testing.T) {

0 commit comments

Comments
 (0)