rpc_request_test.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package requests
  2. import (
  3. "io/ioutil"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func Test_RpcRequest(t *testing.T) {
  8. r := &RpcRequest{}
  9. r.InitWithApiInfo("product", "version", "action", "serviceCode", "endpointType")
  10. assert.NotNil(t, r)
  11. assert.Equal(t, "POST", r.GetMethod())
  12. assert.Equal(t, "RPC", r.GetStyle())
  13. assert.Equal(t, "product", r.GetProduct())
  14. assert.Equal(t, "version", r.GetVersion())
  15. assert.Equal(t, "action", r.GetActionName())
  16. assert.Equal(t, "serviceCode", r.GetLocationServiceCode())
  17. assert.Equal(t, "endpointType", r.GetLocationEndpointType())
  18. }
  19. func Test_RpcRequest_BuildQueries(t *testing.T) {
  20. // url
  21. r := &RpcRequest{}
  22. r.InitWithApiInfo("product", "version", "action", "serviceCode", "endpointType")
  23. assert.Equal(t, "/?", r.BuildQueries())
  24. r.addQueryParam("key", "value")
  25. assert.Equal(t, "/?key=value", r.BuildQueries())
  26. r.addQueryParam("key", "https://domain/?q=v")
  27. assert.Equal(t, "/?key=https%3A%2F%2Fdomain%2F%3Fq%3Dv", r.BuildQueries())
  28. }
  29. func Test_RpcRequest_BuildUrl(t *testing.T) {
  30. r := &RpcRequest{}
  31. r.InitWithApiInfo("product", "version", "action", "serviceCode", "endpointType")
  32. r.Domain = "domain.com"
  33. r.Scheme = "http"
  34. r.Port = "80"
  35. assert.Equal(t, "http://domain.com:80/?", r.BuildUrl())
  36. r.addQueryParam("key", "value")
  37. assert.Equal(t, "http://domain.com:80/?key=value", r.BuildUrl())
  38. r.addQueryParam("key", "https://domain/?q=v")
  39. assert.Equal(t, "http://domain.com:80/?key=https%3A%2F%2Fdomain%2F%3Fq%3Dv", r.BuildUrl())
  40. }
  41. func Test_RpcRequest_GetBodyReader(t *testing.T) {
  42. r := &RpcRequest{}
  43. r.InitWithApiInfo("product", "version", "action", "serviceCode", "endpointType")
  44. reader := r.GetBodyReader()
  45. b, _ := ioutil.ReadAll(reader)
  46. assert.Equal(t, "", string(b))
  47. r.addFormParam("key", "value")
  48. reader = r.GetBodyReader()
  49. b, _ = ioutil.ReadAll(reader)
  50. assert.Equal(t, "key=value", string(b))
  51. }
  52. func Test_RpcRequest_addPathParam(t *testing.T) {
  53. defer func() { //进行异常捕捉
  54. err := recover()
  55. assert.NotNil(t, err)
  56. assert.Equal(t, "not support", err)
  57. }()
  58. r := &RpcRequest{}
  59. r.InitWithApiInfo("product", "version", "action", "serviceCode", "endpointType")
  60. r.addPathParam("key", "value")
  61. }