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 {
|
fun producedFrom(task: Task): Event = self<Event>().apply {
|
||||||
referenceId = task.referenceId
|
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 {
|
fun derivedOf(vararg event: Event) = self<Event>().apply {
|
||||||
|
|||||||
@ -10,4 +10,7 @@ class Metadata {
|
|||||||
fun derivedFromEventId(vararg id: UUID) = apply {
|
fun derivedFromEventId(vararg id: UUID) = apply {
|
||||||
derivedFromId = id.toSet()
|
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 poller = object : AbstractTaskPoller(taskStore, reporterFactory) {}
|
||||||
|
|
||||||
val task = EchoTask("Hello").newReferenceId()
|
val task = EchoTask("Hello").newReferenceId().derivedOf(object : Event() {})
|
||||||
taskStore.persist(task)
|
taskStore.persist(task)
|
||||||
poller.pollOnce()
|
poller.pollOnce()
|
||||||
advanceUntilIdle()
|
advanceUntilIdle()
|
||||||
val producedEvent = eventDeferred.await()
|
val producedEvent = eventDeferred.await()
|
||||||
assertThat(producedEvent).isNotNull
|
assertThat(producedEvent).isNotNull
|
||||||
assertThat(producedEvent.metadata.derivedFromId).hasSize(1)
|
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")
|
assertThat((listener.result as EchoEvent).data).isEqualTo("Hello Potetmos")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user