From 80a3f59e2d3df07805bc67e329300b8de90a5b3a Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期二, 11 七月 2023 14:13:08 +0800
Subject: [PATCH] Merge branch 'LEXCommunityLiJun' into LEXUpgrade2023-Deloitte

---
 force-app/main/default/classes/NewAndEditLeadControllerTest.cls |  252 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 229 insertions(+), 23 deletions(-)

diff --git a/force-app/main/default/classes/NewAndEditLeadControllerTest.cls b/force-app/main/default/classes/NewAndEditLeadControllerTest.cls
index 9aec75f..9be1bb1 100644
--- a/force-app/main/default/classes/NewAndEditLeadControllerTest.cls
+++ b/force-app/main/default/classes/NewAndEditLeadControllerTest.cls
@@ -2,15 +2,15 @@
  * Author: Guo, Aline Yaying
  * Created Date: 03/22/2022
  * Purpose: Test Class
- * History: 
+ * History:
  *      03/22/2022 - Guo, Aline Yaying - Initial Code.
- * 
+ *
  * */
 @isTest
 private class NewAndEditLeadControllerTest {
     @TestSetup
-    static void makeData(){
-        List<String> strList= new List<String>();
+    static void makeData() {
+        List<String> strList = new List<String>();
         strList.add('Lead');
         strList.add('Contact');
         strList.add('Inquiry_form__c');
@@ -18,42 +18,248 @@
         TestDataUtility.CreatePIPolicyConfigurations(strList);
     }
     static testMethod void testMethod1() {
-
         Test.setMock(HttpCalloutMock.class, new TestDataUtility.CreateMetaDataUtilityHttpMock());
         Test.startTest();
-        Lead leadTest = new Lead();
-        Contact cont = new Contact();
-        ApexPages.StandardController con =  new ApexPages.StandardController(leadTest);
-        NewAndEditLeadController lead = new NewAndEditLeadController(con);
-        
-        String leadJson = '{"RecordTypeId":"01210000000QiRaAAK","Lead_No__c":"IN-JS-2022040127183","Status":"鏈窡杩�","Hospital_Name__c":"0011000000VAPEt","Department_Class__c":"0011000000V9bh5","Salutation":"","LastName":"***","Contact_Name__c":"0031m00000DHrkV","Cancel_Reason__c":"","Phone":"","Opp_Name_Search__c":"000000000000000","Email":"","Opp_Name__c":"Test","owner_not_automatically_update__c":false,"Purchase_Plan__c":"鏈�(鏃犻绠�)","Lead_Inquiry_form__c":"000000000000000","Opportunity_Division__c":"璇环","LeadSource":"鐢佃瘽","Campaign__c":"000000000000000","urgent__c":false,"SI_PromoteInquiry__c":false,"Request__c":"","Request_Detail__c":"","Opportunity_stage__c":"棰勭畻娌℃湁鎵瑰噯","Close_Forecasted_Date__c":"2022/04/01","Purchase_Reason__c":"鏇存柊","Sales_Method__c":"鍗曚竴鏉ユ簮閲囪喘","Fund_Basis__c":"閵�琛岃硣閲�","Purchase_Type__c":"涓�鑸紩鍚�","Company":"姹熻嫃鐪佷汉姘戝尰闄� 鍛煎惛绉� 鍛煎惛绉�","Name_Encrypted__c":"48a2693f6bf73d16e0abd48caf7fb756","Phone_Encrypted__c":"","Email_Encrypted__c":"","AWS_Data_Id__c":"959584917346320385"}';
-        NewAndEditLeadController.saveLead(leadJson,'avgwshDFcxAS',False);
-        NewAndEditLeadController.saveLead(leadJson,'avgwshDFcxAS',True);
+        List<RecordType> rectCo = [
+            SELECT Id
+            FROM RecordType
+            WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '鐥呴櫌'
+        ];
+        if (rectCo.size() == 0) {
+            return;
+        }
+        List<RecordType> rectAcc = [
+            SELECT Id
+            FROM RecordType
+            WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '鎴︾暐绉戝鍒嗛 鍛煎惛绉�'
+        ];
+        if (rectAcc.size() == 0) {
+            return;
+        }
+        Account accountItem1 = new Account(Name = 'testaccount001', Dealer_discount__c = 10, RecordTypeId = rectCo[0].Id);
+        insert accountItem1;
+        Account accountItem3 = new Account(
+            Name = 'testaccount001',
+            Dealer_discount__c = 10,
+            RecordTypeId = rectAcc[0].Id,
+            ParentId = accountItem1.Id
+        );
+        insert accountItem3;
+        Account accountItem2 = new Account(
+            Name = 'testaccount002',
+            Dealer_discount__c = 10,
+            RecordTypeId = rectCo[0].Id,
+            Hospital__c = accountItem1.Id,
+            Department_Class__c = accountItem3.Id
+        );
+        insert accountItem2;
 
+        Contact contact2 = new Contact();
+        contact2.AccountId = accountItem2.Id;
+        contact2.FirstName = '璨换鑰�';
+        contact2.LastName = 'test1缁忛攢鍟�';
+        contact2.AWS_Data_Id__c = 'Test123';
+        insert contact2;
+
+        Lead leadTest = new Lead();
+        leadTest.LastName = 'test';
+        leadTest.Company = 'test';
+        leadTest.hospital__c = accountItem2.Hospital__c;
+        leadTest.Contact_Name__c = contact2.Id;
+        insert leadTest;
+
+        Inquiry_form__c inquiryform = new Inquiry_form__c();
+        inquiryform.Name = '2023062001';
+        inquiryform.Request1__c = '闇�瑕佹姤浠�';
+        inquiryform.Product1__c = '瓒呭0';
+        inquiryform.Hospital__c = accountItem2.Hospital__c;
+        inquiryform.Contact_Name__c = contact2.Id;
+
+        inquiryform.Opportunity_Division__c = '璇环';
+        insert inquiryform;
+
+        String contactDataId = contact2.AWS_Data_Id__c;
+
+        Boolean isClone = true;
+        Boolean isNew = true;
+        Map<string, string> AWSToSobjectEncryptedMap = new Map<String, String>();
+        String AWSToSobjectEncryptedMapJson = JSON.serialize(AWSToSobjectEncryptedMap);
+        PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo('Lead');
+        for (PI_Field_Policy_Detail__c PIDetail : piIntegration.PIDetails) {
+            AWSToSobjectEncryptedMap.put(PIDetail.AWS_Field_API__c, PIDetail.SF_Field_API_Name__c);
+        }
+        Map<string, string> mso = ApexPages.currentPage().getParameters();
+        mso.put('newclone', 'newclone');
+        mso.put('CF00N1000000962np_lkid', inquiryform.Id);
+        mso.put('CF00N10000006ps6f_lkid', contact2.Id);
+        mso.put('CF00N10000002CvC5_lkid', accountItem2.Hospital__c);
+        mso.put('CF00N10000002CvC5', 'Company');
+        mso.put('LeadSource', 'LeadSource');
+
+        String InquiryFormId = mso.get('CF00N1000000962np_lkid');
+        String contactId = mso.get('CF00N10000006ps6f_lkid');
+        Boolean isNewMode = false;
+        String recordId = leadTest.Id;
+        String rid = '';
+        ApexPages.StandardController con = new ApexPages.StandardController(leadTest);
+        NewAndEditLeadController lead = new NewAndEditLeadController(con);
+        Inquiry_form__c ifc = lead.ifc;
+        String token = lead.awsToken;
+        String AWSDataId = lead.AWSDataId;
+        String AWSDataIdInquiryForm = lead.AWSDataIdInquiryForm;
+        contactId = lead.contactId; //For Lookup field
+        String contactsInfo = lead.contactsInfo; //key sfid;value awsid
+        Map<String, String> sfIdToAWSIdMap = new Map<String, String>();
+
+        SObject obj = con.getRecord();
+        obj.put('Hospital_Name__c', mso.get('CF00N10000002CvC5_lkid'));
+        String hospitalId = mso.get('CF00N10000002CvC5_lkid');
+        if (obj.Id != null) {
+            Lead leadData = [
+                SELECT Id, RecordTypeId, AWS_Data_Id__c, Contact_Name__r.Id, Contact_Name__r.AWS_Data_Id__c
+                FROM Lead
+                WHERE id = :obj.Id
+            ];
+            String rtTypeId = leadData.RecordTypeId;
+            AWSDataId = leadData.AWS_Data_Id__c;
+            if (leadData.Contact_Name__r.Id != null) {
+                sfIdToAWSIdMap.put(String.valueof(leadData.Contact_Name__r.Id).subString(0, 15), leadData.Contact_Name__r.AWS_Data_Id__c);
+            }
+            contactsInfo = JSON.serialize(sfIdToAWSIdMap);
+        }
+
+        String leadJson = '{"RecordTypeId":"01210000000QiRaAAK","Lead_No__c":"IN-JS-2022040127183","Status":"鏈窡杩�","Hospital_Name__c":"0011000000VAPEt","Department_Class__c":"0011000000V9bh5","Salutation":"","LastName":"***","Contact_Name__c":"0031m00000DHrkV","Cancel_Reason__c":"","Phone":"","Opp_Name_Search__c":"000000000000000","Email":"","Opp_Name__c":"Test","owner_not_automatically_update__c":false,"Purchase_Plan__c":"鏈�(鏃犻绠�)","Lead_Inquiry_form__c":"000000000000000","Opportunity_Division__c":"璇环","LeadSource":"鐢佃瘽","Campaign__c":"000000000000000","urgent__c":false,"SI_PromoteInquiry__c":false,"Request__c":"","Request_Detail__c":"","Opportunity_stage__c":"棰勭畻娌℃湁鎵瑰噯","Close_Forecasted_Date__c":"2022/04/01","Purchase_Reason__c":"鏇存柊","Sales_Method__c":"鍗曚竴鏉ユ簮閲囪喘","Fund_Basis__c":"閵�琛岃硣閲�","Purchase_Type__c":"涓�鑸紩鍚�","Company":"姹熻嫃鐪佷汉姘戝尰闄� 鍛煎惛绉� 鍛煎惛绉�","Name_Encrypted__c":"48a2693f6bf73d16e0abd48caf7fb756","Phone_Encrypted__c":"","Email_Encrypted__c":"","AWS_Data_Id__c":"959584917346320385"}';
+        NewAndEditLeadController.saveLead(leadJson, 'avgwshDFcxAS', false);
+        NewAndEditLeadController.saveLead(leadJson, 'avgwshDFcxAS', true);
+        NewAndEditLeadController.saveLead(leadJson, 'avgwshDFcxAS', isNew);
+
+        Test.stopTest();
+    }
+
+    static testMethod void testMethod2() {
+        Test.setMock(HttpCalloutMock.class, new TestDataUtility.CreateMetaDataUtilityHttpMock());
+        Test.startTest();
+        List<RecordType> rectCo = [
+            SELECT Id
+            FROM RecordType
+            WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '鐥呴櫌'
+        ];
+        if (rectCo.size() == 0) {
+            return;
+        }
+        List<RecordType> rectAcc = [
+            SELECT Id
+            FROM RecordType
+            WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '鎴︾暐绉戝鍒嗛 鍛煎惛绉�'
+        ];
+        if (rectAcc.size() == 0) {
+            return;
+        }
+        Account accountItem1 = new Account(Name = 'testaccount001', Dealer_discount__c = 10, RecordTypeId = rectCo[0].Id);
+        insert accountItem1;
+        Account accountItem3 = new Account(
+            Name = 'testaccount001',
+            Dealer_discount__c = 10,
+            RecordTypeId = rectAcc[0].Id,
+            ParentId = accountItem1.Id
+        );
+        insert accountItem3;
+        Account accountItem2 = new Account(
+            Name = 'testaccount002',
+            Dealer_discount__c = 10,
+            RecordTypeId = rectCo[0].Id,
+            Hospital__c = accountItem1.Id,
+            Department_Class__c = accountItem3.Id
+        );
+        insert accountItem2;
+
+        Contact contact2 = new Contact();
+        contact2.AccountId = accountItem2.Id;
+        contact2.FirstName = '璨换鑰�';
+        contact2.LastName = 'test1缁忛攢鍟�';
+        contact2.AWS_Data_Id__c = 'Test123';
+        insert contact2;
+
+        Lead leadTest = new Lead();
+        leadTest.LastName = 'test';
+        leadTest.Company = 'test';
+        leadTest.hospital__c = accountItem2.Hospital__c;
+        leadTest.Contact_Name__c = contact2.Id;
+        insert leadTest;
+
+        Inquiry_form__c inquiryform = new Inquiry_form__c();
+        inquiryform.Name = '2023062001';
+        inquiryform.Request1__c = '闇�瑕佹姤浠�';
+        inquiryform.Product1__c = '瓒呭0';
+        inquiryform.Hospital__c = accountItem2.Hospital__c;
+        inquiryform.Contact_Name__c = contact2.Id;
+
+        inquiryform.Opportunity_Division__c = '璇环';
+        insert inquiryform;
+
+        String contactDataId = contact2.AWS_Data_Id__c;
+
+        Boolean isClone = true;
+        Boolean isNew = true;
+        Map<string, string> AWSToSobjectEncryptedMap = new Map<String, String>();
+        String AWSToSobjectEncryptedMapJson = JSON.serialize(AWSToSobjectEncryptedMap);
+        PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo('Lead');
+        for (PI_Field_Policy_Detail__c PIDetail : piIntegration.PIDetails) {
+            AWSToSobjectEncryptedMap.put(PIDetail.AWS_Field_API__c, PIDetail.SF_Field_API_Name__c);
+        }
+        Map<string, string> mso = ApexPages.currentPage().getParameters();
+        mso.put('newclone', 'newclone');
+        mso.put('CF00N1000000962np_lkid', null);
+        mso.put('CF00N10000006ps6f_lkid', contact2.Id);
+        mso.put('CF00N10000002CvC5_lkid', accountItem2.Hospital__c);
+        mso.put('CF00N10000002CvC5', 'Company');
+        mso.put('LeadSource', 'LeadSource');
+
+        String InquiryFormId = mso.get('CF00N1000000962np_lkid');
+        String contactId = mso.get('CF00N10000006ps6f_lkid');
+        Boolean isNewMode = false;
+        String recordId = leadTest.Id;
+        String rid = '';
+        ApexPages.StandardController con = new ApexPages.StandardController(leadTest);
+        NewAndEditLeadController lead = new NewAndEditLeadController(con);
+        Inquiry_form__c ifc = lead.ifc;
+        String token = lead.awsToken;
+        String AWSDataId = lead.AWSDataId;
+        String AWSDataIdInquiryForm = lead.AWSDataIdInquiryForm;
+        String contactsInfo = lead.contactsInfo; //key sfid;value awsid
+        Map<String, String> sfIdToAWSIdMap = new Map<String, String>();
+        SObject obj = con.getRecord();
+        obj.put('Hospital_Name__c', mso.get('CF00N10000002CvC5_lkid'));
+        String hospitalId = mso.get('CF00N10000002CvC5_lkid');
+
+        String leadJson = '{"RecordTypeId":"01210000000QiRaAAK","Lead_No__c":"IN-JS-2022040127183","Status":"鏈窡杩�","Hospital_Name__c":"0011000000VAPEt","Department_Class__c":"0011000000V9bh5","Salutation":"","LastName":"***","Contact_Name__c":"0031m00000DHrkV","Cancel_Reason__c":"","Phone":"","Opp_Name_Search__c":"000000000000000","Email":"","Opp_Name__c":"Test","owner_not_automatically_update__c":false,"Purchase_Plan__c":"鏈�(鏃犻绠�)","Lead_Inquiry_form__c":"000000000000000","Opportunity_Division__c":"璇环","LeadSource":"鐢佃瘽","Campaign__c":"000000000000000","urgent__c":false,"SI_PromoteInquiry__c":false,"Request__c":"","Request_Detail__c":"","Opportunity_stage__c":"棰勭畻娌℃湁鎵瑰噯","Close_Forecasted_Date__c":"2022/04/01","Purchase_Reason__c":"鏇存柊","Sales_Method__c":"鍗曚竴鏉ユ簮閲囪喘","Fund_Basis__c":"閵�琛岃硣閲�","Purchase_Type__c":"涓�鑸紩鍚�","Company":"姹熻嫃鐪佷汉姘戝尰闄� 鍛煎惛绉� 鍛煎惛绉�","Name_Encrypted__c":"48a2693f6bf73d16e0abd48caf7fb756","Phone_Encrypted__c":"","Email_Encrypted__c":"","AWS_Data_Id__c":"959584917346320385"}';
+        NewAndEditLeadController.saveLead(leadJson, 'avgwshDFcxAS', false);
+        NewAndEditLeadController.saveLead(leadJson, 'avgwshDFcxAS', true);
+        NewAndEditLeadController.saveLead(leadJson, 'avgwshDFcxAS', isNew);
         Test.stopTest();
     }
 
     static testMethod void testMethod3() {
         Lead leadTest = new Lead();
-        String url = ApexPages.currentPage().getParameters().put('CF00N10000006ps6f_lkid','000000000000000');
-        url = ApexPages.currentPage().getParameters().put('RecordType','01210000000QiRf');
+        String url = ApexPages.currentPage().getParameters().put('CF00N10000006ps6f_lkid', '000000000000000');
+        url = ApexPages.currentPage().getParameters().put('RecordType', '01210000000QiRf');
         Test.startTest();
-        try{
+        try {
             NewAndEditLeadController.ControllerUtil();
-            ApexPages.StandardController con =  new ApexPages.StandardController(leadTest);
+            ApexPages.StandardController con = new ApexPages.StandardController(leadTest);
             NewAndEditLeadController lc = new NewAndEditLeadController(con);
             String jsonString = '["Department_Class__c"]';
-            system.debug('jsonString:'+JSON.deserializeUntyped(jsonString));
+            system.debug('jsonString:' + JSON.deserializeUntyped(jsonString));
             String token = lc.awsToken;
             String AWSDataId = lc.AWSDataId;
             String AWSDataIdInquiryForm = lc.AWSDataIdInquiryForm;
-            String contactId = lc.contactId;//For Lookup field
-            String contactsInfo = lc.contactsInfo ;//key sfid;value awsid
+            String contactId = lc.contactId; //For Lookup field
+            String contactsInfo = lc.contactsInfo; //key sfid;value awsid
             Inquiry_form__c ifc = lc.ifc;
             NewAndEditLeadController.queryAccount(jsonString, '000000000000000');
-        }catch(Exception e){
-            system.debug('Exception from query account:'+e.getMessage());
+        } catch (Exception e) {
+            system.debug('Exception from query account:' + e.getMessage());
         }
         Test.stopTest();
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.9.1