Sourcing ids
This commit is contained in:
parent
b7c9e2827a
commit
fe09a3de19
@ -15,7 +15,8 @@ abstract class Event {
|
||||
|
||||
fun producedFrom(task: Task): Event = self<Event>().apply {
|
||||
referenceId = task.referenceId
|
||||
metadata = Metadata().derivedFromEventId(task.taskId)
|
||||
val derivedIds = task.metadata.derivedFromId ?: emptySet()
|
||||
metadata = Metadata().derivedFromEventId(derivedIds)
|
||||
}
|
||||
|
||||
fun derivedOf(vararg event: Event) = self<Event>().apply {
|
||||
|
||||
@ -10,4 +10,7 @@ class Metadata {
|
||||
fun derivedFromEventId(vararg id: UUID) = apply {
|
||||
derivedFromId = id.toSet()
|
||||
}
|
||||
fun derivedFromEventId(ids: Set<UUID>) = apply {
|
||||
derivedFromId = ids
|
||||
}
|
||||
}
|
||||
|
||||
@ -115,14 +115,14 @@ class AbstractTaskPollerTest : TestBase() {
|
||||
|
||||
val poller = object : AbstractTaskPoller(taskStore, reporterFactory) {}
|
||||
|
||||
val task = EchoTask("Hello").newReferenceId()
|
||||
val task = EchoTask("Hello").newReferenceId().derivedOf(object : Event() {})
|
||||
taskStore.persist(task)
|
||||
poller.pollOnce()
|
||||
advanceUntilIdle()
|
||||
val producedEvent = eventDeferred.await()
|
||||
assertThat(producedEvent).isNotNull
|
||||
assertThat(producedEvent.metadata.derivedFromId).hasSize(1)
|
||||
assertThat(producedEvent.metadata.derivedFromId).contains(task.taskId)
|
||||
assertThat(producedEvent.metadata.derivedFromId).contains(task.metadata.derivedFromId!!.first())
|
||||
assertThat((listener.result as EchoEvent).data).isEqualTo("Hello Potetmos")
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user