From 0c0a2b5e9a8d816a525e953caf020d607eac2945 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Mon, 15 Dec 2025 23:39:38 +0100 Subject: [PATCH] Added task id to derived when producing event --- src/main/kotlin/no/iktdev/eventi/models/Event.kt | 6 ++++-- src/main/kotlin/no/iktdev/eventi/models/Task.kt | 4 ++++ .../no/iktdev/eventi/tasks/TaskPollerImplementationTest.kt | 3 ++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/no/iktdev/eventi/models/Event.kt b/src/main/kotlin/no/iktdev/eventi/models/Event.kt index 11d76c1..3d52dcf 100644 --- a/src/main/kotlin/no/iktdev/eventi/models/Event.kt +++ b/src/main/kotlin/no/iktdev/eventi/models/Event.kt @@ -15,8 +15,10 @@ abstract class Event { fun producedFrom(task: Task): Event = self().apply { referenceId = task.referenceId - val derivedIds = task.metadata.derivedFromId ?: emptySet() - metadata = Metadata().derivedFromEventId(derivedIds) + val derivedFromIds: MutableList = mutableListOf() + task.metadata.derivedFromId?.let { derivedFromIds.addAll(it) } + derivedFromIds.add(task.taskId) + metadata = Metadata().derivedFromEventId(derivedFromIds.toSet()) } fun derivedOf(vararg event: Event) = self().apply { diff --git a/src/main/kotlin/no/iktdev/eventi/models/Task.kt b/src/main/kotlin/no/iktdev/eventi/models/Task.kt index 8370407..5578d09 100644 --- a/src/main/kotlin/no/iktdev/eventi/models/Task.kt +++ b/src/main/kotlin/no/iktdev/eventi/models/Task.kt @@ -22,6 +22,10 @@ abstract class Task { referenceId = event.referenceId metadata = Metadata().derivedFromEventId(event.eventId) } + + fun usingReferenceId(refId: UUID) = self().apply { + referenceId = refId + } } inline fun Task.requireAs(): T { diff --git a/src/test/kotlin/no/iktdev/eventi/tasks/TaskPollerImplementationTest.kt b/src/test/kotlin/no/iktdev/eventi/tasks/TaskPollerImplementationTest.kt index 488541e..d4e7036 100644 --- a/src/test/kotlin/no/iktdev/eventi/tasks/TaskPollerImplementationTest.kt +++ b/src/test/kotlin/no/iktdev/eventi/tasks/TaskPollerImplementationTest.kt @@ -113,8 +113,9 @@ class TaskPollerImplementationTest : TestBase() { advanceUntilIdle() val producedEvent = eventDeferred.await() 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.taskId) assertThat((listener.result as EchoEvent).data).isEqualTo("Hello Potetmos") }