roa_request_test.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package requests
  2. import (
  3. "io/ioutil"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func Test_RoaRequest(t *testing.T) {
  8. r := &RoaRequest{}
  9. r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
  10. assert.NotNil(t, r)
  11. assert.Equal(t, "GET", r.GetMethod())
  12. assert.Equal(t, "ROA", r.GetStyle())
  13. // assert.Equal(t, "version", r.GetVersion())
  14. // assert.Equal(t, "action", r.GetActionName())
  15. assert.Equal(t, "serviceCode", r.GetLocationServiceCode())
  16. assert.Equal(t, "endpointType", r.GetLocationEndpointType())
  17. }
  18. func Test_RoaRequest_initWithCommonRequest(t *testing.T) {
  19. r := &RoaRequest{}
  20. common := NewCommonRequest()
  21. r.initWithCommonRequest(common)
  22. assert.NotNil(t, r)
  23. assert.Equal(t, "GET", r.GetMethod())
  24. assert.Equal(t, "ROA", r.GetStyle())
  25. assert.Equal(t, "common", r.Headers["x-sdk-invoke-type"])
  26. // assert.Equal(t, "version", r.GetVersion())
  27. // assert.Equal(t, "action", r.GetActionName())
  28. }
  29. func Test_RoaRequest_BuildQueries(t *testing.T) {
  30. // url
  31. r := &RoaRequest{}
  32. r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
  33. assert.Equal(t, "/", r.BuildQueries())
  34. r.addQueryParam("key", "value")
  35. assert.Equal(t, "/?key=value", r.BuildQueries())
  36. r.addQueryParam("key2", "value2")
  37. assert.Equal(t, "/?key=value&key2=value2", r.BuildQueries())
  38. // assert.Equal(t, "/?key=https%3A%2F%2Fdomain%2F%3Fq%3Dv", r.BuildQueries())
  39. }
  40. func Test_RoaRequest_BuildUrl(t *testing.T) {
  41. r := &RoaRequest{}
  42. r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
  43. r.Domain = "domain.com"
  44. r.Scheme = "http"
  45. r.Port = "80"
  46. assert.Equal(t, "http://domain.com:80/", r.BuildUrl())
  47. r.addQueryParam("key", "value")
  48. assert.Equal(t, "http://domain.com:80/?key=value", r.BuildUrl())
  49. r.addQueryParam("key", "https://domain/?q=v")
  50. assert.Equal(t, "http://domain.com:80/?key=https%3A%2F%2Fdomain%2F%3Fq%3Dv", r.BuildUrl())
  51. r.addQueryParam("url", "https://domain/?q1=v1&q2=v2")
  52. assert.Equal(t, "http://domain.com:80/?key=https%3A%2F%2Fdomain%2F%3Fq%3Dv&url=https%3A%2F%2Fdomain%2F%3Fq1%3Dv1%26q2%3Dv2", r.BuildUrl())
  53. }
  54. func Test_RoaRequest_BuildUrl2(t *testing.T) {
  55. r := &RoaRequest{}
  56. r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
  57. r.Domain = "domain.com"
  58. r.Scheme = "http"
  59. r.Port = "80"
  60. assert.Equal(t, "http://domain.com:80/", r.BuildUrl())
  61. r.addPathParam("key", "value")
  62. assert.Equal(t, "http://domain.com:80/", r.BuildUrl())
  63. r = &RoaRequest{}
  64. r.InitWithApiInfo("product", "version", "action", "/users/[user]", "serviceCode", "endpointType")
  65. r.Domain = "domain.com"
  66. r.Scheme = "http"
  67. r.Port = "80"
  68. r.addPathParam("user", "name")
  69. assert.Equal(t, "http://domain.com:80/users/name", r.BuildUrl())
  70. r.addQueryParam("key", "value")
  71. assert.Equal(t, "http://domain.com:80/users/name?key=value", r.BuildUrl())
  72. }
  73. func Test_RoaRequest_GetBodyReader_Nil(t *testing.T) {
  74. r := &RoaRequest{}
  75. r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
  76. reader := r.GetBodyReader()
  77. assert.Nil(t, reader)
  78. }
  79. func Test_RoaRequest_GetBodyReader_Form(t *testing.T) {
  80. r := &RoaRequest{}
  81. r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
  82. r.addFormParam("key", "value")
  83. reader := r.GetBodyReader()
  84. b, _ := ioutil.ReadAll(reader)
  85. assert.Equal(t, "key=value", string(b))
  86. }
  87. func Test_RoaRequest_GetBodyReader_Content(t *testing.T) {
  88. r := &RoaRequest{}
  89. r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
  90. r.SetContent([]byte("Hello world"))
  91. reader := r.GetBodyReader()
  92. b, _ := ioutil.ReadAll(reader)
  93. assert.Equal(t, "Hello world", string(b))
  94. }
  95. // func Test_RoaRequest_addPathParam(t *testing.T) {
  96. // r := &RoaRequest{}
  97. // r.InitWithApiInfo("product", "version", "action", "/", "serviceCode", "endpointType")
  98. // r.addPathParam("key", "value")
  99. // }