ContactSyncMapperTest.kt
57 lignes · 1979 octets
package fr.ebii.card2vcf.sync import fr.ebii.card2vcf.data.CrmContactEntity import kotlinx.serialization.decodeFromString import org.junit.Assert.assertEquals import org.junit.Assert.assertNull import org.junit.Test class ContactSyncMapperTest { @Test fun mapsLocalFieldsToApiJson() { val entity = CrmContactEntity( id = 1L, fullName = "Marie Dubois", firstName = "Marie", lastName = "Dubois", jobTitle = "Directrice", phones = listOf("+33 1 23 45 67 89"), emails = listOf("marie@acme.fr"), notes = "Rencontrée au salon", entrepriseServerId = "ent-42", statut = "client", etape = "qualifie", tags = listOf("vip", "lyon"), ) val payload = ContactSyncMapper.toCreatePayload(entity) val request = syncJson.decodeFromString<CreateContactRequest>(payload) assertEquals("Marie", request.prenom) assertEquals("Dubois", request.nom) assertEquals("ent-42", request.entrepriseId) assertEquals("Directrice", request.fonction) assertEquals("marie@acme.fr", request.emails.single().valeur) assertEquals("+33 1 23 45 67 89", request.telephones.single().valeur) assertEquals("Rencontrée au salon", request.notes) assertEquals("client", request.statut) assertEquals("qualifie", request.etape) assertEquals(listOf("vip", "lyon"), request.tags) } @Test fun splitsFullNameWhenFirstAndLastMissing() { val entity = CrmContactEntity( fullName = "Jean Paul Sartre", emails = listOf("jp@ex.com"), ) val request = syncJson.decodeFromString<CreateContactRequest>( ContactSyncMapper.toCreatePayload(entity), ) assertEquals("Jean", request.prenom) assertEquals("Paul Sartre", request.nom) assertNull(request.entrepriseId) } }
GitRust