liuyn
2024-03-11 a87f1c3df03078814ee97ad0c8ac200a232419e9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
@IsTest
class LexNewAndEditLeadPIPLControllerTest {
    public static String rectCo = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId();
    public static String rectHp = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId();
    public static String leadNR = Schema.SObjectType.Lead.getRecordTypeInfosByDeveloperName().get('NewDaily_Report').getRecordTypeId();
    public static String rectAg = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId();
    public static User thisUser = [ SELECT Id from User WHERE Id = :UserInfo.getUserId()];
 
    @testSetup 
    static void testSetup() {
        System.runAs(thisUser){
            Account testRectcoAccounts = new Account(Name = 'testRectcoAccount', RecordTypeId = rectHp);
            insert testRectcoAccounts;
            Account testRectHpAccounts = new Account(Name = 'testRectHpAccount', RecordTypeId = rectCo, Hospital__c = testRectcoAccounts.id);
            insert testRectHpAccounts;
            Contact testContacts = new Contact(email='jplumber@salesforce.com', lastname='Plumber Joe',RecordTypeId = rectAg,  AWS_Data_Id__c = 'TestContact', accountId = testRectHpAccounts.id);
            insert testContacts;
            Lead testLeads = new Lead(LastName='testLead', Company='testLead',RecordTypeId = leadNR, Hospital_Name__c = testRectHpAccounts.id, Contact_Name__c = testContacts.Id);
            insert testLeads;
            // PI_Policy_Configuration__c config1 = new PI_Policy_Configuration__c(Sobject_Type__c  = 'Lead');
            // insert config1;
            // PI_Policy_Configuration__c config2 = new PI_Policy_Configuration__c(Sobject_Type__c  = 'LeadV2');
            // insert config2;
            // PI_Policy_Configuration__c config3 = new PI_Policy_Configuration__c(Sobject_Type__c  = 'Contact');
            // insert config3;
            // PI_Field_Policy_Detail__c pfpd1 = new PI_Field_Policy_Detail__c(AWS_Field_API__c = 'phone1', SF_Field_API_Name__c = 'Phone1',PI_Policy_Configuration__c = config1.Id, Enable_Encrypt__c=true);
            // insert pfpd1;
            // PI_Field_Policy_Detail__c pfpd2 = new PI_Field_Policy_Detail__c(AWS_Field_API__c = 'phone2', SF_Field_API_Name__c = 'Phone2',PI_Policy_Configuration__c = config2.Id, Enable_Encrypt__c=true);
            // insert pfpd2;
            // PI_Field_Policy_Detail__c pfpd3 = new PI_Field_Policy_Detail__c(AWS_Field_API__c = 'phone2', SF_Field_API_Name__c = 'Phone2',PI_Policy_Configuration__c = config3.Id, Enable_Encrypt__c=true);
            // insert pfpd3;
        }
    }
 
    @isTest
    static void tesMethod1(){
        System.runAs(thisUser){
            Account acct = [SELECT Id FROM Account WHERE RecordTypeId =:rectCo LIMIT 1];
            Contact cont = [SELECT Name FROM Contact WHERE RecordTypeId =:rectAg LIMIT 1];
            Lead lea = [SELECT Id FROM Lead WHERE RecordTypeId =:leadNR LIMIT 1];
            // PI_Policy_Configuration__c prc1 = [SELECT Sobject_Type__c FROM PI_Policy_Configuration__c WHERE Sobject_Type__c ='Lead' LIMIT 1];
            // PI_Policy_Configuration__c prc2 = [SELECT Sobject_Type__c FROM PI_Policy_Configuration__c WHERE Sobject_Type__c ='LeadV2' LIMIT 1];
            List<Profile> p = [SELECT Id FROM Profile WHERE Name = '系统管理员'];
            if(p.size() == 0) {
                p = [SELECT Id FROM Profile WHERE Name = 'System Administrator'];
            }
            Id systemAdminProfileId = p[0].Id;
            String body='{"size":1,"totalSize":1,"done":true,"queryLocator":null,"entityTypeName":"ProfileLayout","records":[{"attributes":{"type":"ProfileLayout","url":"/services/data/v41.0/tooling/sobjects/ProfileLayout/01G10000008lvP1EAI"},"Layout":{"attributes":{"type":"Layout","url":"/services/data/v41.0/tooling/sobjects/Layout/00h10000009lIyDAAU"},"Name":"购买意向-日报-OBSAP","TableEnumOrId":"Lead"},"ProfileId":"'+systemAdminProfileId+'","Profile":{"attributes":{"type":"Profile","url":"/services/data/v41.0/tooling/sobjects/Profile/'+systemAdminProfileId+'"},"Name":"系统管理员"},"RecordTypeId":"'+rectCo+'"}]}';
            // String objectType = prc1.Sobject_Type__c;
            // String objectTypeV2 = prc2.Sobject_Type__c;
            String objectType = 'Lead';
            Test.setMock(HttpCalloutMock.class, new BaseHttpMock(body,'1','200'));
            System.Test.startTest();
            List<Metadata.LayoutSection> layout = MetaDataUtility.GetRecordTypePageLayout(leadNR,objectType);
            // PIHelper.PIIntegration piIntegration1 = PIHelper.getPIIntegrationInfo(objectType);
            // PIHelper.PIIntegration piIntegration2 = PIHelper.getPIIntegrationInfo(objectTypeV2);
            // Map<String, String> AWSToSobjectNonEncryptedMap = new Map<String, String>();
            // List<String> AWSToSobjectNonEncryptedMapKeySet = new List<String>();
            // for (PI_Field_Policy_Detail__c PIDetail : piIntegration1.PIDetails) {
            //     AWSToSobjectNonEncryptedMap.put(PIDetail.AWS_Field_API__c, PIDetail.SF_Field_API_Name__c);
            //     AWSToSobjectNonEncryptedMapKeySet.add(PIDetail.AWS_Field_API__c);
            // }
            LexNewAndEditBasePIPLController.initData(lea.Id,leadNR,objectType);
            Map<String, String> expected = new Map<String, String>();
            expected.put('phone1','Phone1');
            // System.assertEquals(expected,AWSToSobjectNonEncryptedMap);
            LexNewAndEditLeadPIPLController.initData(lea.Id, leadNR,objectType);
            LexNewAndEditLeadPIPLController.queryAccount('["Department_Class__c"]',acct.Id);
            LexNewAndEditLeadPIPLController.searchContactInit(acct.Id, cont.Name); 
            System.Test.stopTest(); 
        }
    }
    
    public class BaseHttpMock implements HttpCalloutMock {
        String body ='';
        String status = '';
        String statusCode = '';
        public BaseHttpMock(String body,String status,String statusCode){
            this.body = body;
            this.status = status;
            this.statusCode = statusCode;
        }
        public HTTPResponse respond(HTTPRequest req) {
            HttpResponse res = new HttpResponse();
            res.setHeader('Content-Type', 'application/json');
            res.setBody(body); 
            res.setStatus('OK');
            res.setStatusCode(200);
            return res;
        }
    }
 
    // @isTest
    // static void tesMethod2(){
    //     System.runAs(thisUser){
    //         System.Test.startTest();
    //         LexNewAndEditLeadPIPLController.getContactAWS();
    //         String accountId = '';
    //         List<String> conAWSIds = new List<String>();
    //         String searchKeyWord = '';
    //         LexNewAndEditLeadPIPLController.searchContactInitV2(accountId,conAWSIds,searchKeyWord);
    //         LexNewAndEditLeadPIPLController.getNoPIContact('','');
    //         System.Test.stopTest(); 
    //     }
    // }
}