921 lines
41 KiB
OpenEdge ABL
921 lines
41 KiB
OpenEdge ABL
@isTest
|
||
public with sharing class FetchAccounts_Test {
|
||
@isTest
|
||
public static void test1ForFetchAccounts(){
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = true;
|
||
con.HIC_ShopifySync__Order__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = false;
|
||
con.HIC_ShopifySync__Person_Account__c = true;
|
||
con.HIC_ShopifySync__Default_Account__c = false;
|
||
Con.HIC_ShopifySync__Number_of_pages_for_Account__c = 2;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
List<HIC_ShopifySync__HIC_Field_Mapping__c> fmListToCreate = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
||
HIC_ShopifySync__HIC_Field_Mapping__c fieldMapping = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
||
fieldMapping.Name = 'Order'+'-'+'Pricebook2Id';
|
||
fieldMapping.HIC_ShopifySync__Object_Name__c = 'Account';
|
||
fieldMapping.HIC_ShopifySync__SF_Field__c = 'Pricebook2Id';
|
||
fieldMapping.HIC_ShopifySync__Shopify_Fields__c = '01s6F00000GftN3QAJ';
|
||
fieldMapping.HIC_ShopifySync__Nested__c = 'default';
|
||
fieldMapping.HIC_ShopifySync__Default_Value__c = True;
|
||
fieldMapping.HIC_ShopifySync__IsSFID__c = True;
|
||
fieldMapping.HIC_ShopifySync__External_ID__c = 'Order'+'-'+'Pricebook2Id';
|
||
fieldMapping.HIC_ShopifySync__Store__c = '123';
|
||
fmListToCreate.add(fieldMapping);
|
||
|
||
HIC_ShopifySync__HIC_Field_Mapping__c fieldMapping2 = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
||
fieldMapping2.Name = 'Contact'+'-'+'Test';
|
||
fieldMapping2.HIC_ShopifySync__Object_Name__c = 'Contact';
|
||
fieldMapping2.HIC_ShopifySync__SF_Field__c = 'Email';
|
||
fieldMapping2.HIC_ShopifySync__Shopify_Fields__c = 'email';
|
||
fieldMapping2.HIC_ShopifySync__Nested__c = '';
|
||
fieldMapping2.HIC_ShopifySync__Default_Value__c = false;
|
||
fieldMapping2.HIC_ShopifySync__IsSFID__c = false;
|
||
fieldMapping2.HIC_ShopifySync__External_ID__c = 'Contact'+'-'+'Test';
|
||
fieldMapping.HIC_ShopifySync__Store__c = '123';
|
||
fmListToCreate.add(fieldMapping2);
|
||
insert fmListToCreate;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('' , false, '123');
|
||
Database.executeBatch(obj);
|
||
Test.stopTest();
|
||
system.assert(con.Opportunity__c == true);
|
||
}
|
||
|
||
@isTest
|
||
public static void testFetchAccountsWithAccountContact() {
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = false;
|
||
con.HIC_ShopifySync__Order__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = true;
|
||
con.HIC_ShopifySync__Person_Account__c = false;
|
||
con.HIC_ShopifySync__Default_Account__c = false;
|
||
Con.HIC_ShopifySync__Number_of_pages_for_Account__c = 2;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
List<HIC_ShopifySync__HIC_Field_Mapping__c> fmListToCreate = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
||
HIC_ShopifySync__HIC_Field_Mapping__c fieldMapping = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
||
fieldMapping.Name = 'Order'+'-'+'Pricebook2Id';
|
||
fieldMapping.HIC_ShopifySync__Object_Name__c = 'Order';
|
||
fieldMapping.HIC_ShopifySync__SF_Field__c = 'Pricebook2Id';
|
||
fieldMapping.HIC_ShopifySync__Shopify_Fields__c = '01s6F00000GftN3QAJ';
|
||
fieldMapping.HIC_ShopifySync__Nested__c = 'default';
|
||
fieldMapping.HIC_ShopifySync__Default_Value__c = True;
|
||
fieldMapping.HIC_ShopifySync__IsSFID__c = True;
|
||
fieldMapping.HIC_ShopifySync__External_ID__c = 'Order'+'-'+'Pricebook2Id';
|
||
fieldMapping.HIC_ShopifySync__Store__c = '123';
|
||
fmListToCreate.add(fieldMapping);
|
||
insert fmListToCreate;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('' , false, '123');
|
||
Database.executeBatch(obj);
|
||
Test.stopTest();
|
||
system.assert(con.Opportunity__c == false);
|
||
}
|
||
|
||
@isTest
|
||
public static void testFetchAccounts() {
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = false;
|
||
con.HIC_ShopifySync__Order__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = true;
|
||
con.HIC_ShopifySync__Person_Account__c = true;
|
||
con.HIC_ShopifySync__Default_Account__c = false;
|
||
Con.HIC_ShopifySync__Number_of_pages_for_Account__c = 2;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
List<HIC_ShopifySync__HIC_Field_Mapping__c> fmListToCreate = new List<HIC_ShopifySync__HIC_Field_Mapping__c>();
|
||
HIC_ShopifySync__HIC_Field_Mapping__c fieldMapping = new HIC_ShopifySync__HIC_Field_Mapping__c();
|
||
fieldMapping.Name = 'Order'+'-'+'Pricebook2Id';
|
||
fieldMapping.HIC_ShopifySync__Object_Name__c = 'Order';
|
||
fieldMapping.HIC_ShopifySync__SF_Field__c = 'Pricebook2Id';
|
||
fieldMapping.HIC_ShopifySync__Shopify_Fields__c = '01s6F00000GftN3QAJ';
|
||
fieldMapping.HIC_ShopifySync__Nested__c = 'default';
|
||
fieldMapping.HIC_ShopifySync__Default_Value__c = True;
|
||
fieldMapping.HIC_ShopifySync__IsSFID__c = True;
|
||
fieldMapping.HIC_ShopifySync__External_ID__c = 'Order'+'-'+'Pricebook2Id';
|
||
fieldMapping.HIC_ShopifySync__Store__c = '123';
|
||
fmListToCreate.add(fieldMapping);
|
||
insert fmListToCreate;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('' , false, '123');
|
||
Database.executeBatch(obj);
|
||
Test.stopTest();
|
||
system.assert(con.Opportunity__c == false);
|
||
}
|
||
|
||
@isTest
|
||
public static void testFetchAccounts1() {
|
||
Account ac = new Account();
|
||
ac.name = 'Test';
|
||
ac.HIC_ShopifySync__Shopify_Id__c = '952507760711';
|
||
insert ac;
|
||
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = false;
|
||
con.HIC_ShopifySync__Order__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = true;
|
||
con.HIC_ShopifySync__Person_Account__c = false;
|
||
con.HIC_ShopifySync__Default_Account__c = true;
|
||
Con.HIC_ShopifySync__Number_of_pages_for_Account__c = 1;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('' , false, '123');
|
||
Database.executeBatch(obj, 1);
|
||
Test.stopTest();
|
||
system.assert(con.HIC_ShopifySync__Opportunity__c == false);
|
||
}
|
||
|
||
@isTest
|
||
public static void testFetchAccounts2() {
|
||
Account ac = new Account();
|
||
ac.name = 'Test';
|
||
ac.HIC_ShopifySync__Shopify_Id__c = '952507760711';
|
||
insert ac;
|
||
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = false;
|
||
con.HIC_ShopifySync__Order__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = true;
|
||
con.HIC_ShopifySync__Person_Account__c = false;
|
||
con.HIC_ShopifySync__Default_Account__c = true;
|
||
Con.HIC_ShopifySync__Number_of_pages_for_Account__c = 1;
|
||
Con.HIC_ShopifySync__Inventory_Location__c = true;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('' , false, '123');
|
||
Database.executeBatch(obj,1);
|
||
Test.stopTest();
|
||
system.assert(con.HIC_ShopifySync__Opportunity__c == false);
|
||
}
|
||
|
||
@isTest
|
||
public static void testFetchAccounts4() {
|
||
Account ac = new Account();
|
||
ac.name = 'Test';
|
||
ac.HIC_ShopifySync__Shopify_Id__c = '952507760711';
|
||
insert ac;
|
||
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = false;
|
||
con.HIC_ShopifySync__Order__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = true;
|
||
con.HIC_ShopifySync__Person_Account__c = false;
|
||
con.HIC_ShopifySync__Default_Account__c = true;
|
||
Con.HIC_ShopifySync__Number_of_pages_for_Account__c = 1;
|
||
con.HIC_ShopifySync__Collection__c = true;
|
||
con.HIC_ShopifySync__Inventory_Location__c = true;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('' , false, '123');
|
||
Database.executeBatch(obj,1);
|
||
Test.stopTest();
|
||
system.assert(con.HIC_ShopifySync__Opportunity__c == false);
|
||
}
|
||
|
||
@isTest
|
||
static void testCreateLead() {
|
||
HIC_ShopifySync__HIC_Configuration__c config = new HIC_ShopifySync__HIC_Configuration__c(
|
||
HIC_ShopifySync__Store__c = 'TestStore',
|
||
HIC_ShopifySync__Enable_Lead__c = true
|
||
);
|
||
insert config;
|
||
|
||
HIC_ShopifySync__HIC_Field_Mapping__c fieldMapping = new HIC_ShopifySync__HIC_Field_Mapping__c(
|
||
HIC_ShopifySync__Object_Name__c = 'Lead',
|
||
HIC_ShopifySync__Store__c = 'TestStore',
|
||
HIC_ShopifySync__SF_Field__c = 'Company',
|
||
HIC_ShopifySync__Shopify_Fields__c = 'default_address.company'
|
||
);
|
||
insert fieldMapping;
|
||
|
||
String customerResponse = '{"orders_count":0,"default_address":{"first_name":"John","last_name":"Doe","company":"TestCompany"},"first_name":"John","last_name":"Doe"}';
|
||
String store = 'TestStore';
|
||
|
||
Test.startTest();
|
||
FetchAccounts.createLead(customerResponse, store);
|
||
Test.stopTest();
|
||
}
|
||
|
||
@isTest
|
||
static void testCreateLead2() {
|
||
HIC_ShopifySync__HIC_Configuration__c config = new HIC_ShopifySync__HIC_Configuration__c(
|
||
HIC_ShopifySync__Store__c = 'TestStore',
|
||
HIC_ShopifySync__Enable_Lead__c = true
|
||
);
|
||
insert config;
|
||
|
||
HIC_ShopifySync__HIC_Field_Mapping__c fieldMapping = new HIC_ShopifySync__HIC_Field_Mapping__c(
|
||
HIC_ShopifySync__Object_Name__c = 'Lead',
|
||
HIC_ShopifySync__Store__c = 'TestStore',
|
||
HIC_ShopifySync__SF_Field__c = 'Company',
|
||
HIC_ShopifySync__Shopify_Fields__c = 'default_address.company'
|
||
);
|
||
insert fieldMapping;
|
||
|
||
String customerResponse = '{"orders_count":0,"first_name":"John","last_name":"Doe"}';
|
||
String store = 'TestStore';
|
||
|
||
Test.startTest();
|
||
FetchAccounts.createLead(customerResponse, store);
|
||
Test.stopTest();
|
||
}
|
||
|
||
@isTest
|
||
public static void testFetchAccounts5() {
|
||
Account ac = new Account();
|
||
ac.name = 'Test';
|
||
ac.HIC_ShopifySync__Shopify_Id__c = '952507760711';
|
||
insert ac;
|
||
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = false;
|
||
con.HIC_ShopifySync__Order__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = true;
|
||
con.HIC_ShopifySync__Person_Account__c = false;
|
||
con.HIC_ShopifySync__Default_Account__c = true;
|
||
Con.HIC_ShopifySync__Number_of_pages_for_Account__c = 1;
|
||
con.HIC_ShopifySync__Collection__c = false;
|
||
con.HIC_ShopifySync__Inventory_Location__c = false;
|
||
con.HIC_ShopifySync__Enable_Draft_Order__c = true;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('' , false, '123');
|
||
Database.executeBatch(obj,1);
|
||
FetchAccounts obj1 = new FetchAccounts('' , false, 'Store',' ',' ');
|
||
Database.executeBatch(obj,1);
|
||
FetchAccounts obj2 = new FetchAccounts('' , true, 'store');
|
||
Database.executeBatch(obj,1);
|
||
Test.stopTest();
|
||
system.assert(con.HIC_ShopifySync__Opportunity__c == false);
|
||
}
|
||
|
||
@isTest
|
||
public static void deleteJob(){
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = false;
|
||
con.HIC_ShopifySync__Order__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = true;
|
||
con.HIC_ShopifySync__Person_Account__c = true;
|
||
con.HIC_ShopifySync__Default_Account__c = false;
|
||
Con.HIC_ShopifySync__Number_of_pages_for_Account__c = 2;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
FetchAccounts_Schedule reminder = new FetchAccounts_Schedule();
|
||
reminder.execute(null);
|
||
String sch = '20 30 8 10 2 ?';
|
||
String jobID = System.schedule('Fetch Account', sch, reminder);
|
||
CronTrigger ct = [SELECT Id, CronExpression, TimesTriggered, NextFireTime FROM CronTrigger WHERE id = :jobId limit 1];
|
||
DeleteScheduledJobs.deleteJob('Fetch Account');
|
||
DeleteScheduledJobs.deleteJob('');
|
||
System.assertEquals(sch, ct.CronExpression);
|
||
System.assertEquals(0, ct.TimesTriggered);
|
||
}
|
||
|
||
// ─── NEW TESTS BELOW ────────────────────────────────────────────────────────
|
||
|
||
/**
|
||
* Tests Execute with Enable_Lead__c = true and orders_count = 0 (create Lead path)
|
||
* No email match → createLead is called
|
||
*/
|
||
@isTest
|
||
static void testExecuteEnableLeadCreateLeadPath() {
|
||
HIC_ShopifySync__HIC_Configuration__c cfg = new HIC_ShopifySync__HIC_Configuration__c(
|
||
Name = 'Default',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__Enable_Lead__c = true,
|
||
HIC_ShopifySync__Upsert_Customer_basis_on_Email__c = false,
|
||
HIC_ShopifySync__Account_Contact__c = false,
|
||
HIC_ShopifySync__Person_Account__c = false,
|
||
HIC_ShopifySync__Default_Account__c = false,
|
||
HIC_ShopifySync__Opportunity__c = false,
|
||
HIC_ShopifySync__Order__c = false,
|
||
HIC_ShopifySync__Order_Line_Item__c = false,
|
||
HIC_ShopifySync__Opportunity_Line_Item__c = false,
|
||
HIC_ShopifySync__Collection__c = false,
|
||
HIC_ShopifySync__Inventory_Location__c = false,
|
||
HIC_ShopifySync__Draft_Order_Sync__c = false
|
||
);
|
||
insert cfg;
|
||
|
||
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(
|
||
HIC_ShopifySync__Object_Name__c = 'Lead',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__SF_Field__c = 'Company',
|
||
HIC_ShopifySync__Shopify_Fields__c = 'default_address.company',
|
||
HIC_ShopifySync__Default_Value__c = false,
|
||
HIC_ShopifySync__IsSFID__c = false
|
||
);
|
||
insert fm;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('', true, '123');
|
||
Database.executeBatch(obj, 1);
|
||
Test.stopTest();
|
||
|
||
system.assertNotEquals(null, obj);
|
||
}
|
||
|
||
/**
|
||
* Tests Execute with Enable_Lead__c = true, Upsert_Customer_basis_on_Email__c = true,
|
||
* and a Contact already exists for the customer email → createLead = false (Account path)
|
||
*/
|
||
@isTest
|
||
static void testExecuteEnableLeadEmailMatchContact() {
|
||
Account ac = new Account(Name = 'Existing Account');
|
||
insert ac;
|
||
|
||
// Contact with same email as the test customer JSON (uv@gmail.com is not in our
|
||
// test JSON – the test JSON customer email is blank, so use a fresh email)
|
||
Contact existingContact = new Contact(
|
||
LastName = 'Test',
|
||
AccountId = ac.Id,
|
||
Email = 'uv@gmail.com'
|
||
);
|
||
insert existingContact;
|
||
|
||
HIC_ShopifySync__HIC_Configuration__c cfg = new HIC_ShopifySync__HIC_Configuration__c(
|
||
Name = 'Default',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__Enable_Lead__c = true,
|
||
HIC_ShopifySync__Upsert_Customer_basis_on_Email__c = true,
|
||
HIC_ShopifySync__Account_Contact__c = true,
|
||
HIC_ShopifySync__Person_Account__c = false,
|
||
HIC_ShopifySync__Default_Account__c = false,
|
||
HIC_ShopifySync__Opportunity__c = false,
|
||
HIC_ShopifySync__Order__c = false,
|
||
HIC_ShopifySync__Order_Line_Item__c = false,
|
||
HIC_ShopifySync__Opportunity_Line_Item__c = false,
|
||
HIC_ShopifySync__Collection__c = false,
|
||
HIC_ShopifySync__Inventory_Location__c = false,
|
||
HIC_ShopifySync__Draft_Order_Sync__c = false
|
||
);
|
||
insert cfg;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('', true, '123');
|
||
Database.executeBatch(obj, 1);
|
||
Test.stopTest();
|
||
|
||
system.assertNotEquals(null, obj);
|
||
}
|
||
|
||
/**
|
||
* Tests Execute with Enable_Lead__c = true, Upsert_Customer_basis_on_Email__c = true,
|
||
* and NO Contact exists → createLead = true path
|
||
*/
|
||
@isTest
|
||
static void testExecuteEnableLeadEmailNoContactMatch() {
|
||
HIC_ShopifySync__HIC_Configuration__c cfg = new HIC_ShopifySync__HIC_Configuration__c(
|
||
Name = 'Default',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__Enable_Lead__c = true,
|
||
HIC_ShopifySync__Upsert_Customer_basis_on_Email__c = true,
|
||
HIC_ShopifySync__Account_Contact__c = false,
|
||
HIC_ShopifySync__Person_Account__c = false,
|
||
HIC_ShopifySync__Default_Account__c = false,
|
||
HIC_ShopifySync__Opportunity__c = false,
|
||
HIC_ShopifySync__Order__c = false,
|
||
HIC_ShopifySync__Order_Line_Item__c = false,
|
||
HIC_ShopifySync__Opportunity_Line_Item__c = false,
|
||
HIC_ShopifySync__Collection__c = false,
|
||
HIC_ShopifySync__Inventory_Location__c = false,
|
||
HIC_ShopifySync__Draft_Order_Sync__c = false
|
||
);
|
||
insert cfg;
|
||
|
||
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(
|
||
HIC_ShopifySync__Object_Name__c = 'Lead',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__SF_Field__c = 'Company',
|
||
HIC_ShopifySync__Shopify_Fields__c = 'default_address.company',
|
||
HIC_ShopifySync__Default_Value__c = false,
|
||
HIC_ShopifySync__IsSFID__c = false
|
||
);
|
||
insert fm;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('', true, '123');
|
||
Database.executeBatch(obj, 1);
|
||
Test.stopTest();
|
||
|
||
system.assertNotEquals(null, obj);
|
||
}
|
||
|
||
/**
|
||
* Tests the lead conversion path (orders_count >= 1 and open Lead exists for email)
|
||
* Covers convertLeadAndStampIds with Person_Account__c = false (Business prefix)
|
||
*/
|
||
@isTest
|
||
static void testExecuteLeadConversionBusinessPath() {
|
||
// Create Account and Contact to attach the converted lead to
|
||
Account ac = new Account(Name = 'Business testdomain');
|
||
insert ac;
|
||
|
||
// Create an open Lead with a Shopify ID that will be matched
|
||
Lead openLead = new Lead(
|
||
FirstName = 'firstname1',
|
||
LastName = 'lastname1',
|
||
Company = 'Test Company',
|
||
Email = 'uv@gmail.com',
|
||
HIC_ShopifySync__Shopify_ID__c = '926016995392',
|
||
Status = 'Open - Not Contacted'
|
||
);
|
||
insert openLead;
|
||
|
||
HIC_ShopifySync__HIC_Configuration__c cfg = new HIC_ShopifySync__HIC_Configuration__c(
|
||
Name = 'Default',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__Enable_Lead__c = true,
|
||
HIC_ShopifySync__Upsert_Customer_basis_on_Email__c = true,
|
||
HIC_ShopifySync__Account_Contact__c = true,
|
||
HIC_ShopifySync__Person_Account__c = false,
|
||
HIC_ShopifySync__Default_Account__c = false,
|
||
HIC_ShopifySync__Opportunity__c = false,
|
||
HIC_ShopifySync__Order__c = false,
|
||
HIC_ShopifySync__Order_Line_Item__c = false,
|
||
HIC_ShopifySync__Opportunity_Line_Item__c = false,
|
||
HIC_ShopifySync__Collection__c = false,
|
||
HIC_ShopifySync__Inventory_Location__c = false,
|
||
HIC_ShopifySync__Draft_Order_Sync__c = false
|
||
);
|
||
insert cfg;
|
||
|
||
Test.startTest();
|
||
// The mock JSON in start() has orders_count=5 and email=uv@gmail.com
|
||
// which will match the Lead we inserted above
|
||
FetchAccounts obj = new FetchAccounts('', true, '123');
|
||
Database.executeBatch(obj, 1);
|
||
Test.stopTest();
|
||
|
||
system.assertNotEquals(null, obj);
|
||
}
|
||
|
||
/**
|
||
* Tests convertLeadAndStampIds with existing Account and Contact by Shopify ID
|
||
* so that setAccountId and setContactId are called on LeadConvert
|
||
*/
|
||
@isTest
|
||
static void testLeadConversionWithExistingAccountAndContact() {
|
||
// Pre-create Account with Shopify ID matching prefix pattern
|
||
Account existingAcc = new Account(
|
||
Name = 'Existing Business',
|
||
HIC_ShopifySync__Shopify_ID__c = 'Business 926016995392'
|
||
);
|
||
insert existingAcc;
|
||
|
||
// Pre-create Contact with same Shopify ID
|
||
Contact existingCon = new Contact(
|
||
LastName = 'ExistingContact',
|
||
AccountId = existingAcc.Id,
|
||
HIC_ShopifySync__Shopify_ID__c = 'Business 926016995392'
|
||
);
|
||
insert existingCon;
|
||
|
||
// Open Lead with matching email
|
||
Lead openLead = new Lead(
|
||
FirstName = 'firstname1',
|
||
LastName = 'lastname1',
|
||
Company = 'Test Company',
|
||
Email = 'uv@gmail.com',
|
||
HIC_ShopifySync__Shopify_ID__c = '926016995392',
|
||
Status = 'Open - Not Contacted'
|
||
);
|
||
insert openLead;
|
||
|
||
HIC_ShopifySync__HIC_Configuration__c cfg = new HIC_ShopifySync__HIC_Configuration__c(
|
||
Name = 'Default',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__Enable_Lead__c = true,
|
||
HIC_ShopifySync__Upsert_Customer_basis_on_Email__c = true,
|
||
HIC_ShopifySync__Account_Contact__c = true,
|
||
HIC_ShopifySync__Person_Account__c = false,
|
||
HIC_ShopifySync__Default_Account__c = false,
|
||
HIC_ShopifySync__Opportunity__c = false,
|
||
HIC_ShopifySync__Order__c = false,
|
||
HIC_ShopifySync__Order_Line_Item__c = false,
|
||
HIC_ShopifySync__Opportunity_Line_Item__c = false,
|
||
HIC_ShopifySync__Collection__c = false,
|
||
HIC_ShopifySync__Inventory_Location__c = false,
|
||
HIC_ShopifySync__Draft_Order_Sync__c = false
|
||
);
|
||
insert cfg;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('', true, '123');
|
||
Database.executeBatch(obj, 1);
|
||
Test.stopTest();
|
||
|
||
system.assertNotEquals(null, obj);
|
||
}
|
||
|
||
/**
|
||
* Tests convertLeadAndStampIds B2B path (Customer_Email_Domain__c = true)
|
||
* Covers domain account lookup, existing contact lookup, and LeadConvert
|
||
*/
|
||
@isTest
|
||
static void testLeadConversionB2BPath() {
|
||
// Pre-create domain account ('gmail' extracted from uv@gmail.com)
|
||
Account domainAcc = new Account(Name = 'gmail');
|
||
insert domainAcc;
|
||
|
||
// Pre-create Contact with B2B Shopify ID
|
||
Contact existingCon = new Contact(
|
||
LastName = 'B2BContact',
|
||
AccountId = domainAcc.Id,
|
||
HIC_ShopifySync__Shopify_Id__c = 'Business 926016995392'
|
||
);
|
||
insert existingCon;
|
||
|
||
// Open Lead with matching email
|
||
Lead openLead = new Lead(
|
||
FirstName = 'firstname1',
|
||
LastName = 'lastname1',
|
||
Company = 'Test Company',
|
||
Email = 'uv@gmail.com',
|
||
HIC_ShopifySync__Shopify_ID__c = '926016995392',
|
||
Status = 'Open - Not Contacted'
|
||
);
|
||
insert openLead;
|
||
|
||
HIC_ShopifySync__HIC_Configuration__c cfg = new HIC_ShopifySync__HIC_Configuration__c(
|
||
Name = 'Default',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__Enable_Lead__c = true,
|
||
HIC_ShopifySync__Upsert_Customer_basis_on_Email__c = true,
|
||
HIC_ShopifySync__Customer_Email_Domain__c = true, // B2B path
|
||
HIC_ShopifySync__Account_Contact__c = false,
|
||
HIC_ShopifySync__Person_Account__c = false,
|
||
HIC_ShopifySync__Default_Account__c = false,
|
||
HIC_ShopifySync__Opportunity__c = false,
|
||
HIC_ShopifySync__Order__c = false,
|
||
HIC_ShopifySync__Order_Line_Item__c = false,
|
||
HIC_ShopifySync__Opportunity_Line_Item__c = false,
|
||
HIC_ShopifySync__Collection__c = false,
|
||
HIC_ShopifySync__Inventory_Location__c = false,
|
||
HIC_ShopifySync__Draft_Order_Sync__c = false
|
||
);
|
||
insert cfg;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('', true, '123');
|
||
Database.executeBatch(obj, 1);
|
||
Test.stopTest();
|
||
|
||
system.assertNotEquals(null, obj);
|
||
}
|
||
|
||
|
||
/**
|
||
* Tests createAccountContact B2B path (Customer_Email_Domain__c = true)
|
||
* Covers existing-account lookup and Contact upsert with AccountId override
|
||
*/
|
||
@isTest
|
||
static void testCreateAccountContactB2BExistingAccount() {
|
||
// Pre-create domain account
|
||
Account domainAcc = new Account(Name = 'gmail');
|
||
insert domainAcc;
|
||
|
||
HIC_ShopifySync__HIC_Configuration__c cfg = new HIC_ShopifySync__HIC_Configuration__c(
|
||
Name = 'Default',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__Customer_Email_Domain__c = true,
|
||
HIC_ShopifySync__Account_Contact__c = false,
|
||
HIC_ShopifySync__Person_Account__c = false,
|
||
HIC_ShopifySync__Default_Account__c = false,
|
||
HIC_ShopifySync__Enable_Lead__c = false,
|
||
HIC_ShopifySync__Opportunity__c = false,
|
||
HIC_ShopifySync__Order__c = false,
|
||
HIC_ShopifySync__Order_Line_Item__c = false,
|
||
HIC_ShopifySync__Opportunity_Line_Item__c = false,
|
||
HIC_ShopifySync__Collection__c = false,
|
||
HIC_ShopifySync__Inventory_Location__c = false,
|
||
HIC_ShopifySync__Draft_Order_Sync__c = false
|
||
);
|
||
insert cfg;
|
||
|
||
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(
|
||
HIC_ShopifySync__Object_Name__c = 'Contact',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__SF_Field__c = 'Email',
|
||
HIC_ShopifySync__Shopify_Fields__c = 'email',
|
||
HIC_ShopifySync__Default_Value__c = false,
|
||
HIC_ShopifySync__IsSFID__c = false
|
||
);
|
||
insert fm;
|
||
|
||
// Call createAccountContact directly with a customer JSON that has an email
|
||
String customerJson = '{"id":1073387929664,"email":"uv@gmail.com","first_name":"firstname1","last_name":"lastname1","orders_count":0,"phone":"9717626066"}';
|
||
|
||
Test.startTest();
|
||
FetchAccounts.createAccountContact(customerJson, '123');
|
||
Test.stopTest();
|
||
|
||
List<Account> gmailAccounts = [SELECT Id FROM Account WHERE Name = 'gmail'];
|
||
system.assert(!gmailAccounts.isEmpty(), 'Domain account should exist');
|
||
}
|
||
|
||
/**
|
||
* Tests createAccountContact B2B path where NO domain account exists
|
||
* → new Account is inserted inside createAccountContact
|
||
*/
|
||
@isTest
|
||
static void testCreateAccountContactB2BNewAccount() {
|
||
// Do NOT pre-create domain account
|
||
|
||
HIC_ShopifySync__HIC_Configuration__c cfg = new HIC_ShopifySync__HIC_Configuration__c(
|
||
Name = 'Default',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__Customer_Email_Domain__c = true,
|
||
HIC_ShopifySync__Account_Contact__c = false,
|
||
HIC_ShopifySync__Person_Account__c = false,
|
||
HIC_ShopifySync__Default_Account__c = false,
|
||
HIC_ShopifySync__Enable_Lead__c = false,
|
||
HIC_ShopifySync__Opportunity__c = false,
|
||
HIC_ShopifySync__Order__c = false,
|
||
HIC_ShopifySync__Order_Line_Item__c = false,
|
||
HIC_ShopifySync__Opportunity_Line_Item__c = false,
|
||
HIC_ShopifySync__Collection__c = false,
|
||
HIC_ShopifySync__Inventory_Location__c = false,
|
||
HIC_ShopifySync__Draft_Order_Sync__c = false
|
||
);
|
||
insert cfg;
|
||
|
||
HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(
|
||
HIC_ShopifySync__Object_Name__c = 'Contact',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__SF_Field__c = 'Email',
|
||
HIC_ShopifySync__Shopify_Fields__c = 'email',
|
||
HIC_ShopifySync__Default_Value__c = false,
|
||
HIC_ShopifySync__IsSFID__c = false
|
||
);
|
||
insert fm;
|
||
|
||
String customerJson = '{"id":1073387929664,"email":"newuser@newdomain.com","first_name":"New","last_name":"User","orders_count":0}';
|
||
|
||
Test.startTest();
|
||
FetchAccounts.createAccountContact(customerJson, '123');
|
||
Test.stopTest();
|
||
|
||
List<Account> newAccounts = [SELECT Id FROM Account WHERE Name = 'newdomain'];
|
||
system.assert(!newAccounts.isEmpty(), 'New domain account should have been created');
|
||
}
|
||
|
||
/**
|
||
* Tests createAccountContact B2B path where email is blank
|
||
* → no account creation, method returns early
|
||
*/
|
||
@isTest
|
||
static void testCreateAccountContactB2BBlankEmail() {
|
||
HIC_ShopifySync__HIC_Configuration__c cfg = new HIC_ShopifySync__HIC_Configuration__c(
|
||
Name = 'Default',
|
||
HIC_ShopifySync__Store__c = '123',
|
||
HIC_ShopifySync__Customer_Email_Domain__c = true,
|
||
HIC_ShopifySync__Account_Contact__c = false,
|
||
HIC_ShopifySync__Person_Account__c = false,
|
||
HIC_ShopifySync__Default_Account__c = false,
|
||
HIC_ShopifySync__Enable_Lead__c = false,
|
||
HIC_ShopifySync__Opportunity__c = false,
|
||
HIC_ShopifySync__Order__c = false,
|
||
HIC_ShopifySync__Order_Line_Item__c = false,
|
||
HIC_ShopifySync__Opportunity_Line_Item__c = false,
|
||
HIC_ShopifySync__Collection__c = false,
|
||
HIC_ShopifySync__Inventory_Location__c = false,
|
||
HIC_ShopifySync__Draft_Order_Sync__c = false
|
||
);
|
||
insert cfg;
|
||
|
||
// No email field in JSON → should return without creating account
|
||
String customerJson = '{"id":1073387929664,"first_name":"No","last_name":"Email","orders_count":0}';
|
||
|
||
Test.startTest();
|
||
FetchAccounts.createAccountContact(customerJson, '123');
|
||
Test.stopTest();
|
||
|
||
// No domain accounts should have been created
|
||
List<Account> accounts = [SELECT Id FROM Account];
|
||
system.assert(accounts.isEmpty(), 'No account should be created when email is blank');
|
||
}
|
||
|
||
/**
|
||
* Tests finish() → Collection branch (Collection__c = true, no Order/Opportunity)
|
||
*/
|
||
@isTest
|
||
static void testFinishCollectionBranch() {
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = false;
|
||
con.HIC_ShopifySync__Order__c = false;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = false;
|
||
con.HIC_ShopifySync__Person_Account__c = false;
|
||
con.HIC_ShopifySync__Default_Account__c = false;
|
||
con.HIC_ShopifySync__Collection__c = true; // Collection branch
|
||
con.HIC_ShopifySync__Inventory_Location__c = false;
|
||
con.HIC_ShopifySync__Draft_Order_Sync__c = false;
|
||
con.HIC_ShopifySync__Enable_Lead__c = false;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('', true, '123');
|
||
Database.executeBatch(obj, 1);
|
||
Test.stopTest();
|
||
|
||
List<HIC_ShopifySync__HIC_Configuration__c> updated = [
|
||
SELECT HIC_ShopifySync__AccountContactBatchCompleted__c
|
||
FROM HIC_ShopifySync__HIC_Configuration__c
|
||
WHERE HIC_ShopifySync__Store__c = '123'
|
||
];
|
||
system.assert(!updated.isEmpty());
|
||
}
|
||
|
||
/**
|
||
* Tests finish() → Draft Order Sync branch
|
||
*/
|
||
@isTest
|
||
static void testFinishDraftOrderSyncBranch() {
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = false;
|
||
con.HIC_ShopifySync__Order__c = false;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = false;
|
||
con.HIC_ShopifySync__Person_Account__c = false;
|
||
con.HIC_ShopifySync__Default_Account__c = false;
|
||
con.HIC_ShopifySync__Collection__c = false;
|
||
con.HIC_ShopifySync__Inventory_Location__c = false;
|
||
con.HIC_ShopifySync__Draft_Order_Sync__c = true; // Draft Order branch
|
||
con.HIC_ShopifySync__Enable_Lead__c = false;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('', true, '123');
|
||
Database.executeBatch(obj, 1);
|
||
Test.stopTest();
|
||
|
||
List<HIC_ShopifySync__HIC_Configuration__c> updated = [
|
||
SELECT HIC_ShopifySync__AccountContactBatchCompleted__c
|
||
FROM HIC_ShopifySync__HIC_Configuration__c
|
||
WHERE HIC_ShopifySync__Store__c = '123'
|
||
];
|
||
system.assert(!updated.isEmpty());
|
||
}
|
||
|
||
/**
|
||
* Tests finish() → no-next-batch final else branch
|
||
* (all flags false → sets AccountContactBatchCompleted, Batch_Is_Processing = false)
|
||
*/
|
||
@isTest
|
||
static void testFinishFinalElseBranch() {
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = false;
|
||
con.HIC_ShopifySync__Order__c = false;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = false;
|
||
con.HIC_ShopifySync__Person_Account__c = false;
|
||
con.HIC_ShopifySync__Default_Account__c = false;
|
||
con.HIC_ShopifySync__Collection__c = false;
|
||
con.HIC_ShopifySync__Inventory_Location__c = false;
|
||
con.HIC_ShopifySync__Draft_Order_Sync__c = false;
|
||
con.HIC_ShopifySync__Enable_Lead__c = false;
|
||
con.HIC_ShopifySync__IsCurrencyChanged__c = true;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
Test.startTest();
|
||
FetchAccounts obj = new FetchAccounts('', true, '123');
|
||
Database.executeBatch(obj, 1);
|
||
Test.stopTest();
|
||
|
||
List<HIC_ShopifySync__HIC_Configuration__c> updated = [
|
||
SELECT HIC_ShopifySync__AccountContactBatchCompleted__c,
|
||
HIC_ShopifySync__Batch_Is_Processing__c,
|
||
HIC_ShopifySync__IsCurrencyChanged__c
|
||
FROM HIC_ShopifySync__HIC_Configuration__c
|
||
WHERE HIC_ShopifySync__Store__c = '123'
|
||
];
|
||
system.assert(!updated.isEmpty());
|
||
system.assertEquals(true, updated[0].HIC_ShopifySync__AccountContactBatchCompleted__c);
|
||
system.assertEquals(false, updated[0].HIC_ShopifySync__Batch_Is_Processing__c);
|
||
system.assertEquals(false, updated[0].HIC_ShopifySync__IsCurrencyChanged__c);
|
||
}
|
||
|
||
/**
|
||
* Tests the updated_at_min/max constructor (5-param constructor)
|
||
* with both Order and Opportunity enabled → finish() hits fetchOrderAndOpportunity branch
|
||
*/
|
||
@isTest
|
||
static void testUpdatedAtMinMaxConstructorWithOrderBranch() {
|
||
List<HIC_ShopifySync__HIC_Configuration__c> ConList = new List<HIC_ShopifySync__HIC_Configuration__c>();
|
||
HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c();
|
||
con.name = 'Default';
|
||
con.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True';
|
||
con.HIC_ShopifySync__Opportunity__c = true;
|
||
con.HIC_ShopifySync__Order__c = true;
|
||
con.HIC_ShopifySync__Order_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Opportunity_Line_Item__c = false;
|
||
con.HIC_ShopifySync__Account_Contact__c = false;
|
||
con.HIC_ShopifySync__Person_Account__c = false;
|
||
con.HIC_ShopifySync__Default_Account__c = false;
|
||
con.HIC_ShopifySync__Collection__c = false;
|
||
con.HIC_ShopifySync__Inventory_Location__c = false;
|
||
con.HIC_ShopifySync__Draft_Order_Sync__c = false;
|
||
con.HIC_ShopifySync__Enable_Lead__c = false;
|
||
Con.HIC_ShopifySync__Store__c = '123';
|
||
ConList.add(con);
|
||
insert ConList;
|
||
|
||
Test.startTest();
|
||
// Use the 5-param constructor with date range strings
|
||
FetchAccounts obj = new FetchAccounts('', true, '123', '2024-01-01T00:00:00Z', '2024-12-31T23:59:59Z');
|
||
Database.executeBatch(obj, 1);
|
||
Test.stopTest();
|
||
|
||
List<HIC_ShopifySync__HIC_Configuration__c> updated = [
|
||
SELECT HIC_ShopifySync__AccountContactBatchCompleted__c
|
||
FROM HIC_ShopifySync__HIC_Configuration__c
|
||
WHERE HIC_ShopifySync__Store__c = '123'
|
||
];
|
||
system.assert(!updated.isEmpty());
|
||
system.assertEquals(true, updated[0].HIC_ShopifySync__AccountContactBatchCompleted__c);
|
||
}
|
||
} |