container/stub: export stub helpers
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
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>
This commit is contained in:
37
container/stub/call.go
Normal file
37
container/stub/call.go
Normal file
@@ -0,0 +1,37 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user