github.com/aliyun/credentials-go@v1.4.7/credentials/env_provider_test.go (about) 1 package credentials 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/alibabacloud-go/tea/tea" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestEnvresolve(t *testing.T) { 12 p := newEnvProvider() 13 assert.Equal(t, &envProvider{}, p) 14 originAccessKeyIdNew := os.Getenv(EnvVarAccessKeyIdNew) 15 originAccessKeyId := os.Getenv(EnvVarAccessKeyId) 16 originAccessKeySecret := os.Getenv(EnvVarAccessKeySecret) 17 originSecurityToken := os.Getenv("ALIBABA_CLOUD_SECURITY_TOKEN") 18 os.Setenv(EnvVarAccessKeyId, "") 19 os.Setenv(EnvVarAccessKeyIdNew, "") 20 os.Setenv(EnvVarAccessKeySecret, "") 21 os.Setenv("ALIBABA_CLOUD_SECURITY_TOKEN", "") 22 defer func() { 23 os.Setenv(EnvVarAccessKeyIdNew, originAccessKeyIdNew) 24 os.Setenv(EnvVarAccessKeyId, originAccessKeyId) 25 os.Setenv(EnvVarAccessKeySecret, originAccessKeySecret) 26 os.Setenv("ALIBABA_CLOUD_SECURITY_TOKEN", originSecurityToken) 27 }() 28 c, err := p.resolve() 29 assert.Nil(t, c) 30 assert.EqualError(t, err, "ALIBABA_CLOUD_ACCESS_KEY_ID or ALIBABA_CLOUD_ACCESS_KEY_Id cannot be empty") 31 32 os.Setenv(EnvVarAccessKeyIdNew, "") 33 os.Setenv(EnvVarAccessKeyId, "") 34 c, err = p.resolve() 35 assert.Nil(t, c) 36 assert.EqualError(t, err, "ALIBABA_CLOUD_ACCESS_KEY_ID or ALIBABA_CLOUD_ACCESS_KEY_Id cannot be empty") 37 38 os.Setenv(EnvVarAccessKeyIdNew, "") 39 os.Setenv(EnvVarAccessKeyId, "AccessKeyId") 40 c, err = p.resolve() 41 assert.Nil(t, c) 42 assert.EqualError(t, err, "ALIBABA_CLOUD_ACCESS_KEY_SECRET cannot be empty") 43 os.Setenv(EnvVarAccessKeySecret, "AccessKeySecret") 44 c, err = p.resolve() 45 assert.Nil(t, err) 46 assert.Equal(t, "access_key", tea.StringValue(c.Type)) 47 assert.Equal(t, "AccessKeyId", tea.StringValue(c.AccessKeyId)) 48 assert.Equal(t, "AccessKeySecret", tea.StringValue(c.AccessKeySecret)) 49 50 os.Setenv(EnvVarAccessKeyId, "AccessKeyId") 51 os.Setenv(EnvVarAccessKeyIdNew, "AccessKeyIdNew") 52 os.Setenv(EnvVarAccessKeySecret, "AccessKeySecret") 53 c, err = p.resolve() 54 assert.Nil(t, err) 55 assert.Equal(t, "access_key", tea.StringValue(c.Type)) 56 assert.Equal(t, "AccessKeyIdNew", tea.StringValue(c.AccessKeyId)) 57 assert.Equal(t, "AccessKeySecret", tea.StringValue(c.AccessKeySecret)) 58 59 os.Setenv("ALIBABA_CLOUD_SECURITY_TOKEN", "token") 60 c, err = p.resolve() 61 assert.Nil(t, err) 62 assert.Equal(t, "sts", tea.StringValue(c.Type)) 63 assert.Equal(t, "AccessKeyIdNew", tea.StringValue(c.AccessKeyId)) 64 assert.Equal(t, "AccessKeySecret", tea.StringValue(c.AccessKeySecret)) 65 assert.Equal(t, "token", tea.StringValue(c.SecurityToken)) 66 }