client_test.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586
  1. /*
  2. * Licensed under the Apache License, Version 2.0 (the "License");
  3. * you may not use this file except in compliance with the License.
  4. * You may obtain a copy of the License at
  5. *
  6. * http://www.apache.org/licenses/LICENSE-2.0
  7. *
  8. * Unless required by applicable law or agreed to in writing, software
  9. * distributed under the License is distributed on an "AS IS" BASIS,
  10. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  11. * See the License for the specific language governing permissions and
  12. * limitations under the License.
  13. */
  14. package sdk
  15. import (
  16. "crypto/tls"
  17. "encoding/json"
  18. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
  19. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
  20. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
  21. "github.com/stretchr/testify/assert"
  22. "io/ioutil"
  23. "net/http"
  24. "os"
  25. "os/user"
  26. "testing"
  27. // "fmt"
  28. )
  29. var client, clientKeyPair, clientEcs, clientRoleArn, clientSts *Client
  30. type TestConfig struct {
  31. AccessKeyId string
  32. AccessKeySecret string
  33. PublicKeyId string
  34. PrivateKey string
  35. RoleArn string
  36. StsToken string
  37. StsAk string
  38. StsSecret string
  39. ChildAK string
  40. ChildSecret string
  41. }
  42. type MockResponse struct {
  43. Headers map[string]string
  44. Body string
  45. Params map[string]string
  46. RemoteAddr string
  47. RemoteHost string
  48. QueryString string
  49. RequestURL string
  50. }
  51. func TestMain(m *testing.M) {
  52. testSetup()
  53. result := m.Run()
  54. testTearDown()
  55. os.Exit(result)
  56. }
  57. func getConfigFromFile() *TestConfig {
  58. usr, err := user.Current()
  59. if err != nil {
  60. panic(err)
  61. }
  62. configFilePath := usr.HomeDir + "/aliyun-sdk.json"
  63. data, err := ioutil.ReadFile(configFilePath)
  64. if err != nil {
  65. panic(err)
  66. }
  67. var config TestConfig
  68. json.Unmarshal(data, &config)
  69. return &config
  70. }
  71. func getConfigFromEnv() *TestConfig {
  72. config := &TestConfig{
  73. AccessKeyId: os.Getenv("ACCESS_KEY_ID"),
  74. AccessKeySecret: os.Getenv("ACCESS_KEY_SECRET"),
  75. PublicKeyId: os.Getenv("PUBLIC_KEY_ID"),
  76. PrivateKey: os.Getenv("PRIVATE_KEY"),
  77. RoleArn: os.Getenv("ROLE_ARN"),
  78. ChildAK: os.Getenv("CHILD_AK"),
  79. ChildSecret: os.Getenv("CHILD_SECRET"),
  80. StsToken: os.Getenv("STS_TOKEN"),
  81. StsAk: os.Getenv("STS_AK"),
  82. StsSecret: os.Getenv("STS_SECRET"),
  83. }
  84. if config.AccessKeyId == "" {
  85. return nil
  86. } else {
  87. return config
  88. }
  89. }
  90. func testSetup() {
  91. testConfig := getConfigFromEnv()
  92. if testConfig == nil {
  93. testConfig = getConfigFromFile()
  94. }
  95. var err error
  96. clientConfig := NewConfig().
  97. WithEnableAsync(true).
  98. WithGoRoutinePoolSize(5).
  99. WithMaxTaskQueueSize(1000).
  100. WithHttpTransport(&http.Transport{
  101. TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
  102. })
  103. //}).
  104. //WithMaxRetryTime(15).
  105. //WithTimeout(10)
  106. credential := &credentials.BaseCredential{
  107. AccessKeyId: testConfig.AccessKeyId,
  108. AccessKeySecret: testConfig.AccessKeySecret,
  109. }
  110. client, err = NewClientWithOptions("cn-hangzhou", clientConfig, credential)
  111. if err != nil {
  112. panic(err)
  113. }
  114. rsaKeypairCredential := credentials.NewRsaKeyPairCredential(testConfig.PrivateKey, testConfig.PublicKeyId, 3600)
  115. clientKeyPair, err = NewClientWithOptions("cn-hangzhou", clientConfig, rsaKeypairCredential)
  116. if err != nil {
  117. panic(err)
  118. }
  119. roleNameOnEcsCredential := credentials.NewStsRoleNameOnEcsCredential("conan")
  120. clientEcs, err = NewClientWithOptions("cn-hangzhou", clientConfig, roleNameOnEcsCredential)
  121. if err != nil {
  122. panic(err)
  123. }
  124. stsRoleArnCredential := credentials.NewStsRoleArnCredential(testConfig.ChildAK, testConfig.ChildSecret, testConfig.RoleArn, "clientTest", 3600)
  125. clientRoleArn, err = NewClientWithOptions("cn-hangzhou", clientConfig, stsRoleArnCredential)
  126. if err != nil {
  127. panic(err)
  128. }
  129. stsCredential := credentials.NewStsTokenCredential(testConfig.StsAk, testConfig.StsSecret, testConfig.StsToken)
  130. clientSts, err = NewClientWithOptions("cn-hangzhou", clientConfig, stsCredential)
  131. if err != nil {
  132. panic(err)
  133. }
  134. }
  135. func testTearDown() {
  136. }
  137. func TestNewClientWithAccessKey(t *testing.T) {
  138. assert.NotNil(t, client, "NewClientWithAccessKey failed")
  139. }
  140. func TestRoaGet(t *testing.T) {
  141. request := &requests.RoaRequest{}
  142. request.InitWithApiInfo("Ros", "2015-09-01", "", "/regions", "", "")
  143. request.Domain = "ros.aliyuncs.com"
  144. request.QueryParams["key"] = "value"
  145. request.QueryParams["QueryParam"] = "http://domain/?key=value&key2=value2"
  146. response := &responses.BaseResponse{}
  147. err := client.DoAction(request, response)
  148. assert.Nil(t, err)
  149. assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  150. assert.NotNil(t, response.GetHttpContentString())
  151. var responseBean struct{
  152. Regions[] struct{
  153. LocalName string;
  154. RegionId string;
  155. };
  156. }
  157. json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  158. assert.NotNil(t, responseBean.Regions)
  159. }
  160. // func TestRoaPostForm(t *testing.T) {
  161. // request := &requests.RoaRequest{}
  162. // request.InitWithApiInfo("Ros", "2015-09-01", "", "/regions", "", "")
  163. // request.Domain = "ros.aliyuncs.com"
  164. // request.Headers["Header-Param"] = "HeaderParamValue"
  165. // request.QueryParams["QueryParam"] = "QueryParamValue"
  166. // request.Method = requests.POST
  167. // request.FormParams["BodyParam"] = "BodyParamValue"
  168. // response := &responses.BaseResponse{}
  169. // err := client.DoAction(request, response)
  170. // assert.Nil(t, err)
  171. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  172. // assert.NotNil(t, response.GetHttpContentString())
  173. // var responseBean MockResponse
  174. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  175. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  176. // assert.Equal(t, "HeaderParamValue", responseBean.Headers["Header-Param"])
  177. // assert.Equal(t, "BodyParamValue", responseBean.Params["BodyParam"])
  178. // }
  179. // func TestRoaPostStream(t *testing.T) {
  180. // request := getFtTestRoaRequest()
  181. // request.Method = requests.POST
  182. // request.Content = []byte("TestContent")
  183. // response := &responses.BaseResponse{}
  184. // err := client.DoAction(request, response)
  185. // assert.Nil(t, err)
  186. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  187. // assert.NotNil(t, response.GetHttpContentString())
  188. // var responseBean MockResponse
  189. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  190. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  191. // assert.Equal(t, "HeaderParamValue", responseBean.Headers["Header-Param"])
  192. // assert.Equal(t, "TestContent", responseBean.Body)
  193. // }
  194. // func TestRoaPostJson(t *testing.T) {
  195. // request := getFtTestRoaRequest()
  196. // request.Method = requests.POST
  197. // dataMap := map[string]string{"key": "value"}
  198. // data, err := json.Marshal(dataMap)
  199. // assert.Nil(t, err)
  200. // request.Content = data
  201. // request.SetContentType(requests.Json)
  202. // response := &responses.BaseResponse{}
  203. // err = client.DoAction(request, response)
  204. // assert.Nil(t, err)
  205. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  206. // assert.NotNil(t, response.GetHttpContentString())
  207. // var responseBean MockResponse
  208. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  209. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  210. // assert.Equal(t, "HeaderParamValue", responseBean.Headers["Header-Param"])
  211. // assert.Equal(t, requests.Json, responseBean.Headers["Content-Type"])
  212. // assert.Equal(t, string(data), responseBean.Body)
  213. // }
  214. // func TestRpcGet(t *testing.T) {
  215. // request := getFtTestRpcRequest()
  216. // request.Method = requests.GET
  217. // response := &responses.BaseResponse{}
  218. // err := client.DoAction(request, response)
  219. // assert.Nil(t, err)
  220. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  221. // assert.NotNil(t, response.GetHttpContentString())
  222. // var responseBean MockResponse
  223. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  224. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  225. // }
  226. // func TestRpcGetForHttps(t *testing.T) {
  227. // request := getFtTestRpcRequest()
  228. // request.Method = requests.GET
  229. // request.Scheme = requests.HTTPS
  230. // response := &responses.BaseResponse{}
  231. // err := client.DoAction(request, response)
  232. // assert.Nil(t, err)
  233. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  234. // assert.NotNil(t, response.GetHttpContentString())
  235. // var responseBean MockResponse
  236. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  237. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  238. // }
  239. // func TestRoaGetForHttps(t *testing.T) {
  240. // request := getFtTestRoaRequest()
  241. // request.Scheme = requests.HTTPS
  242. // response := &responses.BaseResponse{}
  243. // err := client.DoAction(request, response)
  244. // assert.Nil(t, err)
  245. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  246. // assert.NotNil(t, response.GetHttpContentString())
  247. // var responseBean MockResponse
  248. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  249. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  250. // assert.Equal(t, "HeaderParamValue", responseBean.Headers["Header-Param"])
  251. // }
  252. // func TestRpcPost(t *testing.T) {
  253. // request := getFtTestRpcRequest()
  254. // request.FormParams["BodyParam"] = "BodyParamValue"
  255. // response := &responses.BaseResponse{}
  256. // err := client.DoAction(request, response)
  257. // assert.Nil(t, err)
  258. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  259. // assert.NotNil(t, response.GetHttpContentString())
  260. // var responseBean MockResponse
  261. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  262. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  263. // assert.Equal(t, "BodyParamValue", responseBean.Params["BodyParam"])
  264. // }
  265. func getFtTestRoaRequest() (request *requests.RoaRequest) {
  266. request = &requests.RoaRequest{}
  267. request.InitWithApiInfo("Ros", "2015-09-01", "", "/regions", "", "")
  268. request.Domain = "ros.aliyuncs.com"
  269. request.Headers["Header-Param"] = "HeaderParamValue"
  270. request.QueryParams["QueryParam"] = "QueryParamValue"
  271. return
  272. }
  273. // func getFtTestRpcRequest() (request *requests.RpcRequest) {
  274. // request = &requests.RpcRequest{}
  275. // request.InitWithApiInfo("Ft", "2016-01-01", "TestRpcApi", "", "")
  276. // request.Domain = "ft.aliyuncs.com"
  277. // request.QueryParams["QueryParam"] = "QueryParamValue"
  278. // return
  279. // }
  280. // func getFtTestRpcRequestForEndpointLocation() (request *requests.RpcRequest) {
  281. // request = &requests.RpcRequest{}
  282. // request.InitWithApiInfo("Ft", "2016-01-01", "TestRpcApi", "ft", "openAPI")
  283. // request.RegionId = "ft-cn-hangzhou"
  284. // request.QueryParams["QueryParam"] = "QueryParamValue"
  285. // request.Domain = "ft.aliyuncs.com"
  286. // return
  287. // }
  288. // func getFtTestRpcRequestForEndpointXml() (request *requests.RpcRequest) {
  289. // request = &requests.RpcRequest{}
  290. // request.InitWithApiInfo("Ft", "2016-01-01", "TestRpcApi", "", "")
  291. // request.RegionId = "cn-hangzhou"
  292. // request.QueryParams["QueryParam"] = "QueryParamValue"
  293. // request.Domain = "ft.aliyuncs.com"
  294. // return
  295. // }
  296. // func TestCommonRpcRequest(t *testing.T) {
  297. // rpcRequest := requests.NewCommonRequest()
  298. // rpcRequest.Product = "Ft"
  299. // rpcRequest.Version = "2016-01-01"
  300. // rpcRequest.Domain = "ft.aliyuncs.com"
  301. // rpcRequest.ApiName = "TestRpcApi"
  302. // rpcRequest.Method = "POST"
  303. // rpcRequest.QueryParams["QueryParam"] = "QueryParamValue"
  304. // rpcRequest.FormParams["BodyParam"] = "BodyParamValue"
  305. // response, err := client.ProcessCommonRequest(rpcRequest)
  306. // assert.Nil(t, err)
  307. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  308. // assert.NotNil(t, response.GetHttpContentString())
  309. // var responseBean MockResponse
  310. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  311. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  312. // assert.Equal(t, "BodyParamValue", responseBean.Params["BodyParam"])
  313. // }
  314. // func TestCommonRoaRequest(t *testing.T) {
  315. // roaRequest := requests.NewCommonRequest()
  316. // roaRequest.Product = "Ft"
  317. // roaRequest.Version = "2016-01-02"
  318. // roaRequest.PathPattern = "/web/cloudapi"
  319. // roaRequest.Domain = "ft.aliyuncs.com"
  320. // roaRequest.Method = "POST"
  321. // roaRequest.QueryParams["QueryParam"] = "QueryParamValue"
  322. // roaRequest.FormParams["BodyParam"] = "BodyParamValue"
  323. // response, err := client.ProcessCommonRequest(roaRequest)
  324. // assert.Nil(t, err)
  325. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  326. // assert.NotNil(t, response.GetHttpContentString())
  327. // var responseBean MockResponse
  328. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  329. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  330. // assert.Equal(t, "BodyParamValue", responseBean.Params["BodyParam"])
  331. // }
  332. // func TestRpcGetForEndpointXml(t *testing.T) {
  333. // request := getFtTestRpcRequestForEndpointXml()
  334. // request.Method = requests.GET
  335. // request.RegionId = "cn-shanghai"
  336. // response := &responses.BaseResponse{}
  337. // err := client.DoAction(request, response)
  338. // assert.Nil(t, err)
  339. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  340. // assert.NotNil(t, response.GetHttpContentString())
  341. // var responseBean MockResponse
  342. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  343. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  344. // }
  345. // func TestRpcGetForLocation(t *testing.T) {
  346. // request := getFtTestRpcRequestForEndpointLocation()
  347. // request.Method = requests.GET
  348. // response := &responses.BaseResponse{}
  349. // err := client.DoAction(request, response)
  350. // assert.Nil(t, err)
  351. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  352. // assert.NotNil(t, response.GetHttpContentString())
  353. // var responseBean MockResponse
  354. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  355. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  356. // }
  357. // func TestRpcGetForLocationCache(t *testing.T) {
  358. // request := getFtTestRpcRequestForEndpointLocation()
  359. // request.Method = requests.GET
  360. // response := &responses.BaseResponse{}
  361. // err := client.DoAction(request, response)
  362. // assert.Nil(t, err)
  363. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  364. // assert.NotNil(t, response.GetHttpContentString())
  365. // var responseBean MockResponse
  366. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  367. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  368. // request2 := getFtTestRpcRequestForEndpointLocation()
  369. // request2.Method = requests.GET
  370. // err = client.DoAction(request2, response)
  371. // assert.Nil(t, err)
  372. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  373. // assert.NotNil(t, response.GetHttpContentString())
  374. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  375. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  376. // }
  377. // func TestRpcGetForKeyPair(t *testing.T) {
  378. // request := getFtTestRpcRequest()
  379. // request.Method = requests.GET
  380. // response := &responses.BaseResponse{}
  381. // err := clientKeyPair.DoAction(request, response)
  382. // assert.Nil(t, err)
  383. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  384. // assert.NotNil(t, response.GetHttpContentString())
  385. // var responseBean MockResponse
  386. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  387. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  388. // }
  389. // /*func TestRpcGetForEcs(t *testing.T) {
  390. // //测试接口,想测试的时候,要替换掉singer_ecs_instance中对应的变量,并且还要提供一个mock服务
  391. // //requestUrl := "http://localhost:3500/latest/meta-data/ram/security-credentials/roleNameTest.json"
  392. // request := getFtTestRpcRequest()
  393. // request.Method = requests.GET
  394. // response := &responses.BaseResponse{}
  395. // err := clientEcs.DoAction(request, response)
  396. // assert.Nil(t, err)
  397. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  398. // assert.NotNil(t, response.GetHttpContentString())
  399. // var responseBean MockResponse
  400. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  401. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  402. // err = clientEcs.DoAction(request, response)
  403. // assert.Nil(t, err)
  404. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  405. // assert.NotNil(t, response.GetHttpContentString())
  406. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  407. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  408. // }*/
  409. // func TestRpcGetForRoleArn(t *testing.T) {
  410. // request := getFtTestRpcRequest()
  411. // request.Method = requests.GET
  412. // response := &responses.BaseResponse{}
  413. // err := clientRoleArn.DoAction(request, response)
  414. // assert.Nil(t, err)
  415. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  416. // assert.NotNil(t, response.GetHttpContentString())
  417. // var responseBean MockResponse
  418. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  419. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  420. // err = clientRoleArn.DoAction(request, response)
  421. // assert.Nil(t, err)
  422. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  423. // assert.NotNil(t, response.GetHttpContentString())
  424. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  425. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  426. // }
  427. // func TestRoaGetForRoleArn(t *testing.T) {
  428. // request := getFtTestRoaRequest()
  429. // request.Method = requests.GET
  430. // response := &responses.BaseResponse{}
  431. // err := clientRoleArn.DoAction(request, response)
  432. // assert.Nil(t, err)
  433. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  434. // assert.NotNil(t, response.GetHttpContentString())
  435. // var responseBean MockResponse
  436. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  437. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  438. // err = clientRoleArn.DoAction(request, response)
  439. // assert.Nil(t, err)
  440. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  441. // assert.NotNil(t, response.GetHttpContentString())
  442. // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  443. // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  444. // }
  445. // //测试Sts的时候要先获取一套stsToken和ak,由于有时效性,所以先把代码注释掉,测试的时候先获取stsToken完成后再调用
  446. // //func TestRpcGetForSts(t *testing.T) {
  447. // // request := getFtTestRpcRequest()
  448. // // request.Method = requests.GET
  449. // //
  450. // // response := &responses.BaseResponse{}
  451. // // err := clientSts.DoAction(request, response)
  452. // // assert.Nil(t, err)
  453. // // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  454. // // assert.NotNil(t, response.GetHttpContentString())
  455. // //
  456. // // var responseBean MockResponse
  457. // // json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
  458. // //
  459. // // assert.Equal(t, "QueryParamValue", responseBean.Params["QueryParam"])
  460. // //}
  461. // func TestCommonRoaRequestForAcceptXML(t *testing.T) {
  462. // roaRequest := requests.NewCommonRequest()
  463. // roaRequest.Product = "Acs"
  464. // roaRequest.Version = "2015-01-01"
  465. // roaRequest.ApiName = "GetGlobal"
  466. // roaRequest.PathPattern = "/"
  467. // roaRequest.Domain = "acs.aliyuncs.com"
  468. // roaRequest.AcceptFormat = "XML"
  469. // response, err := client.ProcessCommonRequest(roaRequest)
  470. // assert.Nil(t, err)
  471. // assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
  472. // assert.NotNil(t, response.GetHttpContentString())
  473. // }