@isTest private class AssetRecordTypeUpdTriggerTest { static Maintenance_Contract__c createMaintenanceContract( Account hospital, Account strategicDep, Account dep) { Maintenance_Contract__c contract = new Maintenance_Contract__c(); contract.Name = 'tect contract'; contract.status__c ='契約'; contract.Maintenance_Contract_No__c = 'Kami_Contract_No'; contract.Contract_Conclusion_Date__c = Date.today(); contract.Hospital__c = hospital.Id; contract.Department_Class__c = strategicDep.Id; contract.Department__c = dep.Id; contract.Contract_Start_Date__c = Date.today().addDays( -10); // 10日前 contract.Contract_End_Date__c = Date.today().addDays( 5); // 5日後 contract.SalesOfficeCode_selection__c = '北京RC'; insert contract; return contract; } static Maintenance_Contract_Asset__c createMiddleTable( Asset asset, Maintenance_Contract__c contract) { // 中間テーブルを設ける Maintenance_Contract_Asset__c middleTable = new Maintenance_Contract_Asset__c(); middleTable.Asset__c = asset.Id; middleTable.Maintenance_Contract__c = contract.id; insert middleTable; return middleTable; } static testMethod void testUpdate() { 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, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN ('診療科 消化科', '診療科 呼吸科') order by Name desc]; if (rectDpt.size() == 0) { return; } List rectAs = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Asset' and Name = '备品']; if (rectAs.size() == 0) { return; } // insert hospital Account company1 = new Account(); company1.RecordTypeId = rectCo[0].Id; company1.Name = '病院テスト1'; List hps = new Account[]{company1}; insert hps; List dc1s = [Select Id, Name, Department_Class_Label__c, Sys_Dept_Name_Change_Chk__c from Account where Parent.Id = :company1.Id order by Department_Class_Label__c]; Account depart1 = new Account(); depart1.RecordTypeId = rectDpt[0].Id; depart1.Name = '*'; depart1.Department_Name__c = '診療科1'; depart1.ParentId = dc1s[0].Id; depart1.Department_Class__c = dc1s[0].Id; depart1.Hospital__c = company1.Id; insert new Account[] {depart1}; List prdList = new List(); Product2 prd1 = new Product2(); prd1.ProductCode_Ext__c = 'HistoryPrd1'; prd1.ProductCode = 'HistoryPrd1'; prd1.Repair_Product_Code__c = 'HistoryPrd1_RP'; prd1.Name = 'HistoryPrd1'; prd1.Manual_Entry__c = false; prd1.Extend_new_product_gurantee__c = true; prd1.Extend_Gurantee_Start__c = Date.today().addDays(-60); prd1.Extend_Gurantee_End__c = Date.today().addDays(60); prdList.add(prd1); insert prdList; Asset ast = new Asset(); ast.RecordTypeId = rectAs[0].Id; ast.SerialNumber = 'abcdefg'; ast.Name = '测试资产1'; ast.AccountId = depart1.Id; ast.Department_Class__c = dc1s[0].Id; ast.Hospital__c = company1.Id; ast.Product2Id = prd1.Id; ast.Guarantee_period_for_products__c = Date.today(); ast.InstallDate = Date.today(); ast.Manage_type__c = '个体管理'; ast.FirstApproveDate_old__c = Date.today().addDays(-30); Oly_TriggerHandler.bypass('AssetHandler'); insert ast; Asset ast1 = [select RecordTypeID__c from Asset where Id =: ast.Id]; String RecordTypeID = ast1.RecordTypeID__c; System.assertEquals(RecordTypeID , ast.RecordTypeId); RecordType rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity' and DeveloperName = 'Opportunity' ]; Opportunity opp = new Opportunity( Name='testOpp1', StageName='引合', CloseDate=Date.today(), AccountId=depart1.Id, Sales_Root__c = 'OCM直接販売', Competitor__c ='A', Click_Close_Date__c = null, RecordType = rectOpp ); insert opp; //注残 Statu_Achievements__c Sac = new Statu_Achievements__c( name = 'zhucan_one', Opportunity__c = opp.id, DeliveryDate__c = Date.today(), ContractNO__c = 'ContractNO1', ContractAmount__c = 100 ); insert Sac; ast.Order_No__c = 'ContractNO1'; update ast; } static testMethod void testDelete () { 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, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN ('診療科 消化科', '診療科 呼吸科') order by Name desc]; if (rectDpt.size() == 0) { return; } List rectAs = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Asset' and Name = '备品']; if (rectAs.size() == 0) { return; } Account company1 = new Account(); company1.RecordTypeId = rectCo[0].Id; company1.Name = '病院テスト1'; List hps = new Account[]{company1}; insert hps; List dc1s = [Select Id, Name, Department_Class_Label__c, Sys_Dept_Name_Change_Chk__c from Account where Parent.Id = :company1.Id order by Department_Class_Label__c]; Account depart1 = new Account(); depart1.RecordTypeId = rectDpt[0].Id; depart1.Name = '*'; depart1.Department_Name__c = '診療科1'; depart1.ParentId = dc1s[0].Id; depart1.Department_Class__c = dc1s[0].Id; depart1.Hospital__c = company1.Id; insert depart1; Product2 prd1 = new Product2(); prd1.ProductCode_Ext__c = 'HistoryPrd1'; prd1.ProductCode = 'HistoryPrd1'; prd1.Repair_Product_Code__c = 'HistoryPrd1_RP'; prd1.Name = 'HistoryPrd1'; prd1.Manual_Entry__c = false; prd1.Extend_new_product_gurantee__c = true; prd1.Extend_Gurantee_Start__c = Date.today().addDays(-60); prd1.Extend_Gurantee_End__c = Date.today().addDays(60); insert prd1; Oly_TriggerHandler.bypass('AssetHandler'); Asset ast = new Asset(); ast.RecordTypeId = rectAs[0].Id; ast.SerialNumber = 'abcdefg'; ast.Name = '测试资产1'; ast.AccountId = depart1.Id; ast.Department_Class__c = dc1s[0].Id; ast.Hospital__c = company1.Id; ast.Product2Id = prd1.Id; ast.Guarantee_period_for_products__c = Date.today(); ast.InstallDate = Date.today(); ast.Manage_type__c = '个体管理'; ast.FirstApproveDate_old__c = Date.today().addDays(-30); insert ast; Maintenance_Contract__c mContract = createMaintenanceContract(company1, dc1s[0], depart1); Maintenance_Contract_Asset__c mca = createMiddleTable( ast, mContract); Repair__c repair = new Repair__c(); repair.Account__c = depart1.Id; repair.Department_Class__c = dc1s[0].Id; repair.Hospital__c = company1.Id; repair.Delivered_Product__c = ast.Id; insert repair; QIS_Report__c qis = new QIS_Report__c(); qis.nonyushohin__c = ast.Id; qis.Hospital__c = company1.Id; qis.RC__c = UserInfo.getUserId(); qis.Department_Class__c = dc1s[0].Id; qis.Hospital_Department__c = depart1.Id; qis.Damage_For_Doc_Or_Pat__c = '有'; qis.Relation_With_The_Problem__c = '有可能'; qis.Report_For_Goz__c = '不知道'; insert qis; try { delete ast; } catch (Exception e) { } } }