Skip to content

Commit c70b1c7

Browse files
committed
sail:config新增接口实现检测并完善测试用例
1 parent 30b6307 commit c70b1c7

File tree

2 files changed

+35
-7
lines changed

2 files changed

+35
-7
lines changed

sail/config.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ type ConfigProvider interface {
4343
ViaNacos(endpoints, namespaceID, groupName, dataID string, clientCfg ...constant.ClientConfig) Parser
4444
}
4545

46+
var _ ConfigProvider = &configImpl{}
47+
4648
// ViaFile 通过文件操作配置
4749
func (ci *configImpl) ViaFile(filename string) Parser {
4850
content, err := utils.File().GetContents(filename)
@@ -142,12 +144,19 @@ func (ci *configImpl) ViaNacos(endpoints, namespaceID, groupName, dataID string,
142144
if err != nil && ci.panicWhileErr {
143145
panic(err)
144146
}
145-
content, err := client.GetConfig(vo.ConfigParam{
146-
DataId: dataID,
147-
Group: groupName,
148-
})
149-
if err != nil && ci.panicWhileErr {
150-
panic(err)
147+
if client == nil && ci.panicWhileErr {
148+
panic("client is nil")
149+
}
150+
var content []byte
151+
if client != nil {
152+
data, err := client.GetConfig(vo.ConfigParam{
153+
DataId: dataID,
154+
Group: groupName,
155+
})
156+
content = []byte(data)
157+
if err != nil && ci.panicWhileErr {
158+
panic(err)
159+
}
151160
}
152161

153162
//当监听函数被设置时,需要执行监听
@@ -163,7 +172,7 @@ func (ci *configImpl) ViaNacos(endpoints, namespaceID, groupName, dataID string,
163172
})
164173
}
165174

166-
return &parserImpl{content: []byte(content)}
175+
return &parserImpl{content: content}
167176
}
168177

169178
// parserImpl 解析器实现
@@ -177,6 +186,9 @@ type Parser interface {
177186
Parse(fn func(content []byte, viaWatch bool))
178187
}
179188

189+
var _ Parser = &parserImpl{}
190+
191+
// Parse 解析处理函数
180192
func (pi *parserImpl) Parse(fn func(content []byte, viaWatch bool)) {
181193
if fn != nil {
182194
fn(pi.content, false)

sail/config_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,19 @@ func TestConfigViaEtcd(t *testing.T) {
8585
Config(false, watcherFunc).ViaEtcd(etcdConf, testConfigFilename).Parse(watcherFunc)
8686
})
8787
}
88+
89+
func TestConfigViaNacos(t *testing.T) {
90+
t.Run("ConfigViaNacos-Panic", func(t *testing.T) {
91+
assert.Panics(t, func() {
92+
Config(true, nil).ViaNacos("127.0.0.1:8848", "", "", "this-file-not-exist.json")
93+
})
94+
})
95+
t.Run("ConfigViaNacos-None-Panic", func(t *testing.T) {
96+
Config(false, nil).ViaNacos("127.0.0.1:8848", "", "", "this-file-not-exist.json")
97+
})
98+
t.Run("ConfigViaNacos-Truly", func(t *testing.T) {
99+
Config(false, watcherFunc).ViaNacos("127.0.0.1:8848", "", "", testConfigFilename)
100+
101+
Config(false, watcherFunc).ViaNacos("127.0.0.1:8848", "", "", testConfigFilename).Parse(watcherFunc)
102+
})
103+
}

0 commit comments

Comments
 (0)