Files
go-trustlog/internal/grpcclient/config_test.go
ryan 0ec1d3b87d refactor: 更改module路径为独立仓库路径
- go.yandata.net/iod/iod/go-trustlog → go.yandata.net/wangsiyuan/go-trustlog
- 更新 go.mod module声明
- 更新 README.md 安装说明
- 批量更新所有 .go 文件中的 import 路径
- 61个文件受影响

这样go-trustlog可以作为独立SDK使用
2025-12-26 14:35:39 +08:00

120 lines
2.7 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package grpcclient_test
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.yandata.net/wangsiyuan/go-trustlog/internal/grpcclient"
)
func TestConfig_GetAddrs(t *testing.T) {
tests := []struct {
name string
config grpcclient.Config
wantAddrs []string
wantErr bool
errMsg string
}{
{
name: "ServerAddrs优先级高于ServerAddr",
config: grpcclient.Config{
ServerAddrs: []string{"server1:9090", "server2:9090"},
ServerAddr: "server3:9090",
},
wantAddrs: []string{"server1:9090", "server2:9090"},
wantErr: false,
},
{
name: "只有ServerAddrs",
config: grpcclient.Config{
ServerAddrs: []string{"server1:9090", "server2:9090", "server3:9090"},
},
wantAddrs: []string{"server1:9090", "server2:9090", "server3:9090"},
wantErr: false,
},
{
name: "只有ServerAddr",
config: grpcclient.Config{
ServerAddr: "server1:9090",
},
wantAddrs: []string{"server1:9090"},
wantErr: false,
},
{
name: "ServerAddrs为空使用ServerAddr",
config: grpcclient.Config{
ServerAddrs: []string{},
ServerAddr: "server1:9090",
},
wantAddrs: []string{"server1:9090"},
wantErr: false,
},
{
name: "没有任何地址应该返回错误",
config: grpcclient.Config{},
wantAddrs: nil,
wantErr: true,
errMsg: "at least one server address is required",
},
{
name: "ServerAddrs为空且ServerAddr为空",
config: grpcclient.Config{
ServerAddrs: []string{},
ServerAddr: "",
},
wantAddrs: nil,
wantErr: true,
errMsg: "at least one server address is required",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
addrs, err := tt.config.GetAddrs()
if tt.wantErr {
require.Error(t, err)
if tt.errMsg != "" {
assert.Contains(t, err.Error(), tt.errMsg)
}
assert.Nil(t, addrs)
} else {
require.NoError(t, err)
assert.Equal(t, tt.wantAddrs, addrs)
}
})
}
}
func TestConfig_EmptyServerAddrs(t *testing.T) {
// 测试空的 ServerAddrs 切片
config := grpcclient.Config{
ServerAddrs: []string{},
ServerAddr: "fallback:9090",
}
addrs, err := config.GetAddrs()
require.NoError(t, err)
assert.Equal(t, []string{"fallback:9090"}, addrs)
}
func TestConfig_MultipleServerAddrs(t *testing.T) {
// 测试多个服务器地址
config := grpcclient.Config{
ServerAddrs: []string{
"server1:9090",
"server2:9091",
"server3:9092",
"server4:9093",
},
}
addrs, err := config.GetAddrs()
require.NoError(t, err)
assert.Len(t, addrs, 4)
assert.Equal(t, "server1:9090", addrs[0])
assert.Equal(t, "server4:9093", addrs[3])
}