package com.example import com.example.data.engine.ContactImportValidator import com.example.data.meta.MetaCloudApiService import com.example.data.meta.MetaConfig import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull import org.junit.Assert.assertTrue import org.junit.Test class ExampleUnitTest { @Test fun testCsvImportValidationAndConsentEnforcement() { val sampleCsv = """country_code,mobile_number,customer_name,business_name,email,city,state,category,product_interest,tags,whatsapp_opt_in,consent_source,consent_date,customer_notes 91,9823012345,Aarav Patel,Surya Electricals,aarav@suryaelec.com,Pune,Maharashtra,Solar Dealers,5kW Inverter,wholesale,true,Trade Expo,2026-09-10,Valid lead 91,9876543211,Pooja Verma,GreenHome,pooja@greenhome.org,Ahmedabad,Gujarat,Retail Customers,Rooftop,retail,false,Website Form,2026-10-01,Did not consent 91,9823012345,Duplicate Aarav,Surya Electricals,,Pune,Maharashtra,Solar Dealers,Inverter,,true,Trade Expo,2026-09-10,Duplicate number """ val report = ContactImportValidator.parseCsvContent( csvText = sampleCsv, existingPhones = emptySet() ) assertEquals(3, report.totalRowsProcessed) assertEquals(1, report.validCount) assertEquals(1, report.duplicateCount) assertEquals(1, report.nonConsentingCount) // Verify valid contact has normalized E.164 phone val validContact = report.validContacts.first() assertEquals("+919823012345", validContact.e164Phone) assertEquals("OPTED_IN", validContact.optInStatus) assertEquals("Surya Electricals", validContact.businessName) } @Test fun testExistingDuplicateDetection() { val sampleCsv = """country_code,mobile_number,customer_name,whatsapp_opt_in 91,9812345678,Existing Customer,true """ val existingPhones = setOf("+919812345678") val report = ContactImportValidator.parseCsvContent( csvText = sampleCsv, existingPhones = existingPhones ) assertEquals(1, report.totalRowsProcessed) assertEquals(0, report.validCount) assertEquals(1, report.duplicateCount) } @Test fun testMetaCloudApiRetrofitClientConfiguration() { assertEquals("https://graph.facebook.com/v21.0/", MetaConfig.BASE_URL) assertEquals("913349665192073", MetaConfig.PHONE_NUMBER_ID) assertEquals("1378746380406848", MetaConfig.WABA_ID) assertTrue(MetaConfig.ACCESS_TOKEN.startsWith("EAAl6rWdth7YBSvrGsUq")) val apiClient = MetaCloudApiService.create( baseUrl = MetaConfig.BASE_URL, defaultBearerToken = MetaConfig.ACCESS_TOKEN ) assertNotNull(apiClient) } }