github.com/aavshr/aws-sdk-go@v1.41.3/aws/credentials/env_provider_test.go (about)

     1  package credentials
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/aavshr/aws-sdk-go/internal/sdktesting"
     8  )
     9  
    10  func TestEnvProviderRetrieve(t *testing.T) {
    11  	restoreEnvFn := sdktesting.StashEnv()
    12  	defer restoreEnvFn()
    13  	os.Setenv("AWS_ACCESS_KEY_ID", "access")
    14  	os.Setenv("AWS_SECRET_ACCESS_KEY", "secret")
    15  	os.Setenv("AWS_SESSION_TOKEN", "token")
    16  
    17  	e := EnvProvider{}
    18  	creds, err := e.Retrieve()
    19  	if err != nil {
    20  		t.Errorf("expect nil, got %v", err)
    21  	}
    22  
    23  	if e, a := "access", creds.AccessKeyID; e != a {
    24  		t.Errorf("expect %v, got %v", e, a)
    25  	}
    26  	if e, a := "secret", creds.SecretAccessKey; e != a {
    27  		t.Errorf("expect %v, got %v", e, a)
    28  	}
    29  	if e, a := "token", creds.SessionToken; e != a {
    30  		t.Errorf("expect %v, got %v", e, a)
    31  	}
    32  }
    33  
    34  func TestEnvProviderIsExpired(t *testing.T) {
    35  	restoreEnvFn := sdktesting.StashEnv()
    36  	defer restoreEnvFn()
    37  
    38  	os.Setenv("AWS_ACCESS_KEY_ID", "access")
    39  	os.Setenv("AWS_SECRET_ACCESS_KEY", "secret")
    40  	os.Setenv("AWS_SESSION_TOKEN", "token")
    41  
    42  	e := EnvProvider{}
    43  
    44  	if !e.IsExpired() {
    45  		t.Errorf("Expect creds to be expired before retrieve.")
    46  	}
    47  
    48  	_, err := e.Retrieve()
    49  	if err != nil {
    50  		t.Errorf("expect nil, got %v", err)
    51  	}
    52  
    53  	if e.IsExpired() {
    54  		t.Errorf("Expect creds to not be expired after retrieve.")
    55  	}
    56  }
    57  
    58  func TestEnvProviderNoAccessKeyID(t *testing.T) {
    59  	restoreEnvFn := sdktesting.StashEnv()
    60  	defer restoreEnvFn()
    61  
    62  	os.Setenv("AWS_SECRET_ACCESS_KEY", "secret")
    63  
    64  	e := EnvProvider{}
    65  	_, err := e.Retrieve()
    66  	if e, a := ErrAccessKeyIDNotFound, err; e != a {
    67  		t.Errorf("expect %v, got %v", e, a)
    68  	}
    69  }
    70  
    71  func TestEnvProviderNoSecretAccessKey(t *testing.T) {
    72  	restoreEnvFn := sdktesting.StashEnv()
    73  	defer restoreEnvFn()
    74  
    75  	os.Setenv("AWS_ACCESS_KEY_ID", "access")
    76  
    77  	e := EnvProvider{}
    78  	_, err := e.Retrieve()
    79  	if e, a := ErrSecretAccessKeyNotFound, err; e != a {
    80  		t.Errorf("expect %v, got %v", e, a)
    81  	}
    82  }
    83  
    84  func TestEnvProviderAlternateNames(t *testing.T) {
    85  	restoreEnvFn := sdktesting.StashEnv()
    86  	defer restoreEnvFn()
    87  
    88  	os.Setenv("AWS_ACCESS_KEY", "access")
    89  	os.Setenv("AWS_SECRET_KEY", "secret")
    90  
    91  	e := EnvProvider{}
    92  	creds, err := e.Retrieve()
    93  	if err != nil {
    94  		t.Errorf("expect nil, got %v", err)
    95  	}
    96  
    97  	if e, a := "access", creds.AccessKeyID; e != a {
    98  		t.Errorf("expect %v, got %v", e, a)
    99  	}
   100  	if e, a := "secret", creds.SecretAccessKey; e != a {
   101  		t.Errorf("expect %v, got %v", e, a)
   102  	}
   103  	if v := creds.SessionToken; len(v) != 0 {
   104  		t.Errorf("Expected no token, %v", v)
   105  	}
   106  }