Documentation ¶
Index ¶
- Variables
- func Change(t TestingT, a aggregate.Aggregate, eventName string, opts ...ChangeOption)
- func NewAggregate[Aggregate aggregate.Aggregate](t TestingT, newFunc func(uuid.UUID) Aggregate, expectedName string)
- func NoChange(t TestingT, a aggregate.Aggregate, eventName string, opts ...ChangeOption)
- type ChangeOption
- type ExpectedChangeError
- type TestingT
- type UnexpectedChangeError
Constants ¶
This section is empty.
Variables ¶
var ( // ExampleID is a UUID that can be used in tests. ExampleID = uuid.New() )
Functions ¶
func Change ¶
func Change(t TestingT, a aggregate.Aggregate, eventName string, opts ...ChangeOption)
Change tests an aggregate for a change. The Aggregate must have an uncommitted change with the specified event name.
func NewAggregate ¶
func NewAggregate[Aggregate aggregate.Aggregate](t TestingT, newFunc func(uuid.UUID) Aggregate, expectedName string)
NewAggregate tests the New function of an aggregate to check if the returned aggregate provides the correct aggregateName and AggregateID.
Example:
type Foo struct { *aggregate.Base } func NewFoo() *Foo { return &Foo{Base: aggregate.New()} } func TestNewFoo(t *testing.T) { test.NewAggregate(t, NewFoo, "foo") }
Types ¶
type ChangeOption ¶
type ChangeOption func(*changeConfig)
ChangeOption is an option for the `Change` testing helper.
func AtLeast ¶
func AtLeast(times int) ChangeOption
AtLeast returns a ChangeOption that requires an aggregate to have a change at least as many times as provided.
AtLeast has no effect when used in `NoChange`.
func AtMost ¶
func AtMost(times int) ChangeOption
AtMost returns a ChangeOption that requires an aggregate to have a change at most as many times as provided.
AtMost has no effect when used in `NoChange`.
func EventData ¶
func EventData(data any) ChangeOption
EventData returns a ChangeOption that also tests the event data of changes instead of just the event name.
func Exactly ¶
func Exactly(times int) ChangeOption
Exactly returns a ChangeOption that requires an aggregate to have a change exactly as many times as provided.
Exactly has no effect when used in `NoChange`.
type ExpectedChangeError ¶
type ExpectedChangeError struct { // EventName is the name of the tested change. EventName string // Matches is the number of changes that matched. Matches int // contains filtered or unexported fields }
ExpectedChangeError is returned by the `Change` testing helper when the testd aggregate doesn't have the required change.
func (ExpectedChangeError) Error ¶
func (err ExpectedChangeError) Error() string
type UnexpectedChangeError ¶
type UnexpectedChangeError struct { // EventName is the name of the tested change. EventName string }
UnexpectedChangeError is returned by the `NoChange` testing helper when the testd aggregate does have an unwanted change.
func (UnexpectedChangeError) Error ¶
func (err UnexpectedChangeError) Error() string