12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package httptt
- import (
- "bytes"
- "encoding/json"
- "fmt"
- "net/http"
- "testing"
- "kpt-tmr-group/pkg/jsonpb"
- "github.com/golang/protobuf/proto"
- "github.com/stretchr/testify/require"
- )
- func NewRequest(t *testing.T, method, path string, body proto.Message) *http.Request {
- var (
- req *http.Request
- err error
- )
- switch method {
- case http.MethodGet, http.MethodDelete:
- var url string
- if body != nil {
- v := MarshalQueryPB(body)
- query := v.Encode()
- url = fmt.Sprintf("%s?%s", path, query)
- } else {
- url = path
- }
- req, err = http.NewRequest(method, url, nil)
- require.NoError(t, err)
- default:
- if body != nil {
- bs, err := jsonpb.MarshalBytes(body)
- require.NoError(t, err)
- req, err = http.NewRequest(method, path, bytes.NewReader(bs))
- require.NoError(t, err)
- } else {
- req, err = http.NewRequest(method, path, nil)
- require.NoError(t, err)
- }
- }
- return req
- }
- func NewRequest2(t *testing.T, method, path string, body interface{}) *http.Request {
- var (
- req *http.Request
- err error
- )
- switch method {
- case http.MethodGet:
- var url string
- url = path
- req, err = http.NewRequest(http.MethodGet, url, nil)
- require.NoError(t, err)
- default:
- if body != nil {
- bs, err := json.Marshal(body)
- require.NoError(t, err)
- req, err = http.NewRequest(method, path, bytes.NewReader(bs))
- require.NoError(t, err)
- } else {
- req, err = http.NewRequest(method, path, nil)
- require.NoError(t, err)
- }
- }
- return req
- }
|