acs_request_test.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package requests
  2. import (
  3. "bytes"
  4. "io"
  5. "testing"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func Test_AcsRequest(t *testing.T) {
  9. r := defaultBaseRequest()
  10. assert.NotNil(t, r)
  11. // query params
  12. query := r.GetQueryParams()
  13. assert.Equal(t, 0, len(query))
  14. r.addQueryParam("key", "value")
  15. assert.Equal(t, 1, len(query))
  16. assert.Equal(t, "value", query["key"])
  17. // form params
  18. form := r.GetFormParams()
  19. assert.Equal(t, 0, len(form))
  20. r.addFormParam("key", "value")
  21. assert.Equal(t, 1, len(form))
  22. assert.Equal(t, "value", form["key"])
  23. // getter/setter for stringtosign
  24. assert.Equal(t, "", r.GetStringToSign())
  25. r.SetStringToSign("s2s")
  26. assert.Equal(t, "s2s", r.GetStringToSign())
  27. // content type
  28. _, contains := r.GetContentType()
  29. assert.False(t, contains)
  30. r.SetContentType("application/json")
  31. ct, contains := r.GetContentType()
  32. assert.Equal(t, "application/json", ct)
  33. assert.True(t, contains)
  34. // default 3 headers & content-type
  35. headers := r.GetHeaders()
  36. assert.Equal(t, 4, len(headers))
  37. r.addHeaderParam("x-key", "x-key-value")
  38. assert.Equal(t, 5, len(headers))
  39. assert.Equal(t, "x-key-value", headers["x-key"])
  40. // GetVersion
  41. assert.Equal(t, "", r.GetVersion())
  42. // GetActionName
  43. assert.Equal(t, "", r.GetActionName())
  44. // GetMethod
  45. assert.Equal(t, "GET", r.GetMethod())
  46. r.Method = "POST"
  47. assert.Equal(t, "POST", r.GetMethod())
  48. // Domain
  49. assert.Equal(t, "", r.GetDomain())
  50. r.SetDomain("ecs.aliyuncs.com")
  51. assert.Equal(t, "ecs.aliyuncs.com", r.GetDomain())
  52. // Region
  53. assert.Equal(t, "", r.GetRegionId())
  54. r.RegionId = "cn-hangzhou"
  55. assert.Equal(t, "cn-hangzhou", r.GetRegionId())
  56. // AcceptFormat
  57. assert.Equal(t, "JSON", r.GetAcceptFormat())
  58. r.AcceptFormat = "XML"
  59. assert.Equal(t, "XML", r.GetAcceptFormat())
  60. // GetLocationServiceCode
  61. assert.Equal(t, "", r.GetLocationServiceCode())
  62. // GetLocationEndpointType
  63. assert.Equal(t, "", r.GetLocationEndpointType())
  64. // GetProduct
  65. assert.Equal(t, "", r.GetProduct())
  66. // GetScheme
  67. assert.Equal(t, "", r.GetScheme())
  68. r.SetScheme("HTTPS")
  69. assert.Equal(t, "HTTPS", r.GetScheme())
  70. // GetPort
  71. assert.Equal(t, "", r.GetPort())
  72. // Content
  73. assert.Equal(t, []byte(nil), r.GetContent())
  74. r.SetContent([]byte("The Content"))
  75. assert.True(t, bytes.Equal([]byte("The Content"), r.GetContent()))
  76. }
  77. type AcsRequestTest struct {
  78. *baseRequest
  79. Ontology AcsRequest
  80. Query string `position:"Query" name:"Query"`
  81. Header string `position:"Header" name:"Header"`
  82. Path string `position:"Path" name:"Path"`
  83. Body string `position:"Body" name:"Body"`
  84. TypeAcs *[]string `position:"type" name:"type" type:"Repeated"`
  85. }
  86. func (r AcsRequestTest) BuildQueries() string {
  87. return ""
  88. }
  89. func (r AcsRequestTest) BuildUrl() string {
  90. return ""
  91. }
  92. func (r AcsRequestTest) GetBodyReader() io.Reader {
  93. return nil
  94. }
  95. func (r AcsRequestTest) GetStyle() string {
  96. return ""
  97. }
  98. func (r AcsRequestTest) addPathParam(key, value string) {
  99. return
  100. }
  101. func Test_AcsRequest_InitParams(t *testing.T) {
  102. r := &AcsRequestTest{
  103. baseRequest: defaultBaseRequest(),
  104. Query: "query value",
  105. Header: "header value",
  106. Path: "path value",
  107. Body: "body value",
  108. }
  109. tmp := []string{r.Query, r.Header}
  110. r.TypeAcs = &tmp
  111. r.addQueryParam("qkey", "qvalue")
  112. InitParams(r)
  113. queries := r.GetQueryParams()
  114. assert.Equal(t, "query value", queries["Query"])
  115. headers := r.GetHeaders()
  116. assert.Equal(t, "header value", headers["Header"])
  117. // TODO: check the body & path
  118. }