@isTest public with sharing class HIC_ShopifyUtilityTest { @TestSetup public static void InsertData(){ Insert new HIC_ShopifySync__Collection__c(Name='Inserted Collection23', HIC_ShopifySync__Shopify_Id__c = '100793057344'); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList.add(con); insert ConList; } @isTest public static void TestShopifyCOnfigurationResultTemplate(){ Document d = new Document(); d.Name = 'Facebook'; d.FolderId = '00l2v000002Tek4AAC'; insert d; Document d1 = new Document(); d1.Name = 'Instagram'; d1.FolderId = '00l2v000002Tek4AAC'; insert d1; Document d2 = new Document(); d2.Name = 'Twitter'; d2.FolderId = '00l2v000002Tek4AAC'; insert d2; Document d4 = new Document(); d4.Name = 'Linkedin'; d4.FolderId = '00l2v000002Tek4AAC'; insert d4; Document d5 = new Document(); d5.Name = 'HIC_ShopifySyncFacebookIcon'; d5.FolderId = '00l2v000002Tek4AAC'; insert d5; Document d3 = new Document(); d3.Name = 'HIC_ShopifySyncRedHeart'; d3.FolderId = '00l2v000002Tek4AAC'; insert d3; Document d6 = new Document(); d6.Name = 'HIC_ShopifySyncInstaIcon'; d6.FolderId = '00l2v000002Tek4AAC'; insert d6; Document d7 = new Document(); d7.Name = 'HIC_ShopifySyncLinkedInIcon'; d7.FolderId = '00l2v000002Tek4AAC'; insert d7; Document d8 = new Document(); d8.Name = 'HIC_ShopifySyncLogo'; d8.FolderId = '00l2v000002Tek4AAC'; insert d8; Document d9 = new Document(); d9.Name = 'HIC_ShopifySyncTwitterIcon'; d9.FolderId = '00l2v000002Tek4AAC'; insert d9; Document d10 = new Document(); d10.Name = 'AppWriteReviewURL'; d10.FolderId = '00l2v000002Tek4AAC'; insert d10; ShopifyConfigurationResultTemplate_Ctrl page = new ShopifyConfigurationResultTemplate_Ctrl(); System.assert(true,true); } static testmethod void SetuptHicShopify_Utility() { Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); CustomSettingRecordInsert.InsertingConfiguration(); CustomSettingRecordInsert.InsertingWebhook(); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList.add(con); insert ConList; List recordTypeList = new List(); Id accountId; recordTypeList = [Select id from RecordType where SObjectType = 'Account' limit 1]; if(!recordTypeList.isEmpty()) accountId = recordTypeList[0].Id; List fmList = new List(); HIC_ShopifySync__HIC_Field_Mapping__c fmRecord = new HIC_ShopifySync__HIC_Field_Mapping__c(); fmRecord.Name = 'Account-RecordTypeId'; fmRecord.HIC_ShopifySync__SF_Field__c = 'RecordTypeId'; fmRecord.HIC_ShopifySync__Shopify_Field_Type__c = 'string'; fmRecord.HIC_ShopifySync__Object_Name__c = 'Account'; fmRecord.HIC_ShopifySync__External_ID__c = 'Account-RecordTypeId'; fmRecord.HIC_ShopifySync__Store__c = '123'; if(accountID <> null) fmRecord.HIC_ShopifySync__Shopify_Fields__c = accountId; fmList.add(fmRecord); List orderIdList = [Select id from RecordType where SObjectType = 'Order' limit 1]; Id orderId; if(!orderIdList.isEmpty()) orderId = orderIdList[0].Id; HIC_ShopifySync__HIC_Field_Mapping__c fmRecord1 = new HIC_ShopifySync__HIC_Field_Mapping__c(); fmRecord1.Name = 'Order-RecordTypeId'; fmRecord1.HIC_ShopifySync__SF_Field__c = 'RecordTypeId'; fmRecord1.HIC_ShopifySync__Shopify_Field_Type__c = 'string'; fmRecord1.HIC_ShopifySync__Object_Name__c = 'Order'; fmRecord1.HIC_ShopifySync__External_ID__c = 'Order-RecordTypeId'; fmRecord1.HIC_ShopifySync__Store__c = '123'; if(orderId <> null) fmRecord1.HIC_ShopifySync__Shopify_Fields__c = orderId; fmList.add(fmRecord1); List contactIdList = [Select id from RecordType where SObjectType = 'Contact' limit 1]; Id contactId; if(!contactIdList.isEmpty()) contactId = contactIdList[0].Id; HIC_ShopifySync__HIC_Field_Mapping__c fmRecord2 = new HIC_ShopifySync__HIC_Field_Mapping__c(); fmRecord2.Name = 'Contact-RecordTypeId'; fmRecord2.HIC_ShopifySync__SF_Field__c = 'RecordTypeId'; fmRecord2.HIC_ShopifySync__Shopify_Field_Type__c = 'string'; fmRecord2.HIC_ShopifySync__Object_Name__c = 'Contact'; fmRecord2.HIC_ShopifySync__External_ID__c = 'Contact-Accountid'; fmRecord2.HIC_ShopifySync__Store__c = '123'; if(contactId <> null) fmRecord2.HIC_ShopifySync__Shopify_Fields__c = contactId; fmList.add(fmRecord2); system.debug('fmList'+fmList); HIC_ShopifySync__HIC_Field_Mapping__c fmRecord11 = new HIC_ShopifySync__HIC_Field_Mapping__c(); fmRecord11.Name = 'Order-name'; fmRecord11.HIC_ShopifySync__SF_Field__c = 'name'; fmRecord11.HIC_ShopifySync__Shopify_Field_Type__c = 'string'; fmRecord11.HIC_ShopifySync__Object_Name__c = 'OrderItem'; fmRecord11.HIC_ShopifySync__External_ID__c = 'Order-name'; fmRecord11.HIC_ShopifySync__Store__c = '123'; fmList.add(fmRecord11); insert fmList; HIC_ShopifyUtility.getShopifyFields('Account'); HIC_ShopifyUtility.getDefaultFieldMapping('Order',true); HIC_ShopifyUtility.getDefaultFieldMapping('Order',true,'123'); HIC_ShopifyUtility.getDefaultFieldMapping('Order',false); HIC_ShopifyUtility.getDefaultFieldMapping('Order',false,'123'); system.assertEquals(200, res.getStatusCode()); } @isTest public static void TestHicShopify_Utility(){ Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); List fieldMapList = new List(); Id priceBookId = Test.getStandardPricebookId(); if(priceBookId != null){ fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithAllFields('Order','Pricebook2Id',string.valueOf(priceBookId),'',false,true,'REFERENCE','Reference',string.valueOf(priceBookId)));// NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithAllFields('Order','CurrencyISOCODE','USD','',true,false,'PICKLIST','string','')); } insert fieldMapList; CustomSettingRecordInsert.InsertingWebhook(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator()); String shopifyUrlWithId = ' "https://patchtesting.myshopify.com"'; List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; 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; String result = HIC_ShopifyUtility.fetchAllDataWithLinkForNextPage(shopifyUrlWithId, ConList); system.assertEquals(200, res.getStatusCode()); HIC_ShopifyUtility.FetchOrderAndOpportunity(ConList,'123'); HIC_ShopifyUtility.fetchAllDataUsingId('custom_collections',ConList); HIC_ShopifyUtility.fetchAllDataWithLinkForNextPage('custom_collections',ConList); HIC_ShopifyUtility.getPageInfo('; rel="previous", ; rel="next"'); HIC_ShopifyUtility.getPageInfo('; rel="next"'); HIC_ShopifyUtility.getPageInfo('; rel="next",; rel="previous"'); } private class MockHttpResponseGenerator implements HttpCalloutMock { public HTTPResponse respond(HTTPRequest req) { HTTPResponse res = new HTTPResponse(); res.setBody('{"X-Shopify-Access-Token":PASSWORD}'); res.setStatusCode(200); return res; } } // ✅ Mock for Shopify callout private class ShopifyCustomerMock implements HttpCalloutMock { public HTTPResponse respond(HTTPRequest req) { System.assert(req.getEndpoint().contains('/customers/')); // safety check // Simulated Shopify customer JSON String responseBody = '{"customer":{"id": "12345", "orders_count": 2, "email":"abc@test.com"}}'; HttpResponse res = new HttpResponse(); res.setStatusCode(200); res.setBody(responseBody); return res; } } // ✅ Mock to simulate when Shopify returns zero orders private class ShopifyCustomerZeroMock implements HttpCalloutMock { public HTTPResponse respond(HTTPRequest req) { String responseBody = '{"customer":{"id": "12345", "orders_count": 0, "email":"abc@test.com"}}'; HttpResponse res = new HttpResponse(); res.setStatusCode(200); res.setBody(responseBody); return res; } } @IsTest static void testFetchCustomerJob_withOrders() { // Prepare config record HIC_ShopifySync__HIC_Configuration__c config = new HIC_ShopifySync__HIC_Configuration__c( Name = 'TestStore', HIC_ShopifySync__Shopify_URL__c = 'https://testshop.myshopify.com', HIC_ShopifySync__Private_Key_Password__c = 'fake_token' ); insert config; // Mock HTTP response Test.setMock(HttpCalloutMock.class, new ShopifyCustomerMock()); // Prepare test data String store = 'TestStore'; String customerId = '12345'; String payload = '{"id":"12345"}'; // Enqueue job Test.startTest(); System.enqueueJob(new HIC_ShopifyUtility.FetchCustomerJob(config.Id, customerId, store, payload)); Test.stopTest(); // No asserts needed for Queueable chaining, but verify callout was successful //System.assertEquals(1, [SELECT COUNT() FROM AsyncApexJob WHERE JobType = 'Queueable'], 'Queue job should be queued.'); } @IsTest static void testFetchCustomerJob_zeroOrders() { // Prepare config record HIC_ShopifySync__HIC_Configuration__c config = new HIC_ShopifySync__HIC_Configuration__c( Name = 'ZeroOrderStore', HIC_ShopifySync__Shopify_URL__c = 'https://zero.myshopify.com', HIC_ShopifySync__Private_Key_Password__c = 'fake_token' ); insert config; // Mock HTTP response with zero orders Test.setMock(HttpCalloutMock.class, new ShopifyCustomerZeroMock()); String store = 'ZeroOrderStore'; String customerId = '999'; String payload = '{"id":"999"}'; Test.startTest(); System.enqueueJob(new HIC_ShopifyUtility.FetchCustomerJob(config.Id, customerId, store, payload)); Test.stopTest(); // You can add asserts/log checks if createLead should trigger //System.assertEquals(1, [SELECT COUNT() FROM AsyncApexJob WHERE JobType = 'Queueable'], 'Queue job should be queued.'); } @isTest public static void TestHicShopify_Utility2(){ Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); List fieldMapList = new List(); Id priceBookId = Test.getStandardPricebookId(); Product2 p = new product2(name='x',HIC_ShopifySync__Shopify_Id__c = '1798809452608'); insert p; //define the standart price for the product system.debug('priceBookId++++'+priceBookId); sObject pbe = Schema.getGlobalDescribe().get('PricebookEntry').newSObject() ; pbe.put('pricebook2id',priceBookId); pbe.put('product2id',p.Id); pbe.put('unitprice',1.0); pbe.put('isActive',true); //pbe.put('currencyIsoCode','USD'); insert pbe; if(priceBookId != null){ fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithAllFields('Order','Pricebook2Id',string.valueOf(priceBookId),'billing_address',false,true,'REFERENCE','Reference',string.valueOf(priceBookId)));// NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithAllFields('Order','CurrencyISOCODE','USD','billing_address',false,false,'PICKLIST','string','')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutFields('OrderItem','UnitPrice','price','CURRENCY','number','')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','BillingLatitude','latitude','billing_address','DOUBLE','string','latitude'));//NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','BillingStreet','address1,address2','billing_address','DOUBLE','string','address1,address2')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','Accountid','id','customer','Reference','string','id')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','ShippingState','address1,address2','','DOUBLE','string','address1,address2')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','IsReductionOrder','buyer_accepts_marketing','','Boolean','Boolean','buyer_accepts_marketing')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','CompanyAuthorizedDate','processed_at','','DateTime','DateTime','processedAt'));// NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutFields('Order','EffectiveDate','processed_at','DATE','DateTime','processedAt'));// NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','HIC_ShopifySync__Shopify_Id__c','latitude','','reference','string','')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutFields('Order','OpportunityId','id','REFERENCE','Reference','id')); } insert fieldMapList; CustomSettingRecordInsert.InsertingWebhook(); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; 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; system.assertEquals(200, res.getStatusCode()); HIC_ShopifyUtility.FetchOrderAndOpportunity(ConList,'123'); HIC_ShopifyUtility.fetchAllDataUsingId('custom_collections',ConList); } @isTest public static void TestHicShopify_Utility1(){ Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); List fieldMapList = new List(); Id priceBookId = Test.getStandardPricebookId(); if(priceBookId != null){ fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithAllFields('Order','Pricebook2Id',string.valueOf(priceBookId),'',true,false,'REFERENCE','Reference',string.valueOf(priceBookId)));// NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithAllFields('Order','CurrencyISOCODE','USD','',true,false,'PICKLIST','string','')); } insert fieldMapList; // CustomSettingRecordInsert.InsertingFieldMapping(); // CustomSettingRecordInsert.InsertingConfiguration(); CustomSettingRecordInsert.InsertingWebhook(); system.assertEquals(200, res.getStatusCode()); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList.add(con); insert ConList; HIC_ShopifyUtility.fetchDraftOrders(ConList,'123'); //HIC_ShopifyUtility.fetchOrders(ConList,'123'); } @isTest public static void TestgetNoOfRecordsFromShopify(){ Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); // CustomSettingRecordInsert.InsertingFieldMapping(); // CustomSettingRecordInsert.InsertingConfiguration(); CustomSettingRecordInsert.InsertingWebhook(); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList.add(con); insert ConList; system.assertEquals(200, res.getStatusCode()); HIC_ShopifyUtility.getNoOfRecordsFromShopify('products',ConList); } @isTest public static void TestfetchCustomer1(){ Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); // CustomSettingRecordInsert.InsertingFieldMapping(); // CustomSettingRecordInsert.InsertingConfiguration(); CustomSettingRecordInsert.InsertingWebhook(); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Default_Account__c = true; con.HIC_ShopifySync__Store__c = '123'; ConList.add(con); insert ConList; system.assertEquals(200, res.getStatusCode()); HIC_ShopifyUtility.fetchCustomer(ConList,'123'); } @isTest public static void TestfetchProducts(){ Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); // CustomSettingRecordInsert.InsertingFieldMapping(); // CustomSettingRecordInsert.InsertingConfiguration(); CustomSettingRecordInsert.InsertingWebhook(); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList.add(con); insert ConList; system.assertEquals(200, res.getStatusCode()); HIC_ShopifyUtility.fetchProducts(ConList,'123'); } @isTest public static void TestfetchLocations(){ Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); // CustomSettingRecordInsert.InsertingFieldMapping(); // CustomSettingRecordInsert.InsertingConfiguration(); CustomSettingRecordInsert.InsertingWebhook(); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList.add(con); insert ConList; system.assertEquals(200, res.getStatusCode()); HIC_ShopifyUtility.fetchLocations(ConList,'123'); } @isTest public static void TestprocessCollections(){ Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); // CustomSettingRecordInsert.InsertingFieldMapping(); // CustomSettingRecordInsert.InsertingConfiguration(); CustomSettingRecordInsert.InsertingWebhook(); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList.add(con); insert ConList; system.assertEquals(200, res.getStatusCode()); HIC_ShopifyUtility.processCollections(ConList,'123'); } @isTest public static void TestfetchAllData(){ Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); // CustomSettingRecordInsert.InsertingFieldMapping(); // CustomSettingRecordInsert.InsertingConfiguration(); CustomSettingRecordInsert.InsertingWebhook(); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList.add(con); insert ConList; system.assertEquals(200, res.getStatusCode()); HIC_ShopifyUtility.fetchAllData('custom_collections',ConList); } @isTest public static void TestInsertProduct(){ Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); // CustomSettingRecordInsert.InsertingFieldMapping(); // CustomSettingRecordInsert.InsertingConfiguration(); CustomSettingRecordInsert.InsertingWebhook(); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList.add(con); insert ConList; system.assertEquals(200, res.getStatusCode()); Map oProdmap = new Map (); Map> oPProdmap = new Map>(); oProdmap.put('vendor','SyncMyStore2'); oProdmap.put('name','SyncMyStore1223'); oProdmap.put('Id','2053670240356'); oProdmap.put('title','Jackets'); oProdmap.put('published_scope','web'); oPProdmap.put('2053670240356',oProdmap); List ConList1 = new List(); HIC_ShopifySync__HIC_Configuration__c conn = new HIC_ShopifySync__HIC_Configuration__c(); conn.name = 'Default'; conn.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True'; conn.HIC_ShopifySync__Opportunity__c = True; conn.HIC_ShopifySync__Order__c = true; conn.HIC_ShopifySync__Opportunity_Line_Item__c = True; conn.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList1.add(conn); insert ConList1; Product2 proObj = new Product2(name='test HIC_ShopifySync__Shopify_Id__c'); proObj.HIC_ShopifySync__Shopify_Id__c = '2053670240356'; // proObj.HIC_ShopifySync__Shopify_Id__c = conn.id; insert proObj; HIC_ShopifyUtility.InsertProduct(oPProdmap,ConList,false,'123'); Product2 proObj1 = new Product2(name='test HIC_ShopifySync__Shopify_'); //proObj.HIC_ShopifySync__Shopify_Id__c = '2053670240356'; proObj1.HIC_ShopifySync__Shopify_Id__c = conn.id; insert proObj1; HIC_ShopifyUtility.InsertProduct(oPProdmap,ConList,true,'123'); } @isTest public static void call(){ boolean asserBool = true; CustomSettingRecordInsert.InsertingConfiguration(); HIC_ShopifySync__HIC_Field_Mapping__c HIC_ShopifySync = new HIC_ShopifySync__HIC_Field_Mapping__c(name='HIC_ShopifySync__Field_Mapping'); Contact con = new Contact(firstname='first name', lastname = 'last name'); con.HIC_ShopifySync__Shopify_Id__c = '123456'; con.HIC_ShopifySync__Store__c = '123'; insert con; List configurationList = new List(); String queryConfiguration = 'Select '+CheckAccessibility.isAccessible('name,HIC_ShopifySync__Default_Field_Mapping__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Specify_Close_Date__c, HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Person_Account__c ','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('name','HIC_ShopifySync__HIC_Configuration__c') +' = \'Default\' limit 1'; configurationList = database.query(queryConfiguration); HIC_ShopifyUtility.fetchAllData('Account',configurationList); HIC_ShopifyUtility.getNoOfRecordsFromShopify('Account',configurationList); HIC_ShopifyUtility.fetchAllDataUsingId('Account',configurationList); list listObject = new list(); String orderJson = '[{ "id": 1314006663277, "email": "", "closed_at": null, "created_at": "2019-07-25T03:55:36-04:00", "updated_at": "2019-07-25T03:55:37-04:00", "number": 1, "note": "", "token": "66126433dfba1ee5458a7d8109fc39ab", "gateway": "manual", "test": false, "total_price": "20.00", "subtotal_price": "20.00", "total_weight": 0, "total_tax": "0.00", "taxes_included": false, "currency": "KYD", "financial_status": "paid", "confirmed": true, "total_discounts": "0.00", "total_line_items_price": "20.00", "cart_token": null, "buyer_accepts_marketing": false, "name": "#1001", "referring_site": null, "landing_site": null, "cancelled_at": null, "cancel_reason": null, "total_price_usd": "24.39", "checkout_token": null, "reference": null, "user_id": 36034510957, "location_id": 31541231725, "source_identifier": null, "source_url": null, "processed_at": "2019-07-25T03:55:36-04:00", "device_id": null, "phone": null, "customer_locale": null, "app_id": 1354745, "browser_ip": null, "landing_site_ref": null, "order_number": 1001, "discount_applications": [], "fulfillments": [{ "user_id": 36034510957, "location_id": 31541231725, "source_identifier": null, "source_url": null, "processed_at": "2019-07-25T03:55:36-04:00", "device_id": null, "phone": null, "customer_locale": null, "app_id": 1354745, "browser_ip": null }]}]'; //listObject.add(acc); //listObject.add(con); //insert listObject; List listObject2 = (List)Json.deserializeuntyped(orderJson); Map productVsPricebookEntryMap = new Map(); Map productVsUnitePriceMap = new Map(); Id priceBookId = Test.getStandardPricebookId(); Product2 product = new product2(name='x',HIC_ShopifySync__Shopify_Id__c = '1798809452608'); insert product; PricebookEntry pricebookentry = new PricebookEntry(); pricebookentry.Pricebook2Id = priceBookId; pricebookentry.Product2Id = product.id; pricebookentry.UnitPrice = 10; insert pricebookentry; List fieldMapList = new List(); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithAllFields('Order','CurrencyISOCODE','USD','billing_address',false,false,'PICKLIST','string','')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutFields('OrderItem','UnitPrice','price','CURRENCY','number','')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','BillingLatitude','latitude','billing_address','DOUBLE','string','latitude'));//NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','BillingStreet','address1,address2','billing_address','DOUBLE','string','address1,address2')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','Accountid','id','customer','Reference','string','id')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','ShippingState','address1,address2','','DOUBLE','string','address1,address2')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','IsReductionOrder','buyer_accepts_marketing','','Boolean','Boolean','buyer_accepts_marketing')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','CompanyAuthorizedDate','processed_at','','DateTime','DateTime','processed_at'));// NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutFields('Order','EffectiveDate','processed_at','DATE','DateTime','processed_at'));// NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','HIC_ShopifySync__Shopify_Id__c','latitude','','reference','string','id')); insert fieldMapList; Map> oProdMap = new Map>(); Map objectMap = new Map(); Map ShopifyidvsAccountid = new Map(); HIC_ShopifyUtility.processSobjectList(fieldMapList,listObject,'Account','id',configurationList,true,'123'); Schema.DescribeFieldResult dfr = Opportunity.Description.getDescribe(); Schema.DescribeFieldResult dfr1 = Account.name.getDescribe(); HIC_ShopifyUtility.upsertSobjectList('[{"id":123456}]',listObject,'Account','id',configurationList,true,'123'); HIC_ShopifyUtility.processCollections(configurationList,'123'); HIC_ShopifyUtility.fetchCustomer(configurationList,'123'); HIC_ShopifyUtility.fetchOrderAndOpportunity(configurationList,'123'); HIC_ShopifyUtility.fetchDraftOrders(configurationList,'123'); //HIC_ShopifyUtility.fetchOrders(configurationList,'123'); HIC_ShopifyUtility.insertOrderfulfillments(listObject2, configurationList,true,'123'); HIC_ShopifyUtility.fetchProducts(configurationList,'123'); HIC_ShopifyUtility.fetchLocations(configurationList,'123'); HIC_ShopifyUtility.checkFieldLengthAndReturnValue(dfr, 'hello' ,configurationList); //HIC_ShopifyUtility.processFieldTypeAndMapping(fieldMapList, 'Opportunity' , objectMap , configurationList ); Map fieldMapForOrderProduct = Schema.SObjectType.account.fields.getMap(); HIC_ShopifyUtility.InitializeAccount(ShopifyidvsAccountid, 'con', false ,configurationList ); HIC_ShopifyUtility.InsertProduct(oProdMap, configurationList,true,'123'); System.assert(asserBool); } @isTest public static void TestInsertProduct1(){ Test.startTest(); Test.setMock(HttpCalloutMock.class, new MockHttpResponseHIC_ShopifyUtility()); HttpResponse res = CalloutClassforHIC_ShopifyUtility.getInfoFromExternalService(); Test.stopTest(); // CustomSettingRecordInsert.InsertingFieldMapping(); // CustomSettingRecordInsert.InsertingConfiguration(); CustomSettingRecordInsert.InsertingWebhook(); List ConList = new List(); 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__Opportunity_Line_Item__c = True; con.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList.add(con); insert ConList; system.assertEquals(200, res.getStatusCode()); Map oProdmap = new Map (); Map> oPProdmap = new Map>(); oProdmap.put('vendor','SyncMyStore2'); oProdmap.put('name','SyncMyStore1223'); oProdmap.put('Id','2053670240356'); oProdmap.put('title','Jackets'); oProdmap.put('published_scope','web'); oPProdmap.put('2053670240356',oProdmap); List ConList1 = new List(); HIC_ShopifySync__HIC_Configuration__c conn = new HIC_ShopifySync__HIC_Configuration__c(); conn.name = 'Default'; conn.HIC_ShopifySync__Private_Key_Password__c = '0000000000000000True'; conn.HIC_ShopifySync__Opportunity__c = True; conn.HIC_ShopifySync__Order__c = true; conn.HIC_ShopifySync__Opportunity_Line_Item__c = True; conn.HIC_ShopifySync__Order_Line_Item__c = True; con.HIC_ShopifySync__Store__c = '123'; ConList1.add(conn); insert ConList1; Product2 proObj = new Product2(name='test HIC_ShopifySync__Shopify_Id__c'); //proObj.HIC_ShopifySync__Shopify_Id__c = '2053670240356'; proObj.HIC_ShopifySync__Shopify_Id__c = conn.id; insert proObj; HIC_ShopifyUtility.InsertProduct(oPProdmap,ConList,false,'123'); } /* @isTest public static void call_processFieldTypeAndMapping(){ Map objectMap = new Map(); HIC_ShopifySync__HIC_Configuration__c con = new HIC_ShopifySync__HIC_Configuration__c(name='HIC_ShopifySync__HIC_Configuration__c'); List configurationList = new List(); configurationList.add(con); insert configurationList; Opportunity opp = new Opportunity(); opp.name = 'test_opp'; opp.closedate = system.today().addDays(10); opp.StageName = 'prospecting'; insert opp; List fieldMapList = new List(); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithAllFields('Order','CurrencyISOCODE','USD','billing_address',false,false,'PICKLIST','string')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutFields('OrderItem','UnitPrice','price','CURRENCY','number')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','BillingLatitude','latitude','billing_address','DOUBLE','string'));//NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','BillingStreet','address1,address2','billing_address','DOUBLE','string')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','Accountid','id','customer','Reference','string')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','ShippingState','address1,address2','','DOUBLE','string')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','IsReductionOrder','buyer_accepts_marketing','','Boolean','Boolean')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','CompanyAuthorizedDate','processed_at','','DateTime','DateTime'));// NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutFields('Order','EffectiveDate','processed_at','DATE','DateTime'));// NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','HIC_ShopifySync__Shopify_Id__c','latitude','','reference','string')); insert fieldMapList; HIC_ShopifyUtility.processFieldTypeAndMapping(fieldMapList, 'opp' , objectMap , configurationList); }*/ @isTest public static void call1(){ boolean asserBool = true; CustomSettingRecordInsert.InsertingConfiguration(); HIC_ShopifySync__HIC_Field_Mapping__c HIC_ShopifySync = new HIC_ShopifySync__HIC_Field_Mapping__c(name='HIC_ShopifySync__Field_Mapping'); Contact con = new Contact(firstname='first name', lastname = 'last name'); con.HIC_ShopifySync__Shopify_Id__c = '123456'; con.HIC_ShopifySync__Store__c = '123'; insert con; List configurationList = new List(); String queryConfiguration = 'Select '+CheckAccessibility.isAccessible('name,HIC_ShopifySync__Default_Field_Mapping__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Specify_Close_Date__c, HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Person_Account__c ','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('name','HIC_ShopifySync__HIC_Configuration__c') +' = \'Default\' limit 1'; configurationList = database.query(queryConfiguration); HIC_ShopifyUtility.fetchAllData('Account',configurationList); HIC_ShopifyUtility.getNoOfRecordsFromShopify('Account',configurationList); HIC_ShopifyUtility.fetchAllDataUsingId('Account',configurationList); list listObject = new list(); String orderJson = '[{ "id": 1314006663277, "email": "", "closed_at": null, "created_at": "2019-07-25T03:55:36-04:00", "updated_at": "2019-07-25T03:55:37-04:00", "number": 1, "note": "", "token": "66126433dfba1ee5458a7d8109fc39ab", "gateway": "manual", "test": false, "total_price": "20.00", "subtotal_price": "20.00", "total_weight": 0, "total_tax": "0.00", "taxes_included": false, "currency": "KYD", "financial_status": "paid", "confirmed": true, "total_discounts": "0.00", "total_line_items_price": "20.00", "cart_token": null, "buyer_accepts_marketing": false, "name": "#1001", "referring_site": null, "landing_site": null, "cancelled_at": null, "cancel_reason": null, "total_price_usd": "24.39", "checkout_token": null, "reference": null, "user_id": 36034510957, "location_id": 31541231725, "source_identifier": null, "source_url": null, "processed_at": "2019-07-25T03:55:36-04:00", "device_id": null, "phone": null, "customer_locale": null, "app_id": 1354745, "browser_ip": null, "landing_site_ref": null, "order_number": 1001, "discount_applications": [], "fulfillments": [{ "user_id": 36034510957, "location_id": 31541231725, "source_identifier": null, "source_url": null, "processed_at": "2019-07-25T03:55:36-04:00", "device_id": null, "phone": null, "customer_locale": null, "app_id": 1354745, "browser_ip": null }]}]'; //listObject.add(acc); //listObject.add(con); //insert listObject; List listObject2 = (List)Json.deserializeuntyped(orderJson); Map productVsPricebookEntryMap = new Map(); Map productVsUnitePriceMap = new Map(); Id priceBookId = Test.getStandardPricebookId(); Product2 product = new product2(name='x',HIC_ShopifySync__Shopify_Id__c = '1798809452608'); insert product; PricebookEntry pricebookentry = new PricebookEntry(); pricebookentry.Pricebook2Id = priceBookId; pricebookentry.Product2Id = product.id; pricebookentry.UnitPrice = 10; insert pricebookentry; List fieldMapList = new List(); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithAllFields('Order','CurrencyISOCODE','USD','billing_address',false,false,'PICKLIST','string','')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutFields('OrderItem','UnitPrice','price','CURRENCY','number','')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','BillingLatitude','latitude','billing_address','DOUBLE','string','latitude'));//NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','BillingStreet','address1,address2','billing_address','DOUBLE','string','address1,address2')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','Accountid','id','customer','Reference','string','id')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','ShippingState','address1,address2','','DOUBLE','string','address1,address2')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','IsReductionOrder','buyer_accepts_marketing','','Boolean','Boolean','buyer_accepts_marketing')); fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','CompanyAuthorizedDate','processed_at','','DateTime','DateTime','processed_at'));// NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutFields('Order','EffectiveDate','processed_at','DATE','DateTime','processed_at'));// NEW fieldMapList.add(CustomSettingRecordInsert.processFieldMappingSobjectWithoutBoolean('Order','HIC_ShopifySync__Shopify_Id__c','latitude','','reference','string','id')); insert fieldMapList; Map> oProdMap = new Map>(); Map objectMap = new Map(); Map ShopifyidvsAccountid = new Map(); HIC_ShopifyUtility.processSobjectList(fieldMapList,listObject,'Account','id',configurationList,true,'123'); Schema.DescribeFieldResult dfr = Opportunity.Description.getDescribe(); Schema.DescribeFieldResult dfr1 = Account.name.getDescribe(); HIC_ShopifyUtility.upsertSobjectList('[{"id":123456}]',listObject,'Account','id',configurationList,true,'123'); HIC_ShopifyUtility.processCollections(configurationList,'123'); HIC_ShopifyUtility.processCollections(configurationList,'123',' ',' '); HIC_ShopifyUtility.fetchCustomer(configurationList,'123'); HIC_ShopifyUtility.fetchOrderAndOpportunity(configurationList,'123'); HIC_ShopifyUtility.fetchOrderAndOpportunity(configurationList,'123','',''); HIC_ShopifyUtility.fetchDraftOrders(configurationList,'123'); HIC_ShopifyUtility.fetchDraftOrders(configurationList,'123',' ',' '); HIC_ShopifyUtility.insertOrderfulfillments(listObject2, configurationList,true,'123'); HIC_ShopifyUtility.fetchProducts(configurationList,'123'); HIC_ShopifyUtility.fetchLocations(configurationList,'123'); HIC_ShopifyUtility.checkFieldLengthAndReturnValue(dfr, 'hello' ,configurationList); //HIC_ShopifyUtility.processFieldTypeAndMapping(fieldMapList, 'Opportunity' , objectMap , configurationList ); Map fieldMapForOrderProduct = Schema.SObjectType.account.fields.getMap(); HIC_ShopifyUtility.InitializeAccount(ShopifyidvsAccountid, 'con', false ,configurationList ); HIC_ShopifyUtility.InsertProduct(oProdMap, configurationList,true,'123'); System.assert(asserBool); } }