testutil

package
v1.9.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 17, 2022 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Copyright 2019 DeepMap, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterResponseHandler

func RegisterResponseHandler(mime string, handler ResponseHandler)

Types

type CompletedRequest

type CompletedRequest struct {
	Recorder *httptest.ResponseRecorder

	// When set to true, decoders will be more strict. In the default JSON
	// recorder, unknown fields will cause errors.
	Strict bool
}

This is the result of calling Go() on the request builder. We're wrapping the ResponseRecorder with some nice helper functions.

func (*CompletedRequest) Code

func (c *CompletedRequest) Code() int

Shortcut for response code

func (*CompletedRequest) DisallowUnknownFields

func (c *CompletedRequest) DisallowUnknownFields()

func (*CompletedRequest) UnmarshalBodyToObject

func (c *CompletedRequest) UnmarshalBodyToObject(obj interface{}) error

This function takes a destination object as input, and unmarshals the object in the response based on the Content-Type header.

func (*CompletedRequest) UnmarshalJsonToObject

func (c *CompletedRequest) UnmarshalJsonToObject(obj interface{}) error

This function assumes that the response contains JSON and unmarshals it into the specified object.

type RequestBuilder

type RequestBuilder struct {
	Method  string
	Path    string
	Headers map[string]string
	Body    []byte
	Error   error
	Cookies []*http.Cookie
}

This structure caches request settings as we build up the request.

func NewRequest

func NewRequest() *RequestBuilder

func (*RequestBuilder) Delete

func (r *RequestBuilder) Delete(path string) *RequestBuilder

func (*RequestBuilder) Get

func (r *RequestBuilder) Get(path string) *RequestBuilder

func (*RequestBuilder) GoWithHTTPHandler

func (r *RequestBuilder) GoWithHTTPHandler(t *testing.T, handler http.Handler) *CompletedRequest

GoWithHTTPHandler performs the request, it takes a pointer to a testing context to print messages, and a http handler for request handling.

func (*RequestBuilder) Patch

func (r *RequestBuilder) Patch(path string) *RequestBuilder

func (*RequestBuilder) Post

func (r *RequestBuilder) Post(path string) *RequestBuilder

func (*RequestBuilder) Put

func (r *RequestBuilder) Put(path string) *RequestBuilder

func (*RequestBuilder) WithAccept

func (r *RequestBuilder) WithAccept(value string) *RequestBuilder

func (*RequestBuilder) WithAcceptJson

func (r *RequestBuilder) WithAcceptJson() *RequestBuilder

func (*RequestBuilder) WithBody

func (r *RequestBuilder) WithBody(body []byte) *RequestBuilder

func (*RequestBuilder) WithContentType

func (r *RequestBuilder) WithContentType(value string) *RequestBuilder

func (*RequestBuilder) WithCookie

func (r *RequestBuilder) WithCookie(c *http.Cookie) *RequestBuilder

Cookie operations

func (*RequestBuilder) WithCookieNameValue

func (r *RequestBuilder) WithCookieNameValue(name, value string) *RequestBuilder

func (*RequestBuilder) WithHeader

func (r *RequestBuilder) WithHeader(header, value string) *RequestBuilder

Header operations

func (*RequestBuilder) WithHost

func (r *RequestBuilder) WithHost(value string) *RequestBuilder

func (*RequestBuilder) WithJWSAuth

func (r *RequestBuilder) WithJWSAuth(jws string) *RequestBuilder

func (*RequestBuilder) WithJsonBody

func (r *RequestBuilder) WithJsonBody(obj interface{}) *RequestBuilder

This function takes an object as input, marshals it to JSON, and sends it as the body with Content-Type: application/json

func (*RequestBuilder) WithJsonContentType

func (r *RequestBuilder) WithJsonContentType() *RequestBuilder

func (*RequestBuilder) WithMethod

func (r *RequestBuilder) WithMethod(method string, path string) *RequestBuilder

Path operations

type ResponseHandler

type ResponseHandler func(contentType string, raw io.Reader, obj interface{}, strict bool) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL