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  }