requestparser_test.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package internal
  2. import (
  3. "net/http/httptest"
  4. "strings"
  5. "testing"
  6. "github.com/stretchr/testify/assert"
  7. "github.com/zeromicro/go-zero/rest/pathvar"
  8. )
  9. func TestNewRequestParserNoVar(t *testing.T) {
  10. req := httptest.NewRequest("GET", "/", nil)
  11. parser, err := NewRequestParser(req, nil)
  12. assert.Nil(t, err)
  13. assert.NotNil(t, parser)
  14. }
  15. func TestNewRequestParserWithVars(t *testing.T) {
  16. req := httptest.NewRequest("GET", "/", nil)
  17. req = pathvar.WithVars(req, map[string]string{"a": "b"})
  18. parser, err := NewRequestParser(req, nil)
  19. assert.Nil(t, err)
  20. assert.NotNil(t, parser)
  21. }
  22. func TestNewRequestParserNoVarWithBody(t *testing.T) {
  23. req := httptest.NewRequest("GET", "/", strings.NewReader(`{"a": "b"}`))
  24. parser, err := NewRequestParser(req, nil)
  25. assert.Nil(t, err)
  26. assert.NotNil(t, parser)
  27. }
  28. func TestNewRequestParserWithVarsWithBody(t *testing.T) {
  29. req := httptest.NewRequest("GET", "/", strings.NewReader(`{"a": "b"}`))
  30. req = pathvar.WithVars(req, map[string]string{"c": "d"})
  31. parser, err := NewRequestParser(req, nil)
  32. assert.Nil(t, err)
  33. assert.NotNil(t, parser)
  34. }
  35. func TestNewRequestParserWithVarsWithWrongBody(t *testing.T) {
  36. req := httptest.NewRequest("GET", "/", strings.NewReader(`{"a": "b"`))
  37. req = pathvar.WithVars(req, map[string]string{"c": "d"})
  38. parser, err := NewRequestParser(req, nil)
  39. assert.NotNil(t, err)
  40. assert.Nil(t, parser)
  41. }
  42. func TestNewRequestParserWithForm(t *testing.T) {
  43. req := httptest.NewRequest("GET", "/val?a=b", nil)
  44. parser, err := NewRequestParser(req, nil)
  45. assert.Nil(t, err)
  46. assert.NotNil(t, parser)
  47. }