configuration_test.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package providers
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
  6. )
  7. func TestConfigurationProvider_Retrieve_NewRamRoleArnCredential(t *testing.T) {
  8. expectedAccesKeyId := "access-key-id"
  9. expectedAccessKeySecret := "access-key-secret"
  10. expectedRoleArn := "role-arn"
  11. expectedRoleSessionName := "role-session-name"
  12. expectedRoleSessionExpiration := 1
  13. configuration := &Configuration{
  14. AccessKeyID: expectedAccesKeyId,
  15. AccessKeySecret: expectedAccessKeySecret,
  16. RoleArn: expectedRoleArn,
  17. RoleSessionName: expectedRoleSessionName,
  18. RoleSessionExpiration: &expectedRoleSessionExpiration,
  19. }
  20. credential, err := NewConfigurationCredentialProvider(configuration).Retrieve()
  21. if err != nil {
  22. t.Fatal(err)
  23. }
  24. ramRoleArnCredential, ok := credential.(*credentials.RamRoleArnCredential)
  25. assert.True(t, ok, "expected AccessKeyCredential")
  26. assert.Equal(t, expectedAccesKeyId, ramRoleArnCredential.AccessKeyId, "expected AccessKeyId %s but received %s", expectedAccesKeyId, ramRoleArnCredential.AccessKeyId)
  27. if ramRoleArnCredential.AccessKeySecret != expectedAccessKeySecret {
  28. t.Fatalf("expected AccessKeySecret %s but received %s", expectedAccessKeySecret, ramRoleArnCredential.AccessKeySecret)
  29. }
  30. if ramRoleArnCredential.RoleArn != expectedRoleArn {
  31. t.Fatalf("expected RoleArn %s but received %s", expectedRoleArn, ramRoleArnCredential.RoleArn)
  32. }
  33. if ramRoleArnCredential.RoleSessionName != expectedRoleSessionName {
  34. t.Fatalf("expected RoleSessionName %s but received %s", expectedRoleSessionName, ramRoleArnCredential.RoleSessionName)
  35. }
  36. if ramRoleArnCredential.RoleSessionExpiration != expectedRoleSessionExpiration {
  37. t.Fatalf("expected expectedRoleSessionExpiration %d but received %d", expectedRoleSessionExpiration, ramRoleArnCredential.RoleSessionExpiration)
  38. }
  39. }
  40. func TestConfigurationProvider_Retrieve_NewStsTokenCredential(t *testing.T) {
  41. expectedAccesKeyId := "access-key-id"
  42. expectedAccessKeySecret := "access-key-secret"
  43. expectedAccessKeyStsToken := "access-key-sts-token"
  44. configuration := &Configuration{
  45. AccessKeyID: expectedAccesKeyId,
  46. AccessKeySecret: expectedAccessKeySecret,
  47. AccessKeyStsToken: expectedAccessKeyStsToken,
  48. }
  49. credential, err := NewConfigurationCredentialProvider(configuration).Retrieve()
  50. if err != nil {
  51. t.Fatal(err)
  52. }
  53. stsTokenCredential, ok := credential.(*credentials.StsTokenCredential)
  54. if !ok {
  55. t.Fatal("expected AccessKeyCredential")
  56. }
  57. if stsTokenCredential.AccessKeyId != expectedAccesKeyId {
  58. t.Fatalf("expected AccessKeyId %s but received %s", expectedAccesKeyId, stsTokenCredential.AccessKeyId)
  59. }
  60. if stsTokenCredential.AccessKeySecret != expectedAccessKeySecret {
  61. t.Fatalf("expected AccessKeySecret %s but received %s", expectedAccessKeySecret, stsTokenCredential.AccessKeySecret)
  62. }
  63. if stsTokenCredential.AccessKeyStsToken != expectedAccessKeyStsToken {
  64. t.Fatalf("expected AccessKeyStsToken %s but received %s", expectedAccessKeyStsToken, stsTokenCredential.AccessKeyStsToken)
  65. }
  66. }
  67. func TestConfigurationProvider_Retrieve_NewAccessKeyCredential(t *testing.T) {
  68. expectedAccesKeyId := "access-key-id"
  69. expectedAccessKeySecret := "access-key-secret"
  70. configuration := &Configuration{
  71. AccessKeyID: expectedAccesKeyId,
  72. AccessKeySecret: expectedAccessKeySecret,
  73. }
  74. credential, err := NewConfigurationCredentialProvider(configuration).Retrieve()
  75. if err != nil {
  76. t.Fatal(err)
  77. }
  78. accessKeyCredential, ok := credential.(*credentials.AccessKeyCredential)
  79. if !ok {
  80. t.Fatal("expected AccessKeyCredential")
  81. }
  82. if accessKeyCredential.AccessKeyId != expectedAccesKeyId {
  83. t.Fatalf("expected AccessKeyId %s but received %s", expectedAccesKeyId, accessKeyCredential.AccessKeyId)
  84. }
  85. if accessKeyCredential.AccessKeySecret != expectedAccessKeySecret {
  86. t.Fatalf("expected AccessKeySecret %s but received %s", expectedAccessKeySecret, accessKeyCredential.AccessKeySecret)
  87. }
  88. }
  89. func TestConfigurationProvider_Retrieve_NewEcsRamRoleCredential(t *testing.T) {
  90. expectedRoleName := "role-name"
  91. configuration := &Configuration{
  92. RoleName: expectedRoleName,
  93. }
  94. credential, err := NewConfigurationCredentialProvider(configuration).Retrieve()
  95. if err != nil {
  96. t.Fatal(err)
  97. }
  98. ecsRamRoleCredential, ok := credential.(*credentials.EcsRamRoleCredential)
  99. if !ok {
  100. t.Fatal("expected AccessKeyCredential")
  101. }
  102. if ecsRamRoleCredential.RoleName != expectedRoleName {
  103. t.Fatalf("expected RoleName %s but received %s", expectedRoleName, ecsRamRoleCredential.RoleName)
  104. }
  105. }
  106. func TestConfigurationProvider_Retrieve_NewRsaKeyPairCredential(t *testing.T) {
  107. expectedPrivateKey := "private-key"
  108. expectedPublicKeyId := "public-key-id"
  109. expectedSessionExpiration := 1
  110. configuration := &Configuration{
  111. PrivateKey: expectedPrivateKey,
  112. PublicKeyID: expectedPublicKeyId,
  113. SessionExpiration: &expectedSessionExpiration,
  114. }
  115. credential, err := NewConfigurationCredentialProvider(configuration).Retrieve()
  116. if err != nil {
  117. t.Fatal(err)
  118. }
  119. rsaKeyPairCredential, ok := credential.(*credentials.RsaKeyPairCredential)
  120. if !ok {
  121. t.Fatal("expected AccessKeyCredential")
  122. }
  123. if rsaKeyPairCredential.PrivateKey != expectedPrivateKey {
  124. t.Fatalf("expected PrivateKey %s but received %s", expectedPrivateKey, rsaKeyPairCredential.PrivateKey)
  125. }
  126. if rsaKeyPairCredential.PublicKeyId != expectedPublicKeyId {
  127. t.Fatalf("expected PublicKeyId %s but received %s", expectedPublicKeyId, rsaKeyPairCredential.PublicKeyId)
  128. }
  129. if rsaKeyPairCredential.SessionExpiration != expectedSessionExpiration {
  130. t.Fatalf("expected SessionExpiration %d but received %d", expectedSessionExpiration, rsaKeyPairCredential.SessionExpiration)
  131. }
  132. }
  133. func TestConfigurationProvider_Retrieve_ErrNoValidCredentialsFound(t *testing.T) {
  134. _, err := NewConfigurationCredentialProvider(&Configuration{}).Retrieve()
  135. if err == nil {
  136. t.Fatal("expected ErrNoValidCredentialsFound for empty configuration")
  137. }
  138. if err != ErrNoValidCredentialsFound {
  139. t.Fatal("expected ErrNoValidCredentialsFound for empty configuration")
  140. }
  141. }