eventtest

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2026 License: MIT Imports: 24 Imported by: 0

Documentation

Overview

Package eventtest has abstract tests to validate database implementations

Index

Constants

This section is empty.

Variables

View Source
var (
	AutoCancel      = eventtestutil.AutoCancel
	CatchPanic      = eventtestutil.CatchPanic
	CommonInjectors = eventtestutil.CommonInjectors
	GetTracerConfig = eventtestutil.GetTracerConfig
	KafkaBrokers    = eventtestutil.KafkaBrokers
	TracerContext   = eventtestutil.TracerContext
	TracerProvider  = eventtestutil.TracerProvider
)
View Source
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 IsNilDB added in v0.5.0

func IsNilDB[DB any](db DB) bool

func LongerOnCI

func LongerOnCI(local, gitlab, github time.Duration) time.Duration

func Name

func Name(t ntest.T) string

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,
)

func WaitFor

func WaitFor(ctx context.Context, t ntest.T, what string, start chan struct{}, maxWait time.Duration)

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 MyEvent

type MyEvent struct {
	S string
}

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

type T

type T = ntest.T

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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