| 1 |  |  | package providers | 
            
                                                        
            
                                    
            
            
                | 2 |  |  |  | 
            
                                                        
            
                                    
            
            
                | 3 |  |  | import ( | 
            
                                                        
            
                                    
            
            
                | 4 |  |  | 	"os" | 
            
                                                        
            
                                    
            
            
                | 5 |  |  | 	"testing" | 
            
                                                        
            
                                    
            
            
                | 6 |  |  |  | 
            
                                                        
            
                                    
            
            
                | 7 |  |  | 	"github.com/aliyun/credentials-go/credentials/internal/utils" | 
            
                                                        
            
                                    
            
            
                | 8 |  |  | 	"github.com/stretchr/testify/assert" | 
            
                                                        
            
                                    
            
            
                | 9 |  |  | ) | 
            
                                                        
            
                                    
            
            
                | 10 |  |  |  | 
            
                                                        
            
                                    
            
            
                | 11 |  |  | func TestEnvironmentVariableCredentialsProvider(t *testing.T) { | 
            
                                                        
            
                                    
            
            
                | 12 |  |  | 	rollback := utils.Memory("ALIBABA_CLOUD_ACCESS_KEY_ID", "ALIBABA_CLOUD_ACCESS_KEY_SECRET", "ALIBABA_CLOUD_SECURITY_TOKEN") | 
            
                                                        
            
                                    
            
            
                | 13 |  |  | 	defer rollback() | 
            
                                                        
            
                                    
            
            
                | 14 |  |  |  | 
            
                                                        
            
                                    
            
            
                | 15 |  |  | 	p, err := NewEnvironmentVariableCredentialsProviderBuilder().Build() | 
            
                                                        
            
                                    
            
            
                | 16 |  |  | 	assert.Nil(t, err) | 
            
                                                        
            
                                    
            
            
                | 17 |  |  | 	_, err = p.GetCredentials() | 
            
                                                        
            
                                    
            
            
                | 18 |  |  | 	assert.EqualError(t, err, "unable to get credentials from enviroment variables, Access key ID must be specified via environment variable (ALIBABA_CLOUD_ACCESS_KEY_ID)") | 
            
                                                        
            
                                    
            
            
                | 19 |  |  | 	os.Setenv("ALIBABA_CLOUD_ACCESS_KEY_ID", "akid") | 
            
                                                        
            
                                    
            
            
                | 20 |  |  | 	_, err = p.GetCredentials() | 
            
                                                        
            
                                    
            
            
                | 21 |  |  | 	assert.EqualError(t, err, "unable to get credentials from enviroment variables, Access key secret must be specified via environment variable (ALIBABA_CLOUD_ACCESS_KEY_SECRET)") | 
            
                                                        
            
                                    
            
            
                | 22 |  |  |  | 
            
                                                        
            
                                    
            
            
                | 23 |  |  | 	os.Setenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET", "aksecret") | 
            
                                                        
            
                                    
            
            
                | 24 |  |  | 	cc, err := p.GetCredentials() | 
            
                                                        
            
                                    
            
            
                | 25 |  |  | 	assert.Nil(t, err) | 
            
                                                        
            
                                    
            
            
                | 26 |  |  | 	assert.Equal(t, "akid", cc.AccessKeyId) | 
            
                                                        
            
                                    
            
            
                | 27 |  |  | 	assert.Equal(t, "aksecret", cc.AccessKeySecret) | 
            
                                                        
            
                                    
            
            
                | 28 |  |  | 	assert.Equal(t, "", cc.SecurityToken) | 
            
                                                        
            
                                    
            
            
                | 29 |  |  | 	assert.Equal(t, "env", cc.ProviderName) | 
            
                                                        
            
                                    
            
            
                | 30 |  |  |  | 
            
                                                        
            
                                    
            
            
                | 31 |  |  | 	os.Setenv("ALIBABA_CLOUD_SECURITY_TOKEN", "token") | 
            
                                                        
            
                                    
            
            
                | 32 |  |  | 	cc, err = p.GetCredentials() | 
            
                                                        
            
                                    
            
            
                | 33 |  |  | 	assert.Nil(t, err) | 
            
                                                        
            
                                    
            
            
                | 34 |  |  | 	assert.Equal(t, "akid", cc.AccessKeyId) | 
            
                                                        
            
                                    
            
            
                | 35 |  |  | 	assert.Equal(t, "aksecret", cc.AccessKeySecret) | 
            
                                                        
            
                                    
            
            
                | 36 |  |  | 	assert.Equal(t, "token", cc.SecurityToken) | 
            
                                                        
            
                                    
            
            
                | 37 |  |  | 	assert.Equal(t, "env", cc.ProviderName) | 
            
                                                        
            
                                    
            
            
                | 38 |  |  | } | 
            
                                                        
            
                                    
            
            
                | 39 |  |  |  |