github.com/aliyun/credentials-go@v1.4.7/credentials/providers/static_sts_test.go (about) 1 package providers 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestStaticSTSCredentialsProvider(t *testing.T) { 11 _, err := NewStaticSTSCredentialsProviderBuilder(). 12 Build() 13 assert.EqualError(t, err, "the access key id is empty") 14 15 _, err = NewStaticSTSCredentialsProviderBuilder(). 16 WithAccessKeyId("akid"). 17 Build() 18 assert.EqualError(t, err, "the access key secret is empty") 19 20 _, err = NewStaticSTSCredentialsProviderBuilder(). 21 WithAccessKeyId("akid"). 22 WithAccessKeySecret("aksecret"). 23 Build() 24 assert.EqualError(t, err, "the security token is empty") 25 26 provider, err := NewStaticSTSCredentialsProviderBuilder(). 27 WithAccessKeyId("accessKeyId"). 28 WithAccessKeySecret("accessKeySecret"). 29 WithSecurityToken("securityToken"). 30 Build() 31 assert.Nil(t, err) 32 assert.Equal(t, "static_sts", provider.GetProviderName()) 33 34 cred, err := provider.GetCredentials() 35 assert.Nil(t, err) 36 assert.Equal(t, "accessKeyId", cred.AccessKeyId) 37 assert.Equal(t, "accessKeySecret", cred.AccessKeySecret) 38 assert.Equal(t, "securityToken", cred.SecurityToken) 39 assert.Equal(t, "static_sts", cred.ProviderName) 40 } 41 42 func TestStaticSTSCredentialsProviderWithEnv(t *testing.T) { 43 originAKID := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") 44 originAKSecret := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") 45 originToken := os.Getenv("ALIBABA_CLOUD_SECURITY_TOKEN") 46 defer func() { 47 os.Setenv("ALIBABA_CLOUD_ACCESS_KEY_ID", originAKID) 48 os.Setenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET", originAKSecret) 49 os.Setenv("ALIBABA_CLOUD_SECURITY_TOKEN", originToken) 50 }() 51 52 os.Setenv("ALIBABA_CLOUD_ACCESS_KEY_ID", "akid_from_env") 53 os.Setenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET", "aksecret_from_env") 54 os.Setenv("ALIBABA_CLOUD_SECURITY_TOKEN", "token_from_env") 55 provider, err := NewStaticSTSCredentialsProviderBuilder(). 56 Build() 57 assert.Nil(t, err) 58 assert.Equal(t, "static_sts", provider.GetProviderName()) 59 60 cred, err := provider.GetCredentials() 61 assert.Nil(t, err) 62 assert.Equal(t, "akid_from_env", cred.AccessKeyId) 63 assert.Equal(t, "aksecret_from_env", cred.AccessKeySecret) 64 assert.Equal(t, "token_from_env", cred.SecurityToken) 65 assert.Equal(t, "static_sts", cred.ProviderName) 66 }