| @isTest | 
| public class SetProvinceTargetBatchTest { | 
|     static private String currentPeriod(Integer i) { | 
|         Date dateNow = Date.today(); | 
|         Integer year = dateNow.year(); | 
|         Integer month = dateNow.month(); | 
|         if (month < 4) { | 
|             year -= 1; | 
|         } | 
|         return String.valueOf(year + i - 1867 + 'P'); | 
|     } | 
|     static private Date oppCloseDate() { | 
|         Date nowDate = Date.today(); | 
|         Integer year = nowDate.year(); | 
|         Integer month = nowDate.month(); | 
|         if (month < 4) { | 
|             nowDate = nowDate.addYears(-1); | 
|         } | 
|         return nowDate; | 
|     } | 
|     static testMethod void testMethod1() { | 
|         RecordType[] rt = [select Id from RecordType where SobjectType = 'Opportunity' and IsActive = true and DeveloperName = 'Target']; | 
|         // システム管理者 | 
|         User u3 = new User(); | 
|         u3 = new User(); | 
|         u3.LastName = '_サンブリッジ'; | 
|         u3.FirstName = 'う'; | 
|         u3.Alias = 'う'; | 
|         u3.Email = 'olympusTest03@sunbridge.com'; | 
|         u3.Username = 'olympusTest03@sunbridge.com'; | 
|         u3.CommunityNickname = 'う'; | 
|         u3.IsActive = true; | 
|         u3.EmailEncodingKey = 'ISO-2022-JP'; | 
|         u3.TimeZoneSidKey = 'Asia/Tokyo'; | 
|         u3.LocaleSidKey = 'ja_JP'; | 
|         u3.LanguageLocaleKey = 'ja'; | 
|         u3.ProfileId = System.Label.ProfileId_SystemAdmin; | 
|         u3.Job_Category__c = '销售推广'; | 
|         u3.Province__c = '上海市'; | 
|         u3.Use_Start_Date__c = Date.today().addMonths(-6); | 
|         insert u3; | 
|          | 
|         System.runAs(u3) { | 
|              | 
|             // 102_销售产品推广 | 
|             User u2 = new User(); | 
|             u2.LastName = '四洋'; | 
|             u2.FirstName = '张'; | 
|             u2.Alias = '张四洋'; | 
|             u2.Email = 'olympusTest02@sunbridge.com'; | 
|             u2.Username = 'olympusTest02@sunbridge.com'; | 
|             u2.CommunityNickname = '张四洋'; | 
|             u2.IsActive = true; | 
|             u2.EmailEncodingKey = 'ISO-2022-JP'; | 
|             u2.TimeZoneSidKey = 'Asia/Tokyo'; | 
|             u2.LocaleSidKey = 'ja_JP'; | 
|             u2.LanguageLocaleKey = 'ja'; | 
|             u2.ProfileId = System.Label.ProfileId_SystemAdmin; | 
|             u2.Job_Category__c = '销售推广'; | 
|             u2.Province__c = '上海市'; | 
|             u2.Post__c = '主管'; | 
|             u2.Sales_Speciality__c = '医院担当'; | 
|             u2.Use_Start_Date__c = Date.today().addYears(-1); | 
|             insert u2; | 
|              | 
|             Opportunity[] opportunitys = [select Id from Opportunity where RecordTypeId = :rt[0].Id]; | 
|             delete opportunitys; | 
|              | 
|             Opportunity opp1 = new Opportunity(); | 
|             opp1.Name = u2.Alias + ' 目标'; | 
|             opp1.StageName = '目標'; | 
|             opp1.OwnerId = u2.Id; | 
|             opp1.Owner_System__c = u2.Id; | 
|             opp1.Opportunity_Category__c = 'GI'; | 
|             opp1.CloseDate = Date.valueOf(oppCloseDate().year() -1 + '-04-01'); | 
|             opp1.Amount = 150; | 
|             opp1.Target_category__c = '省目标'; | 
|             opp1.SAP_Province__c = '北京市'; | 
|             opp1.RecordTypeId = rt[0].Id; | 
|             opp1.OCM_Target_period__c = currentPeriod(-1); | 
|             opp1.Target_Source__c = 'SetProvinceTarget'; | 
|             insert opp1; | 
|              | 
|             Opportunity opp2 = new Opportunity(); | 
|             opp2.Name = u2.Alias + ' 目标'; | 
|             opp2.StageName = '目標'; | 
|             opp2.OwnerId = u2.Id; | 
|             opp2.Owner_System__c = u2.Id; | 
|             opp2.Opportunity_Category__c = 'GI'; | 
|             opp2.CloseDate = Date.valueOf(oppCloseDate().year() -2 + '-04-01'); | 
|             opp2.Amount = 250; | 
|             opp2.Target_category__c = '省目标'; | 
|             opp2.SAP_Province__c = '上海市'; | 
|             opp2.RecordTypeId = rt[0].Id; | 
|             opp2.OCM_Target_period__c = currentPeriod(-2); | 
|             opp2.Target_Source__c = 'SetProvinceTarget'; | 
|             insert opp2; | 
|             OCM_Management_Province__c aaa = new OCM_Management_Province__c(); | 
|             aaa.Province__c='上海市'; | 
|             aaa.GI_assistant__c=u2.Id; | 
|             aaa.SP_assistant__c=u2.Id; | 
|             aaa.Name='上海'; | 
|             insert aaa; | 
|              | 
|             Provincial_Goal_Setting_Input__c bbb = new Provincial_Goal_Setting_Input__c(); | 
|             bbb.key__c='黑龙江省_URO'; | 
|             bbb.Target_Source__c='SetProvinceTarget'; | 
|             bbb.SAP_Province__c='黑龙江省'; | 
|             bbb.iYear__c=2021; | 
|             bbb.Owner_System__c=u2.Id; | 
|             bbb.Department__c='2.东北'; | 
|             bbb.Amount__c=3000; | 
|             bbb.Is_Processing__c = true; | 
|             insert bbb; | 
|             Database.executeBatch(new SetProvinceTargetBatch(), 1); | 
|   | 
|         } | 
|     } | 
| } |