...
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 TestOidcCredentialsProvider(t *testing.T) {
12 p := newOidcCredentialsProvider()
13 roleArn := os.Getenv(ENVRoleArn)
14 oidcProviderArn := os.Getenv(ENVOIDCProviderArn)
15 oidcTokenFilePath := os.Getenv(ENVOIDCTokenFile)
16 roleSessionName := os.Getenv(ENVRoleSessionName)
17 os.Setenv(ENVRoleArn, "")
18 os.Setenv(ENVOIDCProviderArn, "")
19 os.Setenv(ENVOIDCTokenFile, "")
20 os.Setenv(ENVRoleSessionName, "")
21 defer func() {
22 os.Setenv(ENVRoleArn, roleArn)
23 os.Setenv(ENVOIDCProviderArn, oidcProviderArn)
24 os.Setenv(ENVOIDCTokenFile, oidcTokenFilePath)
25 os.Setenv(ENVRoleSessionName, roleSessionName)
26 }()
27 c, err := p.resolve()
28 assert.NotNil(t, c)
29 assert.Nil(t, err)
30
31 os.Setenv(ENVRoleArn, "roleArn")
32 os.Setenv(ENVOIDCProviderArn, "oidcProviderArn")
33 os.Setenv(ENVOIDCTokenFile, "oidcTokenFilePath")
34 os.Unsetenv(ENVRoleSessionName)
35 c, err = p.resolve()
36 assert.Nil(t, err)
37 assert.Equal(t, "roleArn", tea.StringValue(c.RoleArn))
38 assert.Equal(t, "oidcProviderArn", tea.StringValue(c.OIDCProviderArn))
39 assert.Equal(t, "oidcTokenFilePath", tea.StringValue(c.OIDCTokenFilePath))
40 assert.Equal(t, "defaultSessionName", tea.StringValue(c.RoleSessionName))
41 assert.Equal(t, "oidc_role_arn", tea.StringValue(c.Type))
42
43 os.Setenv(ENVRoleSessionName, "roleSessionName")
44 c, err = p.resolve()
45 assert.Nil(t, err)
46 assert.Equal(t, "roleArn", tea.StringValue(c.RoleArn))
47 assert.Equal(t, "oidcProviderArn", tea.StringValue(c.OIDCProviderArn))
48 assert.Equal(t, "oidcTokenFilePath", tea.StringValue(c.OIDCTokenFilePath))
49 assert.Equal(t, "roleSessionName", tea.StringValue(c.RoleSessionName))
50 assert.Equal(t, "oidc_role_arn", tea.StringValue(c.Type))
51
52 os.Unsetenv(ENVRoleArn)
53 os.Unsetenv(ENVOIDCProviderArn)
54 os.Unsetenv(ENVOIDCTokenFile)
55 os.Unsetenv(ENVRoleSessionName)
56 c, err = p.resolve()
57 assert.Nil(t, c)
58 assert.Nil(t, err)
59 }
60
View as plain text