...

Source file src/github.com/aliyun/credentials-go/credentials/oidc_credential_provider_test.go

Documentation: github.com/aliyun/credentials-go/credentials

     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