...
1
18
19 package weightedroundrobin
20
21 import (
22 "testing"
23
24 "github.com/google/go-cmp/cmp"
25 "google.golang.org/grpc/attributes"
26 "google.golang.org/grpc/resolver"
27 )
28
29 func TestAddrInfoToAndFromAttributes(t *testing.T) {
30 tests := []struct {
31 desc string
32 inputAddrInfo AddrInfo
33 inputAttributes *attributes.Attributes
34 wantAddrInfo AddrInfo
35 }{
36 {
37 desc: "empty attributes",
38 inputAddrInfo: AddrInfo{Weight: 100},
39 inputAttributes: nil,
40 wantAddrInfo: AddrInfo{Weight: 100},
41 },
42 {
43 desc: "non-empty attributes",
44 inputAddrInfo: AddrInfo{Weight: 100},
45 inputAttributes: attributes.New("foo", "bar"),
46 wantAddrInfo: AddrInfo{Weight: 100},
47 },
48 {
49 desc: "addrInfo not present in empty attributes",
50 inputAddrInfo: AddrInfo{},
51 inputAttributes: nil,
52 wantAddrInfo: AddrInfo{},
53 },
54 {
55 desc: "addrInfo not present in non-empty attributes",
56 inputAddrInfo: AddrInfo{},
57 inputAttributes: attributes.New("foo", "bar"),
58 wantAddrInfo: AddrInfo{},
59 },
60 }
61
62 for _, test := range tests {
63 t.Run(test.desc, func(t *testing.T) {
64 addr := resolver.Address{Attributes: test.inputAttributes}
65 addr = SetAddrInfo(addr, test.inputAddrInfo)
66 gotAddrInfo := GetAddrInfo(addr)
67 if !cmp.Equal(gotAddrInfo, test.wantAddrInfo) {
68 t.Errorf("gotAddrInfo: %v, wantAddrInfo: %v", gotAddrInfo, test.wantAddrInfo)
69 }
70
71 })
72 }
73 }
74
75 func TestGetAddInfoEmpty(t *testing.T) {
76 addr := resolver.Address{}
77 gotAddrInfo := GetAddrInfo(addr)
78 wantAddrInfo := AddrInfo{}
79 if !cmp.Equal(gotAddrInfo, wantAddrInfo) {
80 t.Errorf("gotAddrInfo: %v, wantAddrInfo: %v", gotAddrInfo, wantAddrInfo)
81 }
82 }
83
View as plain text