@isTest private class StraightBackAddressControllerTest { private static Repair__c rpr { get; set; } @TestSetup static void makeData(){ List strList = new List(); strList.add('Address__c'); strList.add('Contact'); TestDataUtility.CreatePIPolicyConfigurations(strList); } @isTest static void testMethod1() { List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; if (rectCo.size() == 0) { return; } List rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 消化科']; if (rectSct.size() == 0) { return; } List rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 消化科']; if (rectDpt.size() == 0) { return; } //省 Address_Level__c alc1 = new Address_Level__c( Name = '北京市' ); insert new Address_Level__c[] {alc1}; Address_Level2__c alc11 = new Address_Level2__c( Name = '顺义区',Address_Level__c = alc1.Id,Level1_Name__c='北京市' ); Address_Level2__c alc12 = new Address_Level2__c( Name = '昌平区',Address_Level__c = alc1.Id,Level1_Name__c='北京市' ); insert new Address_Level2__c[] {alc11,alc12}; // Account company = new Account(); company.RecordTypeId = rectCo[0].Id; company.Name = '北京医院'; company.State_Master__c = alc1.id; company.City_Master__c = alc11.id; upsert company; Account section = [Select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; Account depart = new Account(); depart.RecordTypeId = rectDpt[0].Id; depart.Name = '北京朝阳医院'; depart.State_Master__c = alc1.id; depart.City_Master__c = alc11.id; depart.Department_Name__c = 'NFM104TestDepart'; depart.ParentId = section.Id; depart.Department_Class__c = section.Id; depart.Hospital__c = company.Id; upsert depart; company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id]; depart = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart.Id]; Product2 prd1 = new Product2(); prd1.ProductCode_Ext__c = 'NFM104Prd1'; prd1.ProductCode = 'NFM104Prd1'; prd1.Repair_Product_Code__c = 'NFM104Prd1_RP'; prd1.Name = 'NFM104Prd1'; prd1.Manual_Entry__c = false; insert prd1; Asset ast = new Asset(); ast.Name = 'NFM104Ast1'; ast.AccountId = depart.Id; ast.Department_Class__c = section.Id; ast.Hospital__c = company.Id; ast.Product2Id = prd1.Id; ast.SerialNumber = 'NFM104SerialNumber'; ast.Guarantee_period_for_products__c = Date.today(); ast.InstallDate = Date.today(); insert ast; Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; User us = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', Work_Location__c = '北京', 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 = p.id); us.Job_Category__c = '销售服务'; insert us; rpr = new Repair__c(); rpr.SAPRepairNo__c = 'NFM104Rpr1'; rpr.Account__c = depart.Id; rpr.Department_Class__c = section.Id; rpr.Hospital__c = company.Id; rpr.Delivered_Product__c = ast.Id; rpr.SalesOfficeCode_selection__c = '北京'; rpr.Status__c = '1.受理完毕'; rpr.Incharge_Staff__c = us.Id; rpr.Repair_Detail__c = 'test'; rpr.On_site_repair__c = '直送SORC修理'; rpr.Returns_Product_way__c = '返送医院'; rpr.Address_Type_Index__c=1; insert rpr; Contact contact2 = new Contact(); contact2.AccountId = depart.Id; contact2.FirstName = '小明'; contact2.LastName = 'test1经销商'; insert contact2; Address__c ascc = new Address__c(); ascc.Address_Classification__c = '医院'; ascc.Customer__c = depart.Id; ascc.Contacts__c = contact2.id; ascc.Telephone__c = '123123'; ascc.Province__c = alc1.id; ascc.City__c = alc11.id; ascc.Detailed_Address__c = '北京市顺义区西海洪村'; insert ascc; //测试构造器里面的代码 PageReference peg = new PageReference('/apex/StraightBackAddress?id='+rpr.id); System.Test.setCurrentPage(peg); StraightBackAddressController sbac = new StraightBackAddressController(); sbac.txtName = '北京'; sbac.txtAddress = '市'; sbac.typeText = '医院'; sbac.UpdId = ascc.id; sbac.adoptId = ascc.id; sbac.init();//页面初始化方法 sbac.onEditor();//修改按钮方法 sbac.onCopy();//复制按钮方法 //sbac.optHospitalId = '0011000000V9Tcx'; //sbac.onChJudge(); sbac.insUpdData.Contacts__c = null; sbac.insUpdData.Create_Contacts__c = '王五'; sbac.save(); sbac.adoptSave(); sbac.searchBtn(); StraightBackAddressController ss = new StraightBackAddressController(); ss.txtName = '经销商'; ss.txtAddress = '哈哈'; sbac.typeText = '办事处'; ss.UpdId = ascc.id; ss.adoptId = ascc.id; ss.init();//页面初始化方法 ss.onEditor();//修改按钮方法 ss.onCopy();//复制按钮方法 ss.insUpdData.Address_Classification__c = ''; ss.insUpdData.Province__c = null; ss.insUpdData.City__c = null; ss.insUpdData.Telephone__c = null; ss.insUpdData.Detailed_Address__c = null; ss.insUpdData.Customer__c = null; ss.save(); ss.searchBtn(); } /** * 为了方便前段table获取值 */ class AddressData { //数据 public Address__c address { get; set; } //编辑按钮是否展示 public String canEdit { get; private set; } public AddressData(Address__c record) { address = record; canEdit = ''; } //主要是用于第一个展示和复选框是否显示 public AddressData(Account record,String disCanEdit,String AccType) { this.address = new Address__c( Address_Classification__c = AccType, Customer__c= record.id, Telephone__c = record.phone, Province__c = record.State_Master__c, City__c = record.City_Master__c, Detailed_Address__c = record.Address__c); canEdit = disCanEdit; } } }