/* * Author: Zhang,Heyang * Created Date: 2023/08/07 * Purpose: TestClass * * */ @isTest private class LexNewAndEditRentalApplyPIPLTest{ public static String raRecordTypeId = Schema.SObjectType.Rental_Apply__c.getRecordTypeInfosByDeveloperName().get('StandardRequest').getRecordTypeId(); public static String rectCoAg = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); public static String rectAg = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); @testSetup static void setupTestData() { // Id rid = UserInfo.getUserId(); Profile p = [select id from Profile where id =:System.Label.ProfileId_SystemAdmin]; User thisUser = [ select Id from User where Id = :UserInfo.getUserId()]; // String sql = 'select '; // DescribeSObjectResult objectType = rid.getSobjectType().getDescribe(); // List objectFields = new List(objectType.fields.getMap().keySet()); // sql += String.join(objectFields, ',') +' from '+'User'+' where id =\''+rid+'\' limit 1'; // User thisUser = Database.query(sql); User u1 = new User(); System.runAs(thisUser){ u1 = new User(Test_staff__c = true); u1.LastName = '_サンブリッジ'; u1.FirstName = 'あZZ'; u1.Alias = 'あ'; u1.Email = 'olympusTest01@sunbridge.com'; u1.Username = 'olympusTest01@sunbridge.com'; u1.CommunityNickname = 'あ'; u1.IsActive = true; u1.EmailEncodingKey = 'ISO-2022-JP'; u1.TimeZoneSidKey = 'Asia/Tokyo'; u1.LocaleSidKey = 'ja_JP'; u1.LanguageLocaleKey = 'ja'; u1.ProfileId = p.id; u1.Job_Category__c = '销售服务'; u1.Province__c = '東京'; u1.ManagerId = thisUser.id; u1.Dept__c = '医疗西南营业本部'; insert u1; } System.runAs(u1){ Profile prof1 = [select Id from Profile where Name ='2S3_销售市场管理者']; List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; List rectCo1 = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 普外科']; List rectCo2 = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 普外科']; if (rectCo.size() == 0) { return; } Account account0 = new Account(RecordTypeId = rectCo[0].Id, AgentCode_Ext__c = '9999909', Name = 'olympus0',Is_Active__c = '有効',Grade__c = '一级'); insert account0; Account account1 = new Account(RecordTypeId = rectCo1[0].Id, AgentCode_Ext__c = '9999900', Name = 'olympus1',ParentId = account0.Id,Hospital__c = account0.Id,Department_Class_Label__c = '普外科',Grade__c = '一级'); insert account1; Account account2 = new Account(RecordTypeId = rectCo2[0].Id, AgentCode_Ext__c = '66666', Name = 'olympus2',ParentId = account1.Id,Department_Class__c = account1.Id,Hospital__c = account0.Id,Is_Active__c = '有効',Grade__c = '一级'); insert account2; Account testRectHpAccounts = new Account(Name = 'testRectHpAccount', RecordTypeId = rectCoAg, Hospital__c = account0.Id,Grade__c = '一级'); insert testRectHpAccounts; Contact testContacts = new Contact(email='jplumber@salesforce.com', firstname='Joe', lastname='Plumber',RecordTypeId = rectAg, AWS_Data_Id__c = 'TestContact', accountId = testRectHpAccounts.id); insert testContacts; Rental_Apply__c ren = new Rental_Apply__c(); ren.RecordTypeId = raRecordTypeId; ren.Name = 'TestRA'; ren.Person_In_Charge__c = u1.Id; ren.applyUser__c = thisUser.Id; ren.Demo_purpose1__c = '产品试用'; ren.demo_purpose2__c ='试用(无询价)'; ren.Product_category__c = 'SP'; ren.Demo_purpose_text__c = 'test'; ren.Request_shipping_day__c = System.today(); ren.direct_send__c = '上门自提'; ren.pickup_time__c = System.now(); ren.Loaner_received_staff__c = 'Test'; ren.Loaner_received_staff_phone__c = '18900092367'; ren.Hospital__c = account0.Id; ren.Strategic_dept__c = account1.Id; ren.Account__c = account2.Id; ren.Loaner_medical_Staff__c = testContacts.Id; ren.Phone_number__c = '18900092367'; ren.Combine_Pack__c = 'Tesyt'; ren.DB_loaner_request__c = '345678o'; ren.status__c = '已批准'; ren.direct_send__c = '紧急情况同城自提配送至医院'; insert ren; PI_Policy_Configuration__c config1 = new PI_Policy_Configuration__c(Sobject_Type__c = 'Rental_Apply__c'); insert config1; PI_Policy_Configuration__c config2 = new PI_Policy_Configuration__c(Sobject_Type__c = 'Rental_Apply__cV2'); 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(){ User thisUser = [ select Id from User where Id = :UserInfo.getUserId()]; System.runAs(thisUser){ Rental_Apply__c ra = [SELECT Id,Name FROM Rental_Apply__c where RecordTypeId =:raRecordTypeId limit 1]; String body='{"size":1,"totalSize":1,"done":true,"queryLocator":null,"entityTypeName":"ProfileLayout","records":[{"attributes":{"type":"ProfileLayout","url":"/services/data/v41.0/tooling/sobjects/ProfileLayout/01G1000000MyT9pEAF"},"Layout":{"attributes":{"type":"Layout","url":"/services/data/v41.0/tooling/sobjects/Layout/00h10000006nKGwAAM"},"Name":"备品借出申请页面布局(窗口)","TableEnumOrId":"01I10000000tNjNEAU"},"ProfileId":"00e10000000Y3o5AAC","Profile":{"attributes":{"type":"Profile","url":"/services/data/v41.0/tooling/sobjects/Profile/00e10000000Y3o5AAC"},"Name":"系统管理员"},"RecordTypeId":"01210000000RHIiAAO"}]}'; Test.setMock(HttpCalloutMock.class, new BaseHttpMock(body,'1','200')); System.Test.startTest(); String record_type_id = raRecordTypeId; String objectType = 'Rental_Apply__c'; List layout = MetaDataUtility.GetRecordTypePageLayout(record_type_id,objectType); LexNewAndEditRentalApplyPIPLController.initData(ra.Id, record_type_id,objectType); LexNewAndEditRentalApplyPIPLController.getOrignalRentalApply(ra.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; } } }