github.com/DerekStrickland/consul@v1.4.5/agent/consul/server_lookup_test.go (about) 1 package consul 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/hashicorp/consul/agent/metadata" 8 "github.com/hashicorp/raft" 9 ) 10 11 type testAddr struct { 12 addr string 13 } 14 15 func (ta *testAddr) Network() string { 16 return "tcp" 17 } 18 19 func (ta *testAddr) String() string { 20 return ta.addr 21 } 22 23 func TestServerLookup(t *testing.T) { 24 lookup := NewServerLookup() 25 addr := "72.0.0.17:8300" 26 id := "1" 27 28 svr := &metadata.Server{ID: id, Addr: &testAddr{addr}} 29 lookup.AddServer(svr) 30 31 got, err := lookup.ServerAddr(raft.ServerID(id)) 32 if err != nil { 33 t.Fatalf("Unexpected error:%v", err) 34 } 35 if string(got) != addr { 36 t.Fatalf("Expected %v but got %v", addr, got) 37 } 38 39 server := lookup.Server(raft.ServerAddress(addr)) 40 if server == nil { 41 t.Fatalf("Expected lookup to return true") 42 } 43 if server.Addr.String() != addr { 44 t.Fatalf("Expected lookup to return address %v but got %v", addr, server.Addr) 45 } 46 47 lookup.RemoveServer(svr) 48 49 got, err = lookup.ServerAddr("1") 50 expectedErr := fmt.Errorf("Could not find address for server id 1") 51 if expectedErr.Error() != err.Error() { 52 t.Fatalf("Unexpected error, got %v wanted %v", err, expectedErr) 53 } 54 55 svr2 := &metadata.Server{ID: "2", Addr: &testAddr{"123.4.5.6"}} 56 lookup.RemoveServer(svr2) 57 58 }