class SagaTestFixtureBuilder
FixtureExecutionResult validator = fixture
.givenAggregate(aggregate1).published(
GenericEventMessage.asEventMessage(new TriggerSagaStartEvent(aggregate1)), new TriggerExistingSagaEvent(aggregate1))
.andThenAggregate(aggregate2).published(new TriggerSagaStartEvent(aggregate2))
.whenAggregate(aggregate1).publishes(new TriggerSagaEndEvent(aggregate1))
validator.expectActiveSagas(1)
validator.expectAssociationWith("identifier", aggregate2)
validator.expectNoAssociationWith("identifier", aggregate1)
validator.expectScheduledEventOfType(Duration.ofMinutes(10), TimerTriggeredEvent::class.java)
validator.expectScheduledEventMatching(Duration.ofMinutes(10), messageWithPayload(CoreMatchers.any(TimerTriggeredEvent::class.java)))
validator.expectScheduledEvent(Duration.ofMinutes(10), TimerTriggeredEvent(aggregate1))
validator.expectScheduledEventOfType(fixture.currentTime().plusSeconds(600), TimerTriggeredEvent::class.java)
validator.expectScheduledEventMatching(fixture.currentTime().plusSeconds(600), messageWithPayload(CoreMatchers.any(TimerTriggeredEvent::class.java)))
validator.expectScheduledEvent(fixture.currentTime().plusSeconds(600), TimerTriggeredEvent(aggregate1))
validator.expectDispatchedCommands()
validator.expectNoDispatchedCommands()
validator.expectPublishedEventsMatching(noEvents())
translates to
fixture {
given {
aggregate1 published GenericEventMessage.asEventMessage(TriggerSagaStartEvent(aggregate1)), TriggerExistingSagaEvent(aggregate1))
aggregate2 published TriggerSagaStartEvent(aggregate2)
}
whenever {
aggregate1 publishes TriggerSagaEndEvent(aggregate1)
}
expect {
activeSagas(1)
"identifier" associatedWith aggregate2
"identifier" notAssociatedWith aggregate1
scheduledEvent(Duration.ofMinutes(10)).ofType<TimerTriggeredEvent()
scheduledEvent(Duration.ofMinutes(10).matching(messageWithPayload(any<TimerTriggeredEvent>()))
scheduledEvent(Duration.ofMinutes(10).of(TimerTriggeredEvent(aggregate1))
dispatchedCommands {}
noDispatchedCommands()
publishedEventsMatching = noEvents()
}
class AnyUnaryBuilder |
|
inner class ExpectsBuilder |
|
inner class GivenBuilder |
|
inner class RegisterBuilder |
|
inner class WheneverBuilder |
SagaTestFixtureBuilder(sagaTestFixture: FixtureConfiguration)
|
lateinit var continuedGivenState: WhenState |
|
lateinit var fixtureExecutionResult: FixtureExecutionResult |
|
val sagaTestFixture: FixtureConfiguration |
fun callbackBehavior(callbackBehavior: CallbackBehavior): Unit |
|
fun expect(block: ExpectsBuilder.() -> Unit): Unit |
|
fun given(block: GivenBuilder.() -> Unit): WhenState |
|
fun register(block: RegisterBuilder.() -> Unit): RegisterBuilder |
|
fun whenever(block: WheneverBuilder.() -> Unit): FixtureExecutionResult |