@isTest
private class buttonRepairQuotationCtlTest {
    static testMethod void testMethod1() {
        Address_Level__c al = new Address_Level__c();
        al.Name = '東京';
        al.Level1_Code__c = 'CN-99';
        al.Level1_Sys_No__c = '999999';
        insert al;
        // 市
        Address_Level2__c al2 = new Address_Level2__c();
        al2.Level1_Code__c = 'CN-99';
        al2.Level1_Sys_No__c = '999999';
        al2.Level1_Name__c = '東京';
        al2.Name = '渋谷区';
        al2.Level2_Code__c = 'CN-9999';
        al2.Level2_Sys_No__c = '9999999';
        al2.Address_Level__c = al.id;
        insert al2;
        
         Account hospital = new Account();
        hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id;
        hospital.Name = 'test hospital';
        hospital.Is_Active__c = '有効';
        hospital.Attribute_Type__c = '卫生部';
        hospital.Speciality_Type__c = '综合医院';
        hospital.Grade__c = '一级';
        hospital.OCM_Category__c = 'SLTV';
        hospital.Is_Medical__c = '医疗机构';
        hospital.State_Master__c = al.id;
        hospital.City_Master__c = al2.id;
        hospital.Town__c = '东京';
        insert hospital;
         // 戦略科室を得る
        Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH'];
        // 診療科を作る
        Account dep = new Account();
        dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id;
        dep.Name = 'test dep';
        dep.AgentCode_Ext__c = '9999998';
        dep.ParentId = strategicDep[0].Id;
        dep.Department_Class__c = strategicDep[0].Id;
        dep.Hospital__c = hospital.Id;
        insert dep;
        Asset report = new Asset();
        report.AssetMark__c = '耗材';
        report.Asset_Owner__c = '病院資産';
        report.InstallDate = Date.today();
        report.Posting_Date__c = Date.today();
        report.Asset_day__c = Date.today();
        report.SerialNumber = '09K(IOSJA)';
        report.Order_No__c = 'BJ-ET-203044-7';
        report.Name = 'FD-410LR:一次性高频止血';
        report.AccountId = dep.Id;
        report.Department_Class__c = strategicDep[0].Id;
        report.Hospital__c = hospital.Id;
        insert report;
         User user3 = new User();
        user3.ProfileId = UserInfo.getProfileId();
        user3.FirstName = 'ユーザー3';
        user3.LastName = 'テスト3';
        user3.Email = 'test_user3@example.com';
        user3.emailencodingkey='UTF-8';
        user3.languagelocalekey='zh_CN';
        user3.localesidkey='ja_JP';
        user3.timezonesidkey='Asia/Shanghai';
        user3.Username = 'test_user3@example.com' + System.now().millisecond();
        user3.Alias = 'テユ4';
        user3.CommunityNickname = 'tu3' + System.now().millisecond();
         insert user3;

         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 = report.id;
        repair01.SERVICE_CONTRACT_JUDEGE_DAY__C = Date.today().addDays(0); 
        repair01.FSE_Work_Location__c = '上海';
        repair01.Service_Repair_No__c = 'SAP0001';
        repair01.Incharge_Staff__c = user3.id;
        repair01.On_site_repair__c = 'RC修理';
        repair01.work_location_select__c = '北京办事处';
        // repair01.Final_complete_day__c = Date.today().addDays(-1);
        insert repair01;
          Repair_Quotation__c rq = new Repair_Quotation__c();
        rq.Name                  = 'testNFM104';
        rq.Repair__c             = repair01.Id;
        rq.MessageGroupNumber__c = '1';
        insert rq;
        buttonRepairQuotationCtl.init(rq.id);
        buttonRepairQuotationCtl.updateRepairQuotation(rq.id);
        buttonRepairQuotationCtl.updateRepairQuotation02(rq.id);
        buttonRepairQuotationCtl.updateRepairQuotation03(rq.id);
        buttonRepairQuotationCtl.updateRepairQuotation04(rq.id);
        buttonRepairQuotationCtl.selectRepairC(repair01.id);
        buttonRepairQuotationCtl.initSelectProfile(UserInfo.getProfileId());

    }
}