Removed default referenceId - avoiding rouge events
This commit is contained in:
parent
5082571ce8
commit
85e1e805b7
@ -64,7 +64,7 @@ class EventDispatcherTest : TestBase() {
|
|||||||
fun shouldProduceOneEventAndStop() {
|
fun shouldProduceOneEventAndStop() {
|
||||||
ProducingListener()
|
ProducingListener()
|
||||||
|
|
||||||
val trigger = TriggerEvent()
|
val trigger = TriggerEvent().newReferenceId()
|
||||||
dispatcher.dispatch(trigger.referenceId, listOf(trigger))
|
dispatcher.dispatch(trigger.referenceId, listOf(trigger))
|
||||||
|
|
||||||
val produced = eventStore.all().firstOrNull()
|
val produced = eventStore.all().firstOrNull()
|
||||||
@ -87,7 +87,7 @@ class EventDispatcherTest : TestBase() {
|
|||||||
fun shouldSkipAlreadyDerivedEvents() {
|
fun shouldSkipAlreadyDerivedEvents() {
|
||||||
ProducingListener()
|
ProducingListener()
|
||||||
|
|
||||||
val trigger = TriggerEvent()
|
val trigger = TriggerEvent().newReferenceId()
|
||||||
val derived = DerivedEvent().derivedOf(trigger).toPersisted(1L, MyTime.utcNow())
|
val derived = DerivedEvent().derivedOf(trigger).toPersisted(1L, MyTime.utcNow())
|
||||||
|
|
||||||
eventStore.persist(derived!!.toEvent()!!) // simulate prior production
|
eventStore.persist(derived!!.toEvent()!!) // simulate prior production
|
||||||
@ -108,8 +108,8 @@ class EventDispatcherTest : TestBase() {
|
|||||||
fun shouldPassFullContextToListener() {
|
fun shouldPassFullContextToListener() {
|
||||||
val listener = ContextCapturingListener()
|
val listener = ContextCapturingListener()
|
||||||
|
|
||||||
val e1 = TriggerEvent()
|
val e1 = TriggerEvent().newReferenceId()
|
||||||
val e2 = OtherEvent()
|
val e2 = OtherEvent().newReferenceId()
|
||||||
dispatcher.dispatch(e1.referenceId, listOf(e1, e2))
|
dispatcher.dispatch(e1.referenceId, listOf(e1, e2))
|
||||||
|
|
||||||
assertEquals(2, listener.context.size)
|
assertEquals(2, listener.context.size)
|
||||||
@ -124,9 +124,11 @@ class EventDispatcherTest : TestBase() {
|
|||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
fun shouldBehaveDeterministicallyAcrossReplays() {
|
fun shouldBehaveDeterministicallyAcrossReplays() {
|
||||||
|
val referenceId = UUID.randomUUID()
|
||||||
|
|
||||||
ProducingListener()
|
ProducingListener()
|
||||||
|
|
||||||
val trigger = TriggerEvent()
|
val trigger = TriggerEvent().usingReferenceId(referenceId)
|
||||||
dispatcher.dispatch(trigger.referenceId, listOf(trigger))
|
dispatcher.dispatch(trigger.referenceId, listOf(trigger))
|
||||||
val replayContext = listOf(trigger) + eventStore.all().mapNotNull { it.toEvent() }
|
val replayContext = listOf(trigger) + eventStore.all().mapNotNull { it.toEvent() }
|
||||||
|
|
||||||
@ -144,6 +146,8 @@ class EventDispatcherTest : TestBase() {
|
|||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
fun shouldNotDeliverDeletedEventsAsCandidates() {
|
fun shouldNotDeliverDeletedEventsAsCandidates() {
|
||||||
|
val referenceId = UUID.randomUUID()
|
||||||
|
|
||||||
val dispatcher = EventDispatcher(eventStore)
|
val dispatcher = EventDispatcher(eventStore)
|
||||||
val received = mutableListOf<Event>()
|
val received = mutableListOf<Event>()
|
||||||
|
|
||||||
@ -154,11 +158,10 @@ class EventDispatcherTest : TestBase() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Original hendelse
|
// Original hendelse
|
||||||
val original = TriggerEvent()
|
val original = TriggerEvent().usingReferenceId(referenceId)
|
||||||
|
|
||||||
// Slettehendelse som peker på original
|
// Slettehendelse som peker på original
|
||||||
val deleted = object : DeleteEvent(original.eventId) {
|
val deleted = object : DeleteEvent(original.eventId) {}.apply { newReferenceId() }
|
||||||
}
|
|
||||||
|
|
||||||
// Dispatch med begge hendelser
|
// Dispatch med begge hendelser
|
||||||
dispatcher.dispatch(original.referenceId, listOf(original, deleted))
|
dispatcher.dispatch(original.referenceId, listOf(original, deleted))
|
||||||
@ -184,6 +187,8 @@ class EventDispatcherTest : TestBase() {
|
|||||||
)
|
)
|
||||||
fun shouldDeliverDeleteEventToListenersThatReactToIt() {
|
fun shouldDeliverDeleteEventToListenersThatReactToIt() {
|
||||||
val received = mutableListOf<Event>()
|
val received = mutableListOf<Event>()
|
||||||
|
val referenceId = UUID.randomUUID()
|
||||||
|
|
||||||
object : EventListener() {
|
object : EventListener() {
|
||||||
override fun onEvent(event: Event, history: List<Event>): Event? {
|
override fun onEvent(event: Event, history: List<Event>): Event? {
|
||||||
if (event is DeleteEvent) received += event
|
if (event is DeleteEvent) received += event
|
||||||
@ -191,7 +196,7 @@ class EventDispatcherTest : TestBase() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val deleted = object : DeleteEvent(UUID.randomUUID()) {}
|
val deleted = object : DeleteEvent(UUID.randomUUID()) {}.apply { usingReferenceId(referenceId) }
|
||||||
dispatcher.dispatch(deleted.referenceId, listOf(deleted))
|
dispatcher.dispatch(deleted.referenceId, listOf(deleted))
|
||||||
|
|
||||||
assertTrue(received.contains(deleted))
|
assertTrue(received.contains(deleted))
|
||||||
@ -208,7 +213,7 @@ class EventDispatcherTest : TestBase() {
|
|||||||
fun shouldNotRedeliverEventsThatHaveProducedDerivedEvents() {
|
fun shouldNotRedeliverEventsThatHaveProducedDerivedEvents() {
|
||||||
ProducingListener()
|
ProducingListener()
|
||||||
|
|
||||||
val trigger = TriggerEvent()
|
val trigger = TriggerEvent().newReferenceId()
|
||||||
// Første dispatch: trigger produserer en DerivedEvent
|
// Første dispatch: trigger produserer en DerivedEvent
|
||||||
dispatcher.dispatch(trigger.referenceId, listOf(trigger))
|
dispatcher.dispatch(trigger.referenceId, listOf(trigger))
|
||||||
|
|
||||||
@ -238,8 +243,8 @@ class EventDispatcherTest : TestBase() {
|
|||||||
fun historyShouldExcludeDeletedEvents() {
|
fun historyShouldExcludeDeletedEvents() {
|
||||||
val dispatcher = EventDispatcher(eventStore)
|
val dispatcher = EventDispatcher(eventStore)
|
||||||
|
|
||||||
val original = TriggerEvent()
|
val original = TriggerEvent().newReferenceId()
|
||||||
val deleted = object : DeleteEvent(original.eventId) {}
|
val deleted = object : DeleteEvent(original.eventId) {}.apply { usingReferenceId(original.referenceId) }
|
||||||
|
|
||||||
var receivedHistory: List<Event> = emptyList()
|
var receivedHistory: List<Event> = emptyList()
|
||||||
|
|
||||||
@ -266,9 +271,9 @@ class EventDispatcherTest : TestBase() {
|
|||||||
)
|
)
|
||||||
fun historyShouldKeepNonDeletedEvents() {
|
fun historyShouldKeepNonDeletedEvents() {
|
||||||
val dispatcher = EventDispatcher(eventStore)
|
val dispatcher = EventDispatcher(eventStore)
|
||||||
|
val referenceId = UUID.randomUUID()
|
||||||
val e1 = TriggerEvent()
|
val e1 = TriggerEvent().usingReferenceId(referenceId)
|
||||||
val e2 = OtherEvent()
|
val e2 = OtherEvent().usingReferenceId(referenceId)
|
||||||
val deleted = object : DeleteEvent(e1.eventId) {}
|
val deleted = object : DeleteEvent(e1.eventId) {}
|
||||||
|
|
||||||
var receivedHistory: List<Event> = emptyList()
|
var receivedHistory: List<Event> = emptyList()
|
||||||
@ -298,8 +303,8 @@ class EventDispatcherTest : TestBase() {
|
|||||||
fun deleteEventShouldBeDeliveredButHistoryEmpty() {
|
fun deleteEventShouldBeDeliveredButHistoryEmpty() {
|
||||||
val dispatcher = EventDispatcher(eventStore)
|
val dispatcher = EventDispatcher(eventStore)
|
||||||
|
|
||||||
val original = TriggerEvent()
|
val original = TriggerEvent().newReferenceId()
|
||||||
val deleted = object : DeleteEvent(original.eventId) {}
|
val deleted = object : DeleteEvent(original.eventId) {}.apply { newReferenceId() }
|
||||||
|
|
||||||
var receivedEvent: Event? = null
|
var receivedEvent: Event? = null
|
||||||
var receivedHistory: List<Event> = emptyList()
|
var receivedHistory: List<Event> = emptyList()
|
||||||
|
|||||||
@ -39,7 +39,7 @@ class ZDSTest {
|
|||||||
fun scenario1() {
|
fun scenario1() {
|
||||||
EventTypeRegistry.register(EchoEvent::class.java)
|
EventTypeRegistry.register(EchoEvent::class.java)
|
||||||
|
|
||||||
val echo = EchoEvent("hello")
|
val echo = EchoEvent("hello").newReferenceId()
|
||||||
val persisted = echo.toPersisted(id = 1L)
|
val persisted = echo.toPersisted(id = 1L)
|
||||||
|
|
||||||
val restored = persisted!!.toEvent()
|
val restored = persisted!!.toEvent()
|
||||||
|
|||||||
@ -214,7 +214,7 @@ class EventPollerImplementationTest : TestBase() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val original = EchoEvent("Hello")
|
val original = EchoEvent("Hello").newReferenceId()
|
||||||
eventStore.persist(original)
|
eventStore.persist(original)
|
||||||
|
|
||||||
poller.pollOnce()
|
poller.pollOnce()
|
||||||
|
|||||||
@ -114,7 +114,7 @@ class TaskPollerImplementationTest : TestBase() {
|
|||||||
val listener = EchoListener()
|
val listener = EchoListener()
|
||||||
val poller = object : TaskPollerImplementation(taskStore, reporterFactory) {}
|
val poller = object : TaskPollerImplementation(taskStore, reporterFactory) {}
|
||||||
|
|
||||||
val task = EchoTask("Hello").newReferenceId().derivedOf(object : Event() {})
|
val task = EchoTask("Hello").newReferenceId().derivedOf(object : Event() {}.apply { newReferenceId() })
|
||||||
taskStore.persist(task)
|
taskStore.persist(task)
|
||||||
|
|
||||||
poller.pollOnce()
|
poller.pollOnce()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user