@isTest private class rollupToRepairBatchTest { // AWSServiceTool2没上线就把这部分注释 start 20220408 @TestSetup static void setup(){ TestDataUtility.CreatePIPolicyConfigurations(new string[]{'Agency_Contact__c','Contact'}); } @isTest static void Test1(){ Test.setMock(HttpCalloutMock.class, new HttpMock()); List lra = new List(); 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 lra = new List(); 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 lra = new List(); // 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; // } } } // AWSServiceTool2没上线就把这部分注释 end // 202220531 ljh end private static Id pricebookId = ControllerUtil.getStandardPricebook().Id; // @TestSetup @isTest private static void SetUP01() { // システム管理者 User user = new User(Test_staff__c = true); user.LastName = '_サンブリッジ'; user.FirstName = 'う'; user.Alias = 'う'; user.Email = 'olympusTest03@sunbridge.com'; user.Username = 'olympusTest03@sunbridge.com'; user.CommunityNickname = 'う'; user.IsActive = true; user.EmailEncodingKey = 'ISO-2022-JP'; user.TimeZoneSidKey = 'Asia/Tokyo'; user.LocaleSidKey = 'ja_JP'; user.LanguageLocaleKey = 'ja'; user.ProfileId = System.Label.ProfileId_SystemAdmin; user.Job_Category__c = '销售推广'; user.Province__c = '上海市'; user.Dept__c = '医疗华北营业本部'; user.Use_Start_Date__c = Date.today().addMonths(-6); user.SalesManager__c = UserInfo.getUserId(); user.BuchangApprovalManagerSales__c = UserInfo.getUserId(); user.JingliApprovalManager__c = UserInfo.getUserId(); user.BuchangApprovalManager__c = UserInfo.getUserId(); user.ZongjianApprovalManager__c = UserInfo.getUserId(); user.JingliEquipmentManager__c = UserInfo.getUserId(); user.Buzhang_Equipment_Manager__c = UserInfo.getUserId(); System.runAs(user) { StaticParameter.rentalApplyIsRunning = true; StaticParameter.EscapeNFM001AgencyContractTrigger = true; ControllerUtil.EscapeNFM001Trigger = true; // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE DeveloperName = 'HP'].id; hospital.Name = 'test hospital'; insert hospital; // 戦略科室を得る List strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_GI']; // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE DeveloperName = 'Department_GI'].id; dep.Name = 'test dep'; dep.ParentId = strategicDep[0].Id; dep.Department_Class__c = strategicDep[0].Id; dep.Hospital__c = hospital.Id; insert dep; //联系人 Contact core = new Contact(email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = dep.id); insert core; // 製品を作る Product2 productA = new Product2( Name = 'テスト商品', Fixture_Model_No__c = 'n01'); insert productA; // 価格表エントリを作成する PricebookEntry entry = new PricebookEntry( Pricebook2Id = pricebookId, Product2Id = productA.Id); entry.UnitPrice = 0; entry.IsActive = true; entry.UseStandardPrice = false; entry.CurrencyIsoCode = 'CNY'; entry.Product2Id = productA.Id; insert entry; // 納入機器を作成する Asset asset = new Asset(); asset.Name = 'テスト機器'; asset.AccountId = dep.Id; asset.Department_Class__c = strategicDep[0].Id; asset.Hospital__c = hospital.Id; asset.SerialNumber = 'testserial'; insert asset; Fixture_Set__c fixtures1 = new Fixture_Set__c(); fixtures1.Name = 'set1'; fixtures1.Loaner_name__c = 'name1'; insert new Fixture_Set__c[] {fixtures1}; Fixture_Set_Detail__c fsd1 = new Fixture_Set_Detail__c(); fsd1.Product2__c = productA.Id; fsd1.Fixture_Set__c = fixtures1.Id; fsd1.Is_Body__c = true; fsd1.Is_Optional__c = false; fsd1.UniqueKey__c = fixtures1.Id + ':' + productA.Id; fsd1.SortInt__c = 1; insert new Fixture_Set_Detail__c[] {fsd1}; // 修理做成 Repair__c repair01 = new Repair__c(); repair01.Account__c = dep.Id; repair01.Department_Class__c = strategicDep[0].Id; repair01.Hospital__c = hospital.Id; repair01.Delivered_Product__c = asset.Id; repair01.SERVICE_CONTRACT_JUDEGE_DAY__C = Date.today().addDays(0); // 维修合同判断日がサービス契約の中間辺りの日付 insert repair01; Rental_Apply__c ra = new Rental_Apply__c(); ra.Name = 'test'; ra.Status__c = FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Cao_An_Zhong.ordinal()); ra.Request_shipping_day__c = Date.today().addDays(3); ra.Hope_Lonaer_date_Num__c = 1; ra.Request_return_day__c = Date.today().addDays(8); ra.Request_approval_time__c = datetime.now().addDays(99); ra.Person_In_Charge__c = user.Id; ra.applyUser__c = user.Id; ra.SalesManager__c = user.Id; ra.Repair__c = repair01.Id; ra.Demo_purpose1__c = '其他'; ra.Demo_purpose2__c = '其他'; ra.Account__c = dep.Id; ra.Strategic_dept__c = dep.Id; ra.Hospital__c = hospital.Id; ra.Loaner_medical_Staff__c = core.Id; ra.Phone_number__c = '12222222222'; ra.Request_approval_time__c = datetime.now().addDays(9); insert ra; Rental_Apply_Equipment_Set__c es1 = new Rental_Apply_Equipment_Set__c(); es1.Rental_Apply__c = ra.Id; es1.Fixture_Set__c = fixtures1.Id; es1.IndexFromUniqueKey__c = 1; es1.UniqueKey__c = '1:' + fixtures1.Id + ':1'; insert new Rental_Apply_Equipment_Set__c[] {es1}; //创建借出配套明细 Rental_Apply_Equipment_Set_Detail__c esd1 = new Rental_Apply_Equipment_Set_Detail__c(); esd1.Rental_Apply__c = ra.Id; esd1.Fixture_Set_Detail__c = fsd1.Id; esd1.Rental_Num__c = 1; esd1.Queue_Number__c = 0; esd1.Rental_Apply_Equipment_Set__c = es1.Id; esd1.Salesdepartment_before__c = '1.华北营业本部'; esd1.Internal_asset_location_before__c = '北京 备品中心'; esd1.Product_category_text__c = 'GI'; esd1.Equipment_Type_text__c = '产品试用'; esd1.IndexFromUniqueKey__c = 1; esd1.UniqueKey__c = '1:' + es1.Id + ':' + fsd1.Id + ':1'; esd1.Is_Body__c = true; esd1.Shippment_loaner_time__c = datetime.now().addDays(99); insert esd1; } } // 测试修理有效申请 @isTest private static void myUnitTestRepair() { SetUP01(); System.Test.startTest(); Database.executeBatch(new rollupToRepairBatch(), 100); System.Test.stopTest(); rollupToRepairBatch batch = new rollupToRepairBatch(); batch.failedCount ++; batch.sendFieldEmail(); } @isTest private static void myUnitTestRepair1() { SetUP01(); System.Test.startTest(); Database.executeBatch(new rollupToRepairBatch(true), 100); System.Test.stopTest(); } @isTest private static void myUnitTestRepair2() { SetUP01(); System.Test.startTest(); Database.executeBatch(new rollupToRepairBatch(''), 100); System.Test.stopTest(); } @isTest private static void myUnitTestRepair3() { SetUP01(); list IDlist = new list(); System.Test.startTest(); Database.executeBatch(new rollupToRepairBatch(IDlist), 100); System.Test.stopTest(); } }