高章伟
2023-03-03 d8dc84a3d56df839895f1c417a4d9cbee763d262
force-app/main/default/classes/OpportunityAndContactDailyUpdateTest.cls
@@ -1,8 +1,11 @@
@isTest
private class OpportunityAndContactDailyUpdateTest {
    static testMethod void updaue() {
        OpportunityAndContactDailyUpdateBatch.test();//先调用这个,然后继续补充测试类
   }
   @testsetup
   private static void setup (){
    TestDataUtility.CreatePIPolicyConfigurations(new string[]{'Agency_Contact__c','Contact'});
          string profid = '00e10000000Y3o5';
      string rectHpID = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId();
      List<String> classDeptStr = new List<String>();
@@ -25,11 +28,112 @@
              }
           }
        }
        User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', CommunityNickname = 'hpOwner', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = profid);
        insert hpOwner;
        //User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', CommunityNickname = 'hpOwner', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = profid);
        //insert hpOwner;
        List<User> insertUser = new List<User>();
        //user UserET = New User(
        //    Alias = 'ET_User',
        //    Email='ET_User@testorg.com',
        //    EmailEncodingKey='UTF-8',
        //    LastName='testUserET',
        //    Firstname ='ET',
        //    LanguageLocaleKey='zh_CN',
        //    LocaleSidKey='zh_CN',
        //    ProfileId = System.Label.ProfileId_SystemAdmin,
        //    TimeZoneSidKey='Asia/Shanghai',
        //    UserName='testUserET@testorg.com');
        //insertUser.add(UserET);
        //user UserBF = New User(
        //    Alias = 'BF_User',
        //    Email='BF_User@testorg.com',
        //    EmailEncodingKey='UTF-8',
        //    LastName='testUserBF',
        //    Firstname ='BF',
        //    LanguageLocaleKey='zh_CN',
        //    LocaleSidKey='zh_CN',
        //    ProfileId = System.Label.ProfileId_SystemAdmin,
        //    TimeZoneSidKey='Asia/Shanghai',
        //    UserName='testUserBF@testorg.com');
        //insertUser.add(UserBF);
        //user UserGS = New User(
        //    Alias = 'SP_User',
        //    Email='SP_User@testorg.com',
        //    EmailEncodingKey='UTF-8',
        //    LastName='testUserGS',
        //    Firstname ='GS',
        //    LanguageLocaleKey='zh_CN',
        //    LocaleSidKey='zh_CN',
        //    ProfileId = System.Label.ProfileId_SystemAdmin,
        //    TimeZoneSidKey='Asia/Shanghai',
        //    UserName='testUserGS@testorg.com');
        //insertUser.add(UserGS);
        //user UserURO = New User(
        //    Alias = 'URO_User',
        //    Email='URO_User@testorg.com',
        //    EmailEncodingKey='UTF-8',
        //    LastName='testUserURO',
        //    Firstname ='URO',
        //    LanguageLocaleKey='zh_CN',
        //    LocaleSidKey='zh_CN',
        //    ProfileId = System.Label.ProfileId_SystemAdmin,
        //    TimeZoneSidKey='Asia/Shanghai',
        //    UserName='testUserURO@testorg.com');
        //insertUser.add(UserURO);
        //user UserGYN = New User(
        //    Alias = 'GYN_User',
        //    Email='GYN_User@testorg.com',
        //    EmailEncodingKey='UTF-8',
        //    LastName='testUserGYN',
        //    Firstname ='GYN',
        //    LanguageLocaleKey='zh_CN',
        //    LocaleSidKey='zh_CN',
        //    ProfileId = System.Label.ProfileId_SystemAdmin,
        //    TimeZoneSidKey='Asia/Shanghai',
        //    UserName='testUserGYN@testorg.com');
        //insertUser.add(UserGYN);
        //user UserENT = New User(
        //    Alias = 'ENT_User',
        //    Email='ENT_User@testorg.com',
        //    EmailEncodingKey='UTF-8',
        //    LastName='testUserENT',
        //    Firstname ='ENT',
        //    LanguageLocaleKey='zh_CN',
        //    LocaleSidKey='zh_CN',
        //    ProfileId = System.Label.ProfileId_SystemAdmin,
        //    TimeZoneSidKey='Asia/Shanghai',
        //    UserName='testUserENT@testorg.com');
        //insertUser.add(UserENT);
        //user UserFSE = New User(
        //    Alias = 'FSEUser',
        //    Email='FSE_User@testorg.com',
        //    EmailEncodingKey='UTF-8',
        //    LastName='testUserFSE',
        //    Firstname ='FSE',
        //    LanguageLocaleKey='zh_CN',
        //    LocaleSidKey='zh_CN',
        //    ProfileId = System.Label.ProfileId_SystemAdmin,
        //    TimeZoneSidKey='Asia/Shanghai',
        //    UserName='testUserFSE@testorg.com');
        //insertUser.add(UserFSE);
        //insert insertUser;
        //integer i = 0;
        // Map<String,String> NameTOno = New Map<String,String>();
        //for(user usr : insertUser){
        //    NameTOno.put(usr.Id, usr.Employee_No__c);
        //}
        User thisUser = [select Id from User where Id = :UserInfo.getUserId() ];
        System.runAs ( thisUser ){
             List<User> insertUser = new List<User>();
        user UserGI = New User(
            Alias = 'GI_User',
@@ -43,116 +147,20 @@
            TimeZoneSidKey='Asia/Shanghai',
            UserName='testUserGI@testorg.com');
        insertUser.add(UserGI);
        user UserET = New User(
            Alias = 'ET_User',
            Email='ET_User@testorg.com',
            EmailEncodingKey='UTF-8',
            LastName='testUserET',
            Firstname ='ET',
            LanguageLocaleKey='zh_CN',
            LocaleSidKey='zh_CN',
            ProfileId = System.Label.ProfileId_SystemAdmin,
            TimeZoneSidKey='Asia/Shanghai',
            UserName='testUserET@testorg.com');
        insertUser.add(UserET);
        user UserBF = New User(
            Alias = 'BF_User',
            Email='BF_User@testorg.com',
            EmailEncodingKey='UTF-8',
            LastName='testUserBF',
            Firstname ='BF',
            LanguageLocaleKey='zh_CN',
            LocaleSidKey='zh_CN',
            ProfileId = System.Label.ProfileId_SystemAdmin,
            TimeZoneSidKey='Asia/Shanghai',
            UserName='testUserBF@testorg.com');
        insertUser.add(UserBF);
        user UserGS = New User(
            Alias = 'SP_User',
            Email='SP_User@testorg.com',
            EmailEncodingKey='UTF-8',
            LastName='testUserGS',
            Firstname ='GS',
            LanguageLocaleKey='zh_CN',
            LocaleSidKey='zh_CN',
            ProfileId = System.Label.ProfileId_SystemAdmin,
            TimeZoneSidKey='Asia/Shanghai',
            UserName='testUserGS@testorg.com');
        insertUser.add(UserGS);
        user UserURO = New User(
            Alias = 'URO_User',
            Email='URO_User@testorg.com',
            EmailEncodingKey='UTF-8',
            LastName='testUserURO',
            Firstname ='URO',
            LanguageLocaleKey='zh_CN',
            LocaleSidKey='zh_CN',
            ProfileId = System.Label.ProfileId_SystemAdmin,
            TimeZoneSidKey='Asia/Shanghai',
            UserName='testUserURO@testorg.com');
        insertUser.add(UserURO);
        user UserGYN = New User(
            Alias = 'GYN_User',
            Email='GYN_User@testorg.com',
            EmailEncodingKey='UTF-8',
            LastName='testUserGYN',
            Firstname ='GYN',
            LanguageLocaleKey='zh_CN',
            LocaleSidKey='zh_CN',
            ProfileId = System.Label.ProfileId_SystemAdmin,
            TimeZoneSidKey='Asia/Shanghai',
            UserName='testUserGYN@testorg.com');
        insertUser.add(UserGYN);
        user UserENT = New User(
            Alias = 'ENT_User',
            Email='ENT_User@testorg.com',
            EmailEncodingKey='UTF-8',
            LastName='testUserENT',
            Firstname ='ENT',
            LanguageLocaleKey='zh_CN',
            LocaleSidKey='zh_CN',
            ProfileId = System.Label.ProfileId_SystemAdmin,
            TimeZoneSidKey='Asia/Shanghai',
            UserName='testUserENT@testorg.com');
        insertUser.add(UserENT);
        user UserFSE = New User(
            Alias = 'FSEUser',
            Email='FSE_User@testorg.com',
            EmailEncodingKey='UTF-8',
            LastName='testUserFSE',
            Firstname ='FSE',
            LanguageLocaleKey='zh_CN',
            LocaleSidKey='zh_CN',
            ProfileId = System.Label.ProfileId_SystemAdmin,
            TimeZoneSidKey='Asia/Shanghai',
            UserName='testUserFSE@testorg.com');
        insertUser.add(UserFSE);
        insert insertUser;
        integer i = 0;
         Map<String,String> NameTOno = New Map<String,String>();
        for(user usr : insertUser){
            NameTOno.put(usr.Id, usr.Employee_No__c);
        }
      Account Hospital = new Account(
                        name = 'Test Hospital',
                        RecordTypeId = rectHpId,
                        FSE_Main__c = UserFSE.Id,
                        ENT_owner_ID__c = UserENT.Id,
                        GYN_owner__c = UserGYN.Id,
                        URO_owner_ID__c = UserURO.Id,
                        SP_Main__c = UserGS.Id,
                        BF_owner__c = UserBF.Id,
                        ET_owner__c = UserET.Id,
                        GI_Main__c = UserGI.Id,
                           Is_Active__c  ='有効'
                        FSE_Main__c = thisUser.Id,
                        ENT_owner_ID__c = thisUser.Id,
                        GYN_owner__c = thisUser.Id,
                        URO_owner_ID__c = thisUser.Id,
                        SP_Main__c = thisUser.Id,
                        BF_owner__c = thisUser.Id,
                        ET_owner__c = thisUser.Id,
                        GI_Main__c = thisUser.Id,
                           Is_Active__c  ='有効',
                                FSE_SP_Main_Leader__c  = thisUser.Id
                        );
      insert Hospital;
@@ -162,18 +170,18 @@
        where Parent.Id = :Hospital.Id and Department_Class_Label__c = '呼吸科'];
        Account depart = new Account();
        depart.RecordTypeId = '01210000000QfmR';
        depart.Name         = '*';
        depart.Name         = '消化科';
        depart.Department_Name__c  = '診療科';
        depart.ParentId            = dcs[0].Id;
        depart.Department_Class__c = dcs[0].Id;
        depart.Hospital__c         = Hospital.Id;
        depart.OwnerId             = UserGS.Id;
        depart.OwnerId             = thisUser.Id;
        insert depart;
        Contact core = new Contact(email='jplumber@salesforce.com',
        firstname='Joe',
        lastname='Plumber',
        accountid=depart.id);
        insert core;
        //Contact core = new Contact(email='jplumber@salesforce.com',
        //firstname='Joe',
        //lastname='Plumber',
        //accountid=depart.id);
        //insert core;
        Opportunity target = new Opportunity( Name = 'aiueo', StageName = 'contact', CloseDate = Date.today(),
                                            accountid=depart.id);
        target.Trade__c = '内貿';
