package com.complycube.reactnative.config.helper import com.complycube.reactnative.config.helper.* import com.complycube.sdk.common.data.CustomerInfoCompanyField import com.complycube.sdk.common.data.CustomerInfoField import com.complycube.sdk.common.data.CustomerInfoPersonField import com.complycube.sdk.data.remote.model.response.Constraint import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertNull class CustomerInfoFieldMapperTest { private val mapper = CustomerInfoFieldMapper() @Test fun mapsSimpleFields() { assertEquals(CustomerInfoField.Email, mapper.mapStringField("email")) assertEquals(CustomerInfoField.Mobile, mapper.mapStringField("mobile")) assertNull(mapper.mapStringField("unknown")) } @Test fun mapsPersonFieldsWithConstraints() { val out = mapper.mapPersonFields( listOf( "first_name", mapOf("name" to "last_name", "constraint" to mapOf("expression" to "x")) ) ) assertEquals(2, out.size) assertEquals(CustomerInfoPersonField.FIRST_NAME, out[0]) assertEquals( CustomerInfoPersonField.LAST_NAME.copy(constraint = Constraint("x")), out[1] ) } @Test fun mapsCompanyFieldsWithConstraints() { val out = mapper.mapCompanyFields( listOf( "name", mapOf("name" to "website", "constraint" to mapOf("expression" to "x")) ) ) assertEquals(2, out.size) assertEquals(CustomerInfoCompanyField.NAME, out[0]) assertEquals( CustomerInfoCompanyField.WEBSITE.copy(constraint = Constraint("x")), out[1] ) } }