Documentation
¶
Overview ¶
Package eventtest has abstract tests to validate database implementations
Index ¶
- Variables
- func BatchDeliveryBroadcastTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func BatchDeliveryExactlyOnceTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func BatchDeliveryIdempotentTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func BroadcastDeliveryTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func CloudEventEncodingTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func DeadLetterBlockTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func DeadLetterDiscardTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func DeadLetterRetryLaterTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func DeadLetterSaveTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func DeadLetterTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func ErrorWhenMisusedTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func EventComprehensiveNotifierTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func EventUnfilteredNotifierTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func ExactlyOnceDeliveryTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func GenerateSharedTestMatrix[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...]() map[string]nject.Provider
- func IdempotentDeliveryTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func IsNilDB[DB any](db DB) bool
- func LongerOnCI(local, gitlab, github time.Duration) time.Duration
- func Name(t ntest.T) string
- func OrderedBlockTestOneCG[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func OrderedBlockTestTwoCG[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func OrderedRetryTestOncCG[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func OrderedRetryTestTwoCG[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func OrderedTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func OversizeSendTest[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, ...](ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, ...)
- func WaitFor(ctx context.Context, t ntest.T, what string, start chan struct{}, ...)
- type AugmentAbstractDB
- type Brokers
- type Cancel
- type MyEvent
- type NewLibFunc
- type Prefix
- type T
Constants ¶
This section is empty.
Variables ¶
var ( AutoCancel = eventtestutil.AutoCancel CatchPanic = eventtestutil.CatchPanic CommonInjectors = eventtestutil.CommonInjectors GetTracerConfig = eventtestutil.GetTracerConfig KafkaBrokers = eventtestutil.KafkaBrokers TracerContext = eventtestutil.TracerContext TracerProvider = eventtestutil.TracerProvider )
var ( DeliveryTimeout = LongerOnCI(60*time.Second, 10*time.Minute, 4*time.Minute) StartupTimeout = LongerOnCI(85*time.Second, 7*time.Minute, 125*time.Second) )
Functions ¶
func BatchDeliveryBroadcastTest ¶ added in v0.5.0
func BatchDeliveryBroadcastTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func BatchDeliveryExactlyOnceTest ¶ added in v0.5.0
func BatchDeliveryExactlyOnceTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func BatchDeliveryIdempotentTest ¶ added in v0.5.0
func BatchDeliveryIdempotentTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func BroadcastDeliveryTest ¶ added in v0.1.0
func BroadcastDeliveryTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
BroadcastDeliveryTest verifies: - That broadcast events are delivered to all instances of events.Library - That returning an error from a handler temporarily will not stop eventual message delivery - That multiple handlers in the same library receive broadcast events
func CloudEventEncodingTest ¶
func CloudEventEncodingTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
CloudEventEncodingTest verifies:
That non-CloudEvent messages present with CloudEvent fields.
That both primary encodings of CloudEvent messages result in the same Event.
That the messages generated by produce are valid CloudEvent messages.
func DeadLetterBlockTest ¶
func DeadLetterBlockTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func DeadLetterDiscardTest ¶
func DeadLetterDiscardTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func DeadLetterRetryLaterTest ¶
func DeadLetterRetryLaterTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func DeadLetterSaveTest ¶
func DeadLetterSaveTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func DeadLetterTest ¶
func DeadLetterTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, onFailure eventmodels.OnFailure, testPrefix string, libraryPrefix Prefix, )
func ErrorWhenMisusedTest ¶
func ErrorWhenMisusedTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
ErrorWhenMisusedTest verifies that publishing events fails when:
- No Producer is embedded in the connection
- An invalid topic is used
func EventComprehensiveNotifierTest ¶ added in v0.2.0
func EventComprehensiveNotifierTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func EventUnfilteredNotifierTest ¶ added in v0.2.0
func EventUnfilteredNotifierTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func ExactlyOnceDeliveryTest ¶ added in v0.1.0
func ExactlyOnceDeliveryTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
ExactlyOnceDeliveryTest verifies: - That exactly-once events are delivered to exactly one consumer in a consumer group - That returning an error from a handler temporarily will not stop eventual message delivery
func GenerateSharedTestMatrix ¶
func GenerateSharedTestMatrix[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]() map[string]nject.Provider
func IdempotentDeliveryTest ¶ added in v0.1.0
func IdempotentDeliveryTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
IdempotentDeliveryTest verifies: - That idempotent events with the same consumer group are delivered exactly once - That idempotent events with different consumer groups are delivered to each group - That returning an error from a handler temporarily will not stop eventual message delivery
func OrderedBlockTestOneCG ¶ added in v0.2.0
func OrderedBlockTestOneCG[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func OrderedBlockTestTwoCG ¶ added in v0.2.0
func OrderedBlockTestTwoCG[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func OrderedRetryTestOncCG ¶ added in v0.2.0
func OrderedRetryTestOncCG[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func OrderedRetryTestTwoCG ¶ added in v0.2.0
func OrderedRetryTestTwoCG[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
func OrderedTest ¶ added in v0.2.0
func OrderedTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, onFailure eventmodels.OnFailure, testPrefix string, oneConsumerGroup bool, libraryPrefix Prefix, )
OrderedTest sends events in different topics that have to be processed out of order compared to how they're sent
func OversizeSendTest ¶ added in v0.8.0
func OversizeSendTest[ ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX], ]( ctx context.Context, t ntest.T, conn DB, brokers Brokers, cancel Cancel, prefix Prefix, )
Types ¶
type AugmentAbstractDB ¶
type AugmentAbstractDB[ID eventmodels.AbstractID[ID], TX eventmodels.AbstractTX] interface { eventmodels.AbstractDB[ID, TX] eventmodels.CanAugment[ID, TX] }
type Brokers ¶
type Brokers = eventtestutil.Brokers
type Cancel ¶
type Cancel = eventtestutil.Cancel
type NewLibFunc ¶
type NewLibFunc[ID eventmodels.AbstractID[ID], TX eventmodels.EnhancedTX, DB AugmentAbstractDB[ID, TX]] func() *events.Library[ID, TX, DB]
type Prefix ¶ added in v0.8.0
type Prefix = eventtestutil.Prefix