From 186c0721513e56ca77b2860a34c7a625ebc1ef0a Mon Sep 17 00:00:00 2001 From: Milen Marinov Date: Thu, 18 Apr 2024 20:47:16 +0300 Subject: [PATCH] [MS-425] Add attendantId and moduleId to tokenizedFields if they are present in the query parameters --- .../downsync/EventDownSyncRequestEvent.kt | 5 +- .../downsync/EventDownSyncRequestEventTest.kt | 87 +++++++++++++++++++ 2 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 infra/events/src/test/java/com/simprints/infra/events/event/domain/models/downsync/EventDownSyncRequestEventTest.kt diff --git a/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/downsync/EventDownSyncRequestEvent.kt b/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/downsync/EventDownSyncRequestEvent.kt index 6526ca543b..f0ad624974 100644 --- a/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/downsync/EventDownSyncRequestEvent.kt +++ b/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/downsync/EventDownSyncRequestEvent.kt @@ -43,7 +43,10 @@ data class EventDownSyncRequestEvent( EventType.EVENT_DOWN_SYNC_REQUEST ) - override fun getTokenizedFields(): Map = emptyMap() + override fun getTokenizedFields(): Map = listOf( + payload.queryParameters.attendantId?.let { TokenKeyType.AttendantId to TokenizableString.Tokenized(it) }, + payload.queryParameters.moduleId?.let { TokenKeyType.ModuleId to TokenizableString.Tokenized(it) } + ).mapNotNull { it }.toMap() override fun setTokenizedFields(map: Map): Event = this @Keep diff --git a/infra/events/src/test/java/com/simprints/infra/events/event/domain/models/downsync/EventDownSyncRequestEventTest.kt b/infra/events/src/test/java/com/simprints/infra/events/event/domain/models/downsync/EventDownSyncRequestEventTest.kt new file mode 100644 index 0000000000..70de2e0322 --- /dev/null +++ b/infra/events/src/test/java/com/simprints/infra/events/event/domain/models/downsync/EventDownSyncRequestEventTest.kt @@ -0,0 +1,87 @@ +package com.simprints.infra.events.event.domain.models.downsync + +import com.simprints.core.domain.tokenization.TokenizableString +import com.simprints.core.tools.time.Timestamp +import com.simprints.infra.config.store.models.TokenKeyType +import com.simprints.infra.events.event.domain.models.EventType +import com.simprints.infra.events.event.domain.models.downsync.EventDownSyncRequestEvent.QueryParameters +import io.mockk.mockk +import org.junit.Assert.assertEquals +import org.junit.Test + +class EventDownSyncRequestEventTest { + + @Test + fun `getTokenizedFields returns empty map when attendantId and moduleId are null`() { + val event = getEventDownSyncRequestEvent( + attendantId = null, + moduleId = null + ) + + val result = event.getTokenizedFields() + + assertEquals(emptyMap(), result) + } + + @Test + fun `getTokenizedFields returns map with AttendantId when only attendantId is not null`() { + val event = getEventDownSyncRequestEvent( + attendantId = "attendantId", + moduleId = null + ) + + val result = event.getTokenizedFields() + + assertEquals(mapOf(TokenKeyType.AttendantId to TokenizableString.Tokenized("attendantId")), result) + } + + @Test + fun `getTokenizedFields returns map with ModuleId when only moduleId is not null`() { + val event = getEventDownSyncRequestEvent( + attendantId = null, + moduleId = "moduleId" + ) + + val result = event.getTokenizedFields() + + assertEquals(mapOf(TokenKeyType.ModuleId to TokenizableString.Tokenized("moduleId")), result) + } + + @Test + fun `getTokenizedFields returns map with AttendantId and ModuleId when both are not null`() { + val event = getEventDownSyncRequestEvent( + attendantId = "attendantId", + moduleId = "moduleId" + ) + + val result = event.getTokenizedFields() + + assertEquals(mapOf( + TokenKeyType.AttendantId to TokenizableString.Tokenized("attendantId"), + TokenKeyType.ModuleId to TokenizableString.Tokenized("moduleId") + ), result) + } + + private fun getEventDownSyncRequestEvent( + attendantId: String? = null, + moduleId: String? = null + ): EventDownSyncRequestEvent { + return EventDownSyncRequestEvent( + payload = EventDownSyncRequestEvent.EventDownSyncRequestPayload( + createdAt = mockk(), + endedAt = mockk(), + requestId = "requestId", + queryParameters = QueryParameters( + moduleId = moduleId, + attendantId = attendantId + ), + responseStatus = 200, + errorType = "errorType", + msToFirstResponseByte = 1000, + eventsRead = 1, + eventVersion = 1 + ), + type = EventType.EVENT_DOWN_SYNC_REQUEST + ) + } +} \ No newline at end of file