mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
89 lines
1.6 KiB
Go
89 lines
1.6 KiB
Go
package consul
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestParseAgentFailure(t *testing.T) {
|
|
f := func(s string) {
|
|
t.Helper()
|
|
a, err := ParseAgent([]byte(s))
|
|
if err == nil {
|
|
t.Fatalf("expecting non-nil error")
|
|
}
|
|
if a != nil {
|
|
t.Fatalf("unexpected non-nil Agent: %v", a)
|
|
}
|
|
}
|
|
f(``)
|
|
f(`[1,23]`)
|
|
}
|
|
|
|
func TestParseAgentSuccess(t *testing.T) {
|
|
data := `
|
|
{
|
|
"Config": {
|
|
"Datacenter": "dc1",
|
|
"NodeName": "foobar",
|
|
"NodeID": "9d754d17-d864-b1d3-e758-f3fe25a9874f",
|
|
"Server": true,
|
|
"Revision": "deadbeef",
|
|
"Version": "1.0.0"
|
|
},
|
|
"DebugConfig": {
|
|
},
|
|
"Coord": {
|
|
"Adjustment": 0,
|
|
"Error": 1.5,
|
|
"Vec": [0,0,0,0,0,0,0,0]
|
|
},
|
|
"Member": {
|
|
"Name": "foobar",
|
|
"Addr": "10.1.10.12",
|
|
"Port": 8301,
|
|
"Tags": {
|
|
"bootstrap": "1",
|
|
"dc": "dc1",
|
|
"id": "40e4a748-2192-161a-0510-9bf59fe950b5",
|
|
"port": "8300",
|
|
"role": "consul",
|
|
"vsn": "1",
|
|
"vsn_max": "1",
|
|
"vsn_min": "1"
|
|
},
|
|
"Status": 1,
|
|
"ProtocolMin": 1,
|
|
"ProtocolMax": 2,
|
|
"ProtocolCur": 2,
|
|
"DelegateMin": 2,
|
|
"DelegateMax": 4,
|
|
"DelegateCur": 4
|
|
},
|
|
"Meta": {
|
|
"instance_type": "i2.xlarge",
|
|
"os_version": "ubuntu_16.04"
|
|
}
|
|
}
|
|
`
|
|
a, err := ParseAgent([]byte(data))
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %s", err)
|
|
}
|
|
aExpected := &Agent{
|
|
Config: AgentConfig{
|
|
Datacenter: "dc1",
|
|
NodeName: "foobar",
|
|
},
|
|
Member: AgentMember{
|
|
Addr: "10.1.10.12",
|
|
},
|
|
Meta: map[string]string{
|
|
"instance_type": "i2.xlarge",
|
|
"os_version": "ubuntu_16.04",
|
|
},
|
|
}
|
|
if !reflect.DeepEqual(a, aExpected) {
|
|
t.Fatalf("unexpected Agent parsed;\ngot\n%v\nwant\n%v", a, aExpected)
|
|
}
|
|
}
|