profile_credentials_test.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package provider_test
  2. import (
  3. "os"
  4. "testing"
  5. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
  6. "github.com/stretchr/testify/assert"
  7. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
  8. )
  9. var inistr = `
  10. [default]
  11. enable = true
  12. type = access_key
  13. access_key_id = foo
  14. access_key_secret = bar
  15. [client1]
  16. type = ecs_ram_role
  17. role_name = EcsRamRoleTest
  18. [client2]
  19. type = ram_role_arn
  20. access_key_id = foo
  21. access_key_secret = bar
  22. role_arn = role_arn
  23. role_session_name = session_name
  24. [client3]
  25. type = bearer_token
  26. bearer_token = bearer_token
  27. [client4]
  28. type = rsa_key_pair
  29. public_key_id = publicKeyId
  30. private_key_file = ./pk.pem
  31. `
  32. var privatekey = `this is privatekey`
  33. func TestProfileProvider(t *testing.T) {
  34. p := provider.NewProfileProvider()
  35. value, ok := p.(*provider.ProfileProvider)
  36. assert.True(t, ok)
  37. assert.Equal(t, value.Profile, "default")
  38. p = provider.NewProfileProvider("first")
  39. value, ok = p.(*provider.ProfileProvider)
  40. assert.True(t, ok)
  41. assert.Equal(t, value.Profile, "first")
  42. c, err := p.Resolve()
  43. assert.Nil(t, c)
  44. assert.Nil(t, err)
  45. os.Setenv(provider.ENVCredentialFile, "./credentials")
  46. file, err := os.Create("./credentials")
  47. assert.Nil(t, err)
  48. file.WriteString(inistr)
  49. file.Close()
  50. defer os.Remove("./credentials")
  51. p = provider.NewProfileProvider()
  52. c, err = p.Resolve()
  53. assert.Equal(t, credentials.NewAccessKeyCredential("foo", "bar"), c)
  54. assert.Nil(t, err)
  55. p = provider.NewProfileProvider("client1")
  56. c, err = p.Resolve()
  57. assert.Equal(t, credentials.NewEcsRamRoleCredential("EcsRamRoleTest"), c)
  58. assert.Nil(t, err)
  59. p = provider.NewProfileProvider("client2")
  60. c, err = p.Resolve()
  61. assert.Equal(t, credentials.NewRamRoleArnCredential("foo", "bar", "role_arn", "session_name", 3600), c)
  62. assert.Nil(t, err)
  63. file, err = os.Create("./pk.pem")
  64. assert.Nil(t, err)
  65. file.WriteString(privatekey)
  66. file.Close()
  67. p = provider.NewProfileProvider("client4")
  68. c, err = p.Resolve()
  69. assert.Equal(t, credentials.NewRsaKeyPairCredential("", "publicKeyId", 3600), c)
  70. assert.Nil(t, err)
  71. defer os.Remove(`./pk.pem`)
  72. // p = provider.NewProfileProvider("client3")
  73. // c, err = p.Resolve()
  74. // assert.Equal(t, credentials.NewBearerCredential("bearer_token"), c)
  75. // assert.Nil(t, err)
  76. }