Documentation ¶
Overview ¶
Package utils provides helpful utilities for easing the process of testing Traffic Ops API clients. The functions here don't depend on any particular API version, so they need not be copy/pasted along with the entire testing suites.
Index ¶
- func Compare(t *testing.T, expected []string, alertsStrs []string)
- func CreateV3Session(t *testing.T, trafficOpsURL string, username string, password string, ...) *v3client.Session
- func CreateV4Session(t *testing.T, trafficOpsURL string, username string, password string, ...) *v4client.Session
- func CreateV5Session(t *testing.T, trafficOpsURL, username, password string, toReqTimeout int) *v5client.Session
- func ErrorsToStrings(errs []error) []string
- func FindNeedle[T comparable](needle T, haystack []T) bool
- type CkReqFunc
- type TestCase
- type TestData
- type V3TestCase
- type V3TestCaseT
- type V3TestData
- type V3TestDataT
- type V4TestCase
- type V4TestData
- type V5TestCase
- type V5TestData
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Compare ¶
Compare compares a set of expected alert messages to those actually received. It checks for the existence of each expected alert, not that they appear in any particular order. It also checks that no unexpected alert strings exist. Note that this isn't particularly efficient, which is fine because it's only meant to be used in testing.
func CreateV3Session ¶
func CreateV3Session(t *testing.T, trafficOpsURL string, username string, password string, toReqTimeout int) *v3client.Session
CreateV3Session creates a session for client v4 using the passed in username and password.
func CreateV4Session ¶
func CreateV4Session(t *testing.T, trafficOpsURL string, username string, password string, toReqTimeout int) *v4client.Session
CreateV4Session creates a session for client v4 using the passed in username and password.
func CreateV5Session ¶
func CreateV5Session(t *testing.T, trafficOpsURL, username, password string, toReqTimeout int) *v5client.Session
CreateV5Session creates a session for client v5 using the passed in username and password.
func ErrorsToStrings ¶
ErrorsToStrings converts a slice of errors to a slice of their error messages.
func FindNeedle ¶
func FindNeedle[T comparable](needle T, haystack []T) bool
FindNeedle searches a "haystack" slice of values for the the "needle" value, returning true if the value is in the haystack, false otherwise.
Types ¶
type CkReqFunc ¶
type CkReqFunc func(*testing.T, toclientlib.ReqInf, interface{}, tc.Alerts, error)
CkReqFunc defines the reusable signature for all other functions that perform checks. Common parameters that are checked include the request's info, response, alerts, and errors.
func CkRequest ¶
CkRequest wraps CkReqFunc functions, to be concise and reduce lexical tokens i.e. Instead of `[]CkReqFunc {` we can use `CkRequest(` in test case declarations.
func HasAlertLevel ¶
HasAlertLevel checks that the alert from the request matches the expected level.
func HasError ¶
func HasError() CkReqFunc
HasError checks that an error was returned (i.e. not `nil`).
func ResponseHasLength ¶
ResponseHasLength checks that the length of the response is as expected. Determines that response is a slice before checking the length of the reflected value.
func ResponseLengthGreaterOrEqual ¶
ResponseLengthGreaterOrEqual checks that the response is greater or equal to the expected length. Determines that response is a slice before checking the length of the reflected value.
type TestData ¶
type TestData[C clientSession, R requestOpts, B any] struct { EndpointID func() int ClientSession *C RequestOpts R RequestBody B Expectations []CkReqFunc }
TestData represents the data needed for testing the api endpoints.
type V3TestCase ¶
type V3TestCase map[string]map[string]V3TestData
V3TestCase is the type of the V3TestData struct. Uses nested map to represent the method being tested and the test's description.
type V3TestCaseT ¶
type V3TestCaseT[B any] map[string]map[string]V3TestDataT[B]
V3TestCaseT is the type of the V3TestDataT struct. Uses nested map to represent the method being tested and the test's description.
type V3TestData ¶
type V3TestData struct { EndpointID func() int ClientSession *v3client.Session RequestParams url.Values RequestHeaders http.Header RequestBody map[string]interface{} PreReqFuncs []func() Expectations []CkReqFunc }
V3TestData represents the data needed for testing the v3 api endpoints.
type V3TestDataT ¶
type V3TestDataT[B any] struct { EndpointID func() int ClientSession *v3client.Session RequestParams url.Values RequestHeaders http.Header RequestBody B Expectations []CkReqFunc }
V3TestDataT represents the data needed for testing the v3 api endpoints.
type V4TestCase ¶
type V4TestCase map[string]map[string]V4TestData
V4TestCase is the type of the V4TestData struct. Uses nested map to represent the method being tested and the test's description.
type V4TestData ¶
type V4TestData struct { EndpointID func() int ClientSession *v4client.Session RequestOpts v4client.RequestOptions RequestBody map[string]interface{} PreReqFuncs []func() Expectations []CkReqFunc }
V4TestData represents the data needed for testing the v4 api endpoints.
type V5TestCase ¶
type V5TestCase map[string]map[string]V5TestData
V5TestCase is a map of test names to maps of HTTP request method descriptions to V5TestData structures. Uses nested map to represent the method being tested and the test's description.
type V5TestData ¶
type V5TestData struct { EndpointID func() int ClientSession *v5client.Session RequestOpts v5client.RequestOptions RequestBody map[string]interface{} PreReqFuncs []func() Expectations []CkReqFunc }
V5TestData represents the data needed for testing the v5 api endpoints.