You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
170 lines
2.5 KiB
Go
170 lines
2.5 KiB
Go
package discov
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestConfig(t *testing.T) {
|
|
tests := []struct {
|
|
EtcdConf
|
|
pass bool
|
|
}{
|
|
{
|
|
EtcdConf: EtcdConf{},
|
|
pass: false,
|
|
},
|
|
{
|
|
EtcdConf: EtcdConf{
|
|
Key: "any",
|
|
},
|
|
pass: false,
|
|
},
|
|
{
|
|
EtcdConf: EtcdConf{
|
|
Hosts: []string{"any"},
|
|
},
|
|
pass: false,
|
|
},
|
|
{
|
|
EtcdConf: EtcdConf{
|
|
Hosts: []string{"any"},
|
|
Key: "key",
|
|
},
|
|
pass: true,
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
if test.pass {
|
|
assert.Nil(t, test.EtcdConf.Validate())
|
|
} else {
|
|
assert.NotNil(t, test.EtcdConf.Validate())
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestEtcdConf_HasAccount(t *testing.T) {
|
|
tests := []struct {
|
|
EtcdConf
|
|
hasAccount bool
|
|
}{
|
|
{
|
|
EtcdConf: EtcdConf{
|
|
Hosts: []string{"any"},
|
|
Key: "key",
|
|
},
|
|
hasAccount: false,
|
|
},
|
|
{
|
|
EtcdConf: EtcdConf{
|
|
Hosts: []string{"any"},
|
|
Key: "key",
|
|
User: "foo",
|
|
},
|
|
hasAccount: false,
|
|
},
|
|
{
|
|
EtcdConf: EtcdConf{
|
|
Hosts: []string{"any"},
|
|
Key: "key",
|
|
User: "foo",
|
|
Pass: "bar",
|
|
},
|
|
hasAccount: true,
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
assert.Equal(t, test.hasAccount, test.EtcdConf.HasAccount())
|
|
}
|
|
}
|
|
|
|
func TestEtcdConf_HasID(t *testing.T) {
|
|
tests := []struct {
|
|
EtcdConf
|
|
hasServerID bool
|
|
}{
|
|
{
|
|
EtcdConf: EtcdConf{
|
|
Hosts: []string{"any"},
|
|
ID: -1,
|
|
},
|
|
hasServerID: false,
|
|
},
|
|
{
|
|
EtcdConf: EtcdConf{
|
|
Hosts: []string{"any"},
|
|
ID: 0,
|
|
},
|
|
hasServerID: false,
|
|
},
|
|
{
|
|
EtcdConf: EtcdConf{
|
|
Hosts: []string{"any"},
|
|
ID: 10000,
|
|
},
|
|
hasServerID: true,
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
assert.Equal(t, test.hasServerID, test.EtcdConf.HasID())
|
|
}
|
|
}
|
|
|
|
func TestEtcdConf_HasTLS(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
conf EtcdConf
|
|
want bool
|
|
}{
|
|
{
|
|
name: "empty config",
|
|
conf: EtcdConf{},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "missing CertFile",
|
|
conf: EtcdConf{
|
|
CertKeyFile: "key",
|
|
CACertFile: "ca",
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "missing CertKeyFile",
|
|
conf: EtcdConf{
|
|
CertFile: "cert",
|
|
CACertFile: "ca",
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "missing CACertFile",
|
|
conf: EtcdConf{
|
|
CertFile: "cert",
|
|
CertKeyFile: "key",
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "valid config",
|
|
conf: EtcdConf{
|
|
CertFile: "cert",
|
|
CertKeyFile: "key",
|
|
CACertFile: "ca",
|
|
},
|
|
want: true,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := tt.conf.HasTLS()
|
|
assert.Equal(t, tt.want, got)
|
|
})
|
|
}
|
|
}
|