lib

package
v0.0.0-...-692f621 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Compare

func Compare(a, b any, opt ...cmp.Option) error

func IsNotSameError

func IsNotSameError(e error) bool

Types

type Amphisbaena

type Amphisbaena[C Client[Q, S], J Ordeal[S], Q Request, S Response] struct {
	// contains filtered or unexported fields
}

func (*Amphisbaena[C, J, Q, S]) HookActualJudge

func (a *Amphisbaena[C, J, Q, S]) HookActualJudge(hook ...JudgeHook[J, S])

func (*Amphisbaena[C, J, Q, S]) HookActualRequest

func (a *Amphisbaena[C, J, Q, S]) HookActualRequest(hook ...RequestHook[C, Q, S])

func (*Amphisbaena[C, J, Q, S]) HookExpectJudge

func (a *Amphisbaena[C, J, Q, S]) HookExpectJudge(hook ...JudgeHook[J, S])

func (*Amphisbaena[C, J, Q, S]) HookExpectRequest

func (a *Amphisbaena[C, J, Q, S]) HookExpectRequest(hook ...RequestHook[C, Q, S])

func (*Amphisbaena[C, J, Q, S]) HookJudge

func (a *Amphisbaena[C, J, Q, S]) HookJudge(hook ...JudgeHook[J, S])

func (*Amphisbaena[C, J, Q, S]) HookRequest

func (a *Amphisbaena[C, J, Q, S]) HookRequest(hook ...RequestHook[C, Q, S])

func (*Amphisbaena[C, J, Q, S]) Minion

func (a *Amphisbaena[C, J, Q, S]) Minion(testcase *Testcase[Q]) Minion[C, J, Q, S]

type Client

type Client[Q Request, S Response] interface {
	Do(Q) (S, error)
}

type JudgeFunc

type JudgeFunc[J Ordeal[S], S Response] func(*JudgeScenario[J, S]) error

func ApplyJudgeHooks

func ApplyJudgeHooks[J Ordeal[S], S Response](
	f JudgeFunc[J, S],
	hooks ...JudgeHook[J, S],
) JudgeFunc[J, S]

TODO sequential diff record (lifecycle: process -> judge -> process -> judge -> ...)

func WithNop

func WithNop[J Ordeal[S], S Response](f JudgeFunc[J, S]) JudgeFunc[J, S]

type JudgeHook

type JudgeHook[J Ordeal[S], S Response] func(JudgeFunc[J, S]) JudgeFunc[J, S]

type JudgeScenario

type JudgeScenario[J Ordeal[S], S Response] struct {
	Error error
	// contains filtered or unexported fields
}

func (*JudgeScenario[J, S]) Record

func (s *JudgeScenario[J, S]) Record() map[string]any

func (*JudgeScenario[J, S]) Response

func (s *JudgeScenario[J, S]) Response() S

type Minion

type Minion[C Client[Q, S], J Ordeal[S], Q Request, S Response] struct {
	// contains filtered or unexported fields
}

func (*Minion[C, J, Q, S]) Judge

func (m *Minion[C, J, Q, S]) Judge() error

func (*Minion[C, J, Q, S]) Process

func (m *Minion[C, J, Q, S]) Process() (error, error)

func (*Minion[C, J, Q, S]) ProcessedActual

func (m *Minion[C, J, Q, S]) ProcessedActual() S

func (*Minion[C, J, Q, S]) ProcessedExpect

func (m *Minion[C, J, Q, S]) ProcessedExpect() S

func (*Minion[C, J, Q, S]) RecordActual

func (m *Minion[C, J, Q, S]) RecordActual() map[string]any

func (*Minion[C, J, Q, S]) RecordExpect

func (m *Minion[C, J, Q, S]) RecordExpect() map[string]any

func (*Minion[C, J, Q, S]) Request

func (m *Minion[C, J, Q, S]) Request() (actual, expect error)

type NotSameError

type NotSameError struct {
	A, B any
	Diff string
}

func (*NotSameError) Error

func (e *NotSameError) Error() string

type Ordeal

type Ordeal[S Response] interface {
	Judge(actual, expect S) error
}

type Request

type Request interface{} // TODO serializable

type RequestFunc

type RequestFunc[C Client[Q, S], Q Request, S Response] func(*RequestScenario[C, Q, S]) error

func ApplyRequestHooks

func ApplyRequestHooks[C Client[Q, S], Q Request, S Response](
	f RequestFunc[C, Q, S],
	hooks ...RequestHook[C, Q, S],
) RequestFunc[C, Q, S]

func WithProfile

func WithProfile[C Client[Q, S], Q Request, S Response](f RequestFunc[C, Q, S]) RequestFunc[C, Q, S]

func WithRecord

func WithRecord[C Client[Q, S], Q Request, S Response](f RequestFunc[C, Q, S]) RequestFunc[C, Q, S]

type RequestHook

type RequestHook[C Client[Q, S], Q Request, S Response] func(RequestFunc[C, Q, S]) RequestFunc[C, Q, S]

type RequestScenario

type RequestScenario[C Client[Q, S], Q Request, S Response] struct {
	Error error
	// contains filtered or unexported fields
}

func (*RequestScenario[C, Q, S]) Record

func (s *RequestScenario[C, Q, S]) Record() map[string]any

func (*RequestScenario[C, Q, S]) Request

func (s *RequestScenario[C, Q, S]) Request() Q

func (*RequestScenario[C, Q, S]) Response

func (s *RequestScenario[C, Q, S]) Response() S

type Response

type Response interface{} // TODO serializable

type Testcase

type Testcase[Q Request] interface {
	Name() string
	Actual() (Q, error)
	Expect() (Q, error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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