package etcdv3 import ( "context" "testing" "time" "google.golang.org/grpc" ) const ( // irrelevantEndpoint is an address which does not exists. irrelevantEndpoint = "http://irrelevant:12345" ) func TestNewClient(t *testing.T) { client, err := NewClient( context.Background(), []string{irrelevantEndpoint}, ClientOptions{ DialTimeout: 3 * time.Second, DialKeepAlive: 3 * time.Second, }, ) if err != nil { t.Fatalf("unexpected error creating client: %v", err) } if client == nil { t.Fatal("expected new Client, got nil") } } func TestClientOptions(t *testing.T) { client, err := NewClient( context.Background(), []string{}, ClientOptions{ Cert: "", Key: "", CACert: "", DialTimeout: 3 * time.Second, DialKeepAlive: 3 * time.Second, }, ) if err == nil { t.Errorf("expected error: %v", err) } if client != nil { t.Fatalf("expected client to be nil on failure") } _, err = NewClient( context.Background(), []string{irrelevantEndpoint}, ClientOptions{ Cert: "does-not-exist.crt", Key: "does-not-exist.key", CACert: "does-not-exist.CACert", DialTimeout: 3 * time.Second, DialKeepAlive: 3 * time.Second, }, ) if err == nil { t.Errorf("expected error: %v", err) } client, err = NewClient( context.Background(), []string{irrelevantEndpoint}, ClientOptions{ DialOptions: []grpc.DialOption{grpc.WithBlock()}, }, ) if err == nil { t.Errorf("expected connection should fail") } if client != nil { t.Errorf("expected client to be nil on failure") } }