...
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 os.Setenv(EnvVarAccessKeyId, "")
18 os.Setenv(EnvVarAccessKeyIdNew, "")
19 os.Setenv(EnvVarAccessKeySecret, "")
20 defer func() {
21 os.Setenv(EnvVarAccessKeyIdNew, originAccessKeyIdNew)
22 os.Setenv(EnvVarAccessKeyId, originAccessKeyId)
23 os.Setenv(EnvVarAccessKeySecret, originAccessKeySecret)
24 }()
25 c, err := p.resolve()
26 assert.Nil(t, c)
27 assert.EqualError(t, err, "ALIBABA_CLOUD_ACCESS_KEY_ID or ALIBABA_CLOUD_ACCESS_KEY_Id cannot be empty")
28
29 os.Setenv(EnvVarAccessKeyIdNew, "")
30 os.Setenv(EnvVarAccessKeyId, "")
31 c, err = p.resolve()
32 assert.Nil(t, c)
33 assert.EqualError(t, err, "ALIBABA_CLOUD_ACCESS_KEY_ID or ALIBABA_CLOUD_ACCESS_KEY_Id cannot be empty")
34
35 os.Setenv(EnvVarAccessKeyIdNew, "")
36 os.Setenv(EnvVarAccessKeyId, "AccessKeyId")
37 c, err = p.resolve()
38 assert.Nil(t, c)
39 assert.EqualError(t, err, "ALIBABA_CLOUD_ACCESS_KEY_SECRET cannot be empty")
40 os.Setenv(EnvVarAccessKeySecret, "AccessKeySecret")
41 c, err = p.resolve()
42 assert.Nil(t, err)
43 assert.Equal(t, "access_key", tea.StringValue(c.Type))
44 assert.Equal(t, "AccessKeyId", tea.StringValue(c.AccessKeyId))
45 assert.Equal(t, "AccessKeySecret", tea.StringValue(c.AccessKeySecret))
46
47 os.Setenv(EnvVarAccessKeyId, "AccessKeyId")
48 os.Setenv(EnvVarAccessKeyIdNew, "AccessKeyIdNew")
49 os.Setenv(EnvVarAccessKeySecret, "AccessKeySecret")
50 c, err = p.resolve()
51 assert.Nil(t, err)
52 assert.Equal(t, "access_key", tea.StringValue(c.Type))
53 assert.Equal(t, "AccessKeyIdNew", tea.StringValue(c.AccessKeyId))
54 assert.Equal(t, "AccessKeySecret", tea.StringValue(c.AccessKeySecret))
55 }
56
View as plain text