github.com/release-engineering/exodus-rsync@v1.11.2/internal/gw/client_create_test.go (about) 1 package gw 2 3 import ( 4 "context" 5 "fmt" 6 "strings" 7 "testing" 8 9 "github.com/aws/aws-sdk-go/aws/session" 10 "github.com/golang/mock/gomock" 11 "github.com/release-engineering/exodus-rsync/internal/conf" 12 ) 13 14 func TestNewClientCertError(t *testing.T) { 15 ctrl := gomock.NewController(t) 16 cfg := conf.NewMockConfig(ctrl) 17 18 cfg.EXPECT().GwCert().Return("cert-does-not-exist") 19 cfg.EXPECT().GwKey().Return("key-does-not-exist") 20 21 _, err := Package.NewClient(context.Background(), cfg) 22 23 // Should have given us this error 24 if !strings.Contains(fmt.Sprint(err), "can't load cert/key") { 25 t.Error("did not get expected error, err =", err) 26 } 27 } 28 29 func TestNewClientSessionError(t *testing.T) { 30 cfg := testConfig(t) 31 32 oldProvider := ext.awsSessionProvider 33 defer func() { ext.awsSessionProvider = oldProvider }() 34 35 ext.awsSessionProvider = func(_ session.Options) (*session.Session, error) { 36 return nil, fmt.Errorf("simulated error") 37 } 38 39 _, err := Package.NewClient(context.Background(), cfg) 40 41 // Should have given us this error 42 if err.Error() != "create AWS session: simulated error" { 43 t.Error("did not get expected error, err =", err) 44 } 45 } 46 47 func TestNewClientOk(t *testing.T) { 48 cfg := testConfig(t) 49 50 client, err := Package.NewClient(context.Background(), cfg) 51 52 // Should have succeeded 53 if client == nil || err != nil { 54 t.Errorf("unexpectedly failed to make client, client = %v, err = %v", client, err) 55 } 56 }