diff --git a/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/OneToManyMatchEvent.kt b/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/OneToManyMatchEvent.kt index 7098fd257d..b9649e20e4 100644 --- a/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/OneToManyMatchEvent.kt +++ b/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/OneToManyMatchEvent.kt @@ -53,7 +53,6 @@ data class OneToManyMatchEvent( override fun setTokenizedFields(map: Map) = this - // FIX 2: Apply Custom Serializer @Serializable(with = OneToManyMatchPayloadSerializer::class) sealed class OneToManyMatchPayload : EventPayload() { abstract override val type: EventType diff --git a/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/OneToOneMatchEvent.kt b/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/OneToOneMatchEvent.kt index 3c68852482..e86ba913dd 100644 --- a/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/OneToOneMatchEvent.kt +++ b/infra/events/src/main/java/com/simprints/infra/events/event/domain/models/OneToOneMatchEvent.kt @@ -52,13 +52,12 @@ data class OneToOneMatchEvent( override fun getTokenizableFields(): Map = emptyMap() - override fun setTokenizedFields(map: Map) = this // No tokenized fields + override fun setTokenizedFields(map: Map) = this @Keep - @Serializable(with = OneToOneMatchPayloadSerializer::class) // Now this works! + @Serializable(with = OneToOneMatchPayloadSerializer::class) sealed class OneToOneMatchPayload : EventPayload() { - abstract override val type: EventType // This caused the conflict, now it's just a property - + abstract override val type: EventType abstract val candidateId: String abstract val matcher: String abstract val result: MatchEntry? diff --git a/infra/events/src/test/java/com/simprints/infra/events/event/cosync/CoSyncEnrolmentRecordCreationEventDeserializerTest.kt b/infra/events/src/test/java/com/simprints/infra/events/event/cosync/CoSyncEnrolmentRecordCreationEventDeserializerTest.kt index c03a57d8df..8dc4273289 100644 --- a/infra/events/src/test/java/com/simprints/infra/events/event/cosync/CoSyncEnrolmentRecordCreationEventDeserializerTest.kt +++ b/infra/events/src/test/java/com/simprints/infra/events/event/cosync/CoSyncEnrolmentRecordCreationEventDeserializerTest.kt @@ -8,8 +8,6 @@ import org.junit.Test import kotlin.test.assertEquals class CoSyncEnrolmentRecordCreationEventDeserializerTest { - // Configure Json to be lenient if necessary, though strict is better for validation. - // 'ignoreUnknownKeys' helps if the JSON contains fields not in the model. private val json = JsonHelper.json @Test @@ -79,8 +77,10 @@ class CoSyncEnrolmentRecordCreationEventDeserializerTest { // Assuming the fallback logic wraps the JSON string: assert(result.payload.moduleId is TokenizableString.Raw) assert(result.payload.attendantId is TokenizableString.Raw) + assertEquals(TokenizableString.Raw(ENCRYPTED_MODULE), result.payload.moduleId) + assertEquals(TokenizableString.Raw(UNENCRYPTED_ATTENDANT), result.payload.attendantId) - assertEquals(emptyList(), result.payload.biometricReferences) + assertEquals(emptyList(), result.payload.biometricReferences) } companion object { @@ -92,7 +92,6 @@ class CoSyncEnrolmentRecordCreationEventDeserializerTest { const val ENCRYPTED_MODULE = "encrypted-module-1" const val UNENCRYPTED_ATTENDANT = "unencrypted-attendant-1" - // The template remains the same, assuming it represents the actual contract const val JSON_TEMPLATE = """ { "id": "$EVENT_ID", @@ -110,9 +109,6 @@ class CoSyncEnrolmentRecordCreationEventDeserializerTest { const val PLAIN_ATTENDANT = """ "attendantId": "$ATTENDANT_ID"""" - // Note: Verify if "className" is the correct discriminator for your KSerializer config. - // Standard KSerialization uses "type". If your data uses "className", - // TokenizableString must be annotated with @JsonClassDiscriminator("className") const val TOKENIZED_MODULE = """ "moduleId": { "className": "TokenizableString.Tokenized",