github.com/aliyun/credentials-go@v1.4.7/credentials/oidc_credential_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 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 }