All checks were successful
Test / Create distribution (push) Successful in 33s
Test / Sandbox (push) Successful in 1m53s
Test / Hakurei (push) Successful in 3m18s
Test / Sandbox (race detector) (push) Successful in 3m40s
Test / Hpkg (push) Successful in 3m35s
Test / Hakurei (race detector) (push) Successful in 5m19s
Test / Flake checks (push) Successful in 1m39s
These are very useful in many packages containing relatively large amount of code making calls to difficult or impossible to stub functions. Signed-off-by: Ophestra <cat@gensokyo.uk>
38 lines
890 B
Go
38 lines
890 B
Go
package stub
|
|
|
|
import (
|
|
"slices"
|
|
)
|
|
|
|
// ExpectArgs is an array primarily for storing expected function arguments.
|
|
// Its actual use is defined by the implementation.
|
|
type ExpectArgs = [5]any
|
|
|
|
// An Expect stores expected calls of a goroutine.
|
|
type Expect struct {
|
|
Calls []Call
|
|
|
|
// Tracks are handed out to descendant goroutines in order.
|
|
Tracks []Expect
|
|
}
|
|
|
|
// A Call holds expected arguments of a function call and its outcome.
|
|
type Call struct {
|
|
// Name is the function Name of this call. Must be unique.
|
|
Name string
|
|
// Args are the expected arguments of this Call.
|
|
Args ExpectArgs
|
|
// Ret is the return value of this Call.
|
|
Ret any
|
|
// Err is the returned error of this Call.
|
|
Err error
|
|
}
|
|
|
|
// Error returns [Call.Err] if all arguments are true, or [ErrCheck] otherwise.
|
|
func (k *Call) Error(ok ...bool) error {
|
|
if !slices.Contains(ok, false) {
|
|
return k.Err
|
|
}
|
|
return ErrCheck
|
|
}
|