in pkg/api/mock/request.go [44:100]
func AssertRequest(want *RequestAssertion, req *http.Request) error {
var merr = multierror.NewPrefixed("request assertion")
if req.Body != nil || want.Body != nil {
if !reflect.DeepEqual(want.Body, req.Body) {
var wantB []byte
if want.Body != nil {
wantB, _ = io.ReadAll(
io.TeeReader(want.Body, new(bytes.Buffer)),
)
}
var gotB []byte
if req.Body != nil {
gotB, _ = io.ReadAll(
io.TeeReader(req.Body, new(bytes.Buffer)),
)
}
if !reflect.DeepEqual(wantB, gotB) {
merr = merr.Append(
fmt.Errorf("actual body %s, expected %s", gotB, wantB),
)
}
}
}
if !reflect.DeepEqual(want.Header, req.Header) {
merr = merr.Append(fmt.Errorf(
"headers do not match (expected != actual): %v != %v", want.Header, req.Header),
)
}
if !reflect.DeepEqual(want.Method, req.Method) {
merr = merr.Append(fmt.Errorf(
"methods do not match (expected != actual): %s != %s", want.Method, req.Method),
)
}
if req.URL != nil {
if !reflect.DeepEqual(want.Path, req.URL.Path) {
merr = merr.Append(fmt.Errorf(
"paths do not match (expected != actual): %s != %s", want.Path, req.URL.Path),
)
}
if (len(req.URL.Query()) > 0 || len(want.Query) > 0) && !reflect.DeepEqual(want.Query, req.URL.Query()) {
merr = merr.Append(fmt.Errorf(
"query does not match (expected != actual): %s != %s", want.Query, req.URL.Query()),
)
}
}
if !reflect.DeepEqual(want.Host, req.Host) {
merr = merr.Append(fmt.Errorf(
"hosts do not match (expected != actual): %s != %s", want.Host, req.Host),
)
}
return merr.ErrorOrNil()
}