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 }