From fe09a3de19f10cb3cc009190538d124c3972b095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Tue, 14 Oct 2025 01:58:25 +0200 Subject: [PATCH] Sourcing ids --- src/main/kotlin/no/iktdev/eventi/models/Event.kt | 3 ++- src/main/kotlin/no/iktdev/eventi/models/Metadata.kt | 3 +++ .../kotlin/no/iktdev/eventi/tasks/AbstractTaskPollerTest.kt | 4 ++-- 3 files changed, 7 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 e605491..11d76c1 100644 --- a/src/main/kotlin/no/iktdev/eventi/models/Event.kt +++ b/src/main/kotlin/no/iktdev/eventi/models/Event.kt @@ -15,7 +15,8 @@ abstract class Event { fun producedFrom(task: Task): Event = self().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().apply { diff --git a/src/main/kotlin/no/iktdev/eventi/models/Metadata.kt b/src/main/kotlin/no/iktdev/eventi/models/Metadata.kt index 5c9e8d4..79e762c 100644 --- a/src/main/kotlin/no/iktdev/eventi/models/Metadata.kt +++ b/src/main/kotlin/no/iktdev/eventi/models/Metadata.kt @@ -10,4 +10,7 @@ class Metadata { fun derivedFromEventId(vararg id: UUID) = apply { derivedFromId = id.toSet() } + fun derivedFromEventId(ids: Set) = apply { + derivedFromId = ids + } } diff --git a/src/test/kotlin/no/iktdev/eventi/tasks/AbstractTaskPollerTest.kt b/src/test/kotlin/no/iktdev/eventi/tasks/AbstractTaskPollerTest.kt index ddfaf73..3456d03 100644 --- a/src/test/kotlin/no/iktdev/eventi/tasks/AbstractTaskPollerTest.kt +++ b/src/test/kotlin/no/iktdev/eventi/tasks/AbstractTaskPollerTest.kt @@ -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") }