@@ -181,11 +189,123 @@
        target.Wholesale_Price__c = 9000;
        target.Sales_Root__c = 'AAA';
        insert target;
        Inquiry_form__c inf =new Inquiry_form__c();
        inf.Hospital_Name__c = depart.id;
        inf.OwnerId  = insertUser[0].Id;
        inf.Name = 'test';
        inf.Request1__c = '服务对应';
        inf.Product1__c = '超声';
        insert inf;
        Inquiry_form__c inf1 =new Inquiry_form__c();
        inf1.Hospital_Name__c = depart.id;
        inf1.Hospital__c = Hospital.Id;
        inf1.OwnerId  = thisUser.Id;
        inf1.Name = 'test';
        inf1.Request1__c = '服务对应';
        inf1.Product1__c = '超声';
        inf1.FSE_Owner__c = insertUser[0].Id;
        insert inf1;
    }
   }
  @isTest
    static void Test1(){
        Test.setMock(HttpCalloutMock.class, new HttpMock());
        List<Agency_Contact__c> lra = new List<Agency_Contact__c>();
        lra.add(new Agency_Contact__c(
        ));
        insert lra;
        Test.startTest();
        //system.debug(PIHelper.getPIIntegrationInfo('Agency_Contact__c').newEncryptUrl);
        AWSServiceTool2.EncryptPushCore(Json.serialize(lra),'Agency_Contact__c');
        AWSServiceTool2.EncryptPushFuture(null,null);
        Test.stopTest();
    }
  @isTest
    static void Test2(){
        Test.setMock(HttpCalloutMock.class, new HttpMock());
        List<Agency_Contact__c> lra = new List<Agency_Contact__c>();
        lra.add(new Agency_Contact__c(
            Aws_Data_Id__c = '123456'
        ));
        insert lra;
        Test.startTest();
        //system.debug(PIHelper.getPIIntegrationInfo('Agency_Contact__c').newEncryptUrl);
        AWSServiceTool2.EncryptPushCore(Json.serialize(lra),'Agency_Contact__c');
        Test.stopTest();
    }
    @isTest
    static void Test3(){
        Test.setMock(HttpCalloutMock.class, new HttpMock());
        Test.startTest();
        AWSServiceTool2.EncryptPushData(new string[]{'0031000000O4Cff'});
        Test.stopTest();
    }
  //@isTest
  //  static void Test2(){
  //      Test.setMock(HttpCalloutMock.class, new HttpMock());
  //      List<Agency_Contact__c> lra = new List<Agency_Contact__c>();
  //      lra.add(new Agency_Contact__c(
  //          Id = 'a2R1m0000007BPD',
  //          Aws_Data_Id__c = '123456'
  //      ));
  //      Test.startTest();
  //      //system.debug(PIHelper.getPIIntegrationInfo('Agency_Contact__c').newEncryptUrl);
  //      AWSServiceTool2.EncryptPushCore(Json.serialize(lra),'Agency_Contact__c');
  //      Test.stopTest();
  //  }
    class HttpMock implements HttpCalloutMock{
        public HTTPResponse respond(HTTPRequest request) {
        // 创建一个假的回应
        System.debug('------------------------------------------------------');
        HttpResponse response = new HttpResponse();
        string body = '';
        system.debug(request.getEndpoint());
        if(request.getEndpoint().contains('token')){
            system.debug('url=token');
            response.setHeader('Content-Type', 'application/json');
      body='{ "message": "", "object": "freqfewqfewewfewfew", "status": "", "success": true, "timestamp": 0, "txId": "" }';
        } else if(request.getEndpoint().contains('insert')){
            system.debug('url=Insert');
            response.setHeader('Content-Type', 'application/json');
      body='{ "message": "", "object": [ { "dataId": "123456", "directShippmentAddress": "", "directShippmentAddressEncrypt": "", "isDelete": 0, "phoneNumber": "", "phoneNumberEncrypt": "", "sfRecordId": "a2R1m0000007BPD" } ], "status": "", "success": true, "timestamp": 0, "txId": "" }';
        } else if(request.getEndpoint().contains('update')){
            system.debug('url=update');
            response.setHeader('Content-Type', 'application/json');
      body='{ "message": "", "object": [ { "dataId": "123456", "directShippmentAddress": "", "directShippmentAddressEncrypt": "", "isDelete": 0, "phoneNumber": "", "phoneNumberEncrypt": "", "sfRecordId": "a2R1m0000007BPD" } ], "status": "", "success": true, "timestamp": 0, "txId": "" }';
        } else{
        }
        response.setBody(body);
        response.setStatus('OK');
        response.setStatusCode(200);
        return response;
        // }
    }
    }
    static testMethod void testMethod1() {
        Test.setMock(HttpCalloutMock.class, new HttpMock());
            List<Agency_Contact__c> lra = new List<Agency_Contact__c>();
            lra.add(new Agency_Contact__c(
                Id = 'a2R1m0000007BPD',
                Aws_Data_Id__c = '123456'
            ));
            AWSServiceTool2.EncryptPushCore(Json.serialize(lra),'Agency_Contact__c');
       list<account> acclist = [select id from account where name ='Test Hospital'];
       Id execBTId = Database.executeBatch(new OpportunityAndContactDailyUpdateBatch(), 5);
       execBTId = Database.executeBatch(new OpportunityAndContactDailyUpdateBatch('1.华北'), 5);