client_test.go 19 KB

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