api_test.go 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. package integration
  2. import (
  3. "github.com/aliyun/alibaba-cloud-sdk-go/services/cdn"
  4. "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
  5. "github.com/aliyun/alibaba-cloud-sdk-go/services/ram"
  6. "github.com/aliyun/alibaba-cloud-sdk-go/services/rds"
  7. "github.com/aliyun/alibaba-cloud-sdk-go/services/slb"
  8. "github.com/aliyun/alibaba-cloud-sdk-go/services/vpc"
  9. "github.com/stretchr/testify/assert"
  10. "net/http"
  11. "net/http/httptest"
  12. "os"
  13. "strings"
  14. "testing"
  15. )
  16. var (
  17. securityGroupId = ""
  18. flag = false
  19. )
  20. func Test_ECS_CreateSecurityGroupWithRPCrequestWithXMLWithNestingparameters(t *testing.T) {
  21. request := ecs.CreateCreateSecurityGroupRequest()
  22. request.SetContentType("XML")
  23. tag := ecs.CreateSecurityGroupTag{
  24. Key: "test",
  25. Value: "test",
  26. }
  27. request.Tag = &[]ecs.CreateSecurityGroupTag{tag}
  28. client, err := ecs.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  29. assert.Nil(t, err)
  30. response, err := client.CreateSecurityGroup(request)
  31. assert.Nil(t, err)
  32. assert.True(t, response.IsSuccess())
  33. assert.Equal(t, 36, len(response.RequestId))
  34. assert.True(t, len(response.SecurityGroupId) > 0)
  35. securityGroupId = response.SecurityGroupId
  36. }
  37. func Test_ECS_DescribeSecurityGroupsWithRPCrequestWithXMLWithNestingparameters(t *testing.T) {
  38. request := ecs.CreateDescribeSecurityGroupsRequest()
  39. request.SetContentType("XML")
  40. client, err := ecs.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  41. assert.Nil(t, err)
  42. response, err := client.DescribeSecurityGroups(request)
  43. assert.Nil(t, err)
  44. assert.True(t, response.IsSuccess())
  45. for _, securitygroup := range response.SecurityGroups.SecurityGroup {
  46. if securitygroup.SecurityGroupId == securityGroupId {
  47. flag = true
  48. break
  49. }
  50. }
  51. assert.Equal(t, 36, len(response.RequestId))
  52. assert.True(t, flag)
  53. flag = false
  54. }
  55. func Test_ECS_ModifyImageAttributeWithRPCrequestWithXML(t *testing.T) {
  56. request := ecs.CreateModifySecurityGroupAttributeRequest()
  57. request.SetContentType("XML")
  58. request.SecurityGroupName = "testintegration" + strings.Split(os.Getenv("TRAVIS_JOB_NUMBER"), ".")[0]
  59. request.SecurityGroupId = securityGroupId
  60. client, err := ecs.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  61. assert.Nil(t, err)
  62. response, err := client.ModifySecurityGroupAttribute(request)
  63. assert.Nil(t, err)
  64. assert.True(t, response.IsSuccess())
  65. assert.Equal(t, 36, len(response.RequestId))
  66. }
  67. func Test_ECS_DeleteImageWithRPCrequestWithXMLWithNestingparameters(t *testing.T) {
  68. request := ecs.CreateDeleteSecurityGroupRequest()
  69. request.SetContentType("XML")
  70. request.SecurityGroupId = securityGroupId
  71. client, err := ecs.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  72. assert.Nil(t, err)
  73. response, err := client.DeleteSecurityGroup(request)
  74. assert.Nil(t, err)
  75. assert.True(t, response.IsSuccess())
  76. assert.Equal(t, 36, len(response.RequestId))
  77. securityGroupId = ""
  78. }
  79. func Test_ECS_CreateSecurityGroupWithRPCrequestWithJSONWithNestingparameters(t *testing.T) {
  80. request := ecs.CreateCreateSecurityGroupRequest()
  81. request.SetContentType("JSON")
  82. client, err := ecs.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  83. assert.Nil(t, err)
  84. response, err := client.CreateSecurityGroup(request)
  85. assert.Nil(t, err)
  86. assert.True(t, response.IsSuccess())
  87. assert.Equal(t, 36, len(response.RequestId))
  88. assert.True(t, len(response.SecurityGroupId) > 0)
  89. securityGroupId = response.SecurityGroupId
  90. }
  91. func Test_ECS_DescribeSecurityGroupsWithRPCrequestWithJSONWithNestingparameters(t *testing.T) {
  92. request := ecs.CreateDescribeSecurityGroupsRequest()
  93. request.SetContentType("JSON")
  94. client, err := ecs.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  95. assert.Nil(t, err)
  96. response, err := client.DescribeSecurityGroups(request)
  97. assert.Nil(t, err)
  98. assert.True(t, response.IsSuccess())
  99. for _, securitygroup := range response.SecurityGroups.SecurityGroup {
  100. if securitygroup.SecurityGroupId == securityGroupId {
  101. flag = true
  102. break
  103. }
  104. }
  105. assert.Equal(t, 36, len(response.RequestId))
  106. assert.True(t, flag)
  107. flag = false
  108. }
  109. func Test_ECS_ModifyImageAttributeWithRPCrequestWithJSON(t *testing.T) {
  110. request := ecs.CreateModifySecurityGroupAttributeRequest()
  111. request.SetContentType("JSON")
  112. request.SecurityGroupName = "testintegration" + strings.Split(os.Getenv("TRAVIS_JOB_NUMBER"), ".")[0]
  113. request.SecurityGroupId = securityGroupId
  114. client, err := ecs.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  115. assert.Nil(t, err)
  116. response, err := client.ModifySecurityGroupAttribute(request)
  117. assert.Nil(t, err)
  118. assert.True(t, response.IsSuccess())
  119. assert.Equal(t, 36, len(response.RequestId))
  120. }
  121. func Test_ECS_DeleteImageWithRPCrequestWithJSONWithNestingparameters(t *testing.T) {
  122. request := ecs.CreateDeleteSecurityGroupRequest()
  123. request.SetContentType("JSON")
  124. request.SecurityGroupId = securityGroupId
  125. client, err := ecs.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  126. assert.Nil(t, err)
  127. response, err := client.DeleteSecurityGroup(request)
  128. assert.Nil(t, err)
  129. assert.True(t, response.IsSuccess())
  130. assert.Equal(t, 36, len(response.RequestId))
  131. securityGroupId = ""
  132. }
  133. func Test_ECS_DescribeRegionsWithRPCrequestWith(t *testing.T) {
  134. request := ecs.CreateDescribeRegionsRequest()
  135. client, err := ecs.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  136. assert.Nil(t, err)
  137. response, err := client.DescribeRegions(request)
  138. assert.Nil(t, err)
  139. assert.True(t, response.IsSuccess())
  140. assert.Equal(t, 36, len(response.RequestId))
  141. assert.True(t, len(response.Regions.Region) > 0)
  142. }
  143. func Test_RDS_DescribeDBInstancesWithRPCrequest(t *testing.T) {
  144. client, err := rds.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  145. assert.Nil(t, err)
  146. assert.NotNil(t, client)
  147. request := rds.CreateDescribeDBInstancesRequest()
  148. response, err := client.DescribeDBInstances(request)
  149. assert.Nil(t, err)
  150. assert.NotNil(t, response)
  151. assert.Equal(t, 36, len(response.RequestId))
  152. }
  153. func Test_CDN_DescribeCdnDomainDetailWithRPCrequest(t *testing.T) {
  154. client, err := cdn.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  155. assert.Nil(t, err)
  156. assert.NotNil(t, client)
  157. request := cdn.CreateDescribeRefreshTasksRequest()
  158. response, err := client.DescribeRefreshTasks(request)
  159. assert.Nil(t, err)
  160. assert.NotNil(t, response)
  161. assert.Equal(t, 36, len(response.RequestId))
  162. }
  163. func Test_RAM_ListRolesWithRPCrequest(t *testing.T) {
  164. client, err := ram.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  165. assert.Nil(t, err)
  166. request := ram.CreateListRolesRequest()
  167. request.Scheme = "HTTPS"
  168. response, err := client.ListRoles(request)
  169. assert.Nil(t, err)
  170. assert.True(t, response.IsSuccess())
  171. assert.Equal(t, 36, len(response.RequestId))
  172. }
  173. func Test_SLB_DescribeRegionsWithRPCrequest(t *testing.T) {
  174. client, err := slb.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  175. assert.Nil(t, err)
  176. request := slb.CreateDescribeRegionsRequest()
  177. response, err := client.DescribeRegions(request)
  178. assert.Nil(t, err)
  179. assert.True(t, response.IsSuccess())
  180. assert.Equal(t, 36, len(response.RequestId))
  181. assert.True(t, len(response.Regions.Region) > 0)
  182. }
  183. func Test_VPC_DescribeRegionsWithUnicodeSpecificParams(t *testing.T) {
  184. client, err := vpc.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  185. assert.Nil(t, err)
  186. request := vpc.CreateDescribeRegionsRequest()
  187. response, err := client.DescribeRegions(request)
  188. assert.Nil(t, err)
  189. assert.True(t, response.IsSuccess())
  190. assert.Equal(t, 36, len(response.RequestId))
  191. assert.True(t, len(response.Regions.Region) > 0)
  192. }
  193. func mockServer(status int, json string) (server *httptest.Server) {
  194. // Start a test server locally.
  195. ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  196. w.WriteHeader(status)
  197. w.Write([]byte(json))
  198. return
  199. }))
  200. return ts
  201. }
  202. func Test_ListRolesWithRPCrequestWithoutRedirecting(t *testing.T) {
  203. client, err := ecs.NewClientWithAccessKey("cn-hangzhou", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  204. assert.Nil(t, err)
  205. request := ecs.CreateDescribeRegionsRequest()
  206. request.Scheme = "HTTP"
  207. ts := mockServer(404, `{"Code": "YouMessedSomethingUp"}`)
  208. defer ts.Close()
  209. domain := strings.Replace(ts.URL, "http://", "",1)
  210. request.Domain = domain
  211. response, err := client.DescribeRegions(request)
  212. assert.NotNil(t, err)
  213. assert.Equal(t, 404, response.GetHttpStatus())
  214. assert.Equal(t, "{\"Code\": \"YouMessedSomethingUp\"}", response.GetHttpContentString())
  215. }
  216. //func Test_DescribeClusterDetailWithROArequest(t *testing.T) {
  217. // client, err := cs.NewClientWithAccessKey("default", os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
  218. // assert.Nil(t, err)
  219. // request := cs.CreateDescribeClusterDetailRequest()
  220. // request.SetDomain("cs.aliyuncs.com")
  221. // request.QueryParams["RegionId"] = "default"
  222. // request.Method = "GET"
  223. // response, err := client.DescribeClusterDetail(request)
  224. // assert.Nil(t, err)
  225. // assert.True(t, response.IsSuccess())
  226. // assert.Nil(t, response.GetHttpHeaders())
  227. //}