Added task id to derived when producing event
This commit is contained in:
parent
751436a789
commit
0c0a2b5e9a
@ -15,8 +15,10 @@ 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
|
||||||
val derivedIds = task.metadata.derivedFromId ?: emptySet()
|
val derivedFromIds: MutableList<UUID> = mutableListOf()
|
||||||
metadata = Metadata().derivedFromEventId(derivedIds)
|
task.metadata.derivedFromId?.let { derivedFromIds.addAll(it) }
|
||||||
|
derivedFromIds.add(task.taskId)
|
||||||
|
metadata = Metadata().derivedFromEventId(derivedFromIds.toSet())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun derivedOf(vararg event: Event) = self<Event>().apply {
|
fun derivedOf(vararg event: Event) = self<Event>().apply {
|
||||||
|
|||||||
@ -22,6 +22,10 @@ abstract class Task {
|
|||||||
referenceId = event.referenceId
|
referenceId = event.referenceId
|
||||||
metadata = Metadata().derivedFromEventId(event.eventId)
|
metadata = Metadata().derivedFromEventId(event.eventId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun usingReferenceId(refId: UUID) = self<Task>().apply {
|
||||||
|
referenceId = refId
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fun <reified T> Task.requireAs(): T {
|
inline fun <reified T> Task.requireAs(): T {
|
||||||
|
|||||||
@ -113,8 +113,9 @@ class TaskPollerImplementationTest : TestBase() {
|
|||||||
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(2)
|
||||||
assertThat(producedEvent.metadata.derivedFromId).contains(task.metadata.derivedFromId!!.first())
|
assertThat(producedEvent.metadata.derivedFromId).contains(task.metadata.derivedFromId!!.first())
|
||||||
|
assertThat(producedEvent.metadata.derivedFromId).contains(task.taskId)
|
||||||
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