/** * This class contains unit tests for validating the behavior of Apex classes * and triggers. * * Unit tests are class methods that verify whether a particular piece * of code is working properly. Unit test methods take no arguments, * commit no data to the database, and are flagged with the testMethod * keyword in the method definition. * * All test methods in an organization are executed whenever Apex code is deployed * to a production organization to confirm correctness, ensure code * coverage, and prevent regressions. All Apex classes are * required to have at least 75% code coverage in order to be deployed * to a production organization. In addition, all triggers must have some code coverage. * * The @isTest class annotation indicates this class only contains test * methods. Classes defined with the @isTest annotation do not count against * the organization size limit for all Apex scripts. * * See the Apex Language Reference for more information about Testing and Code Coverage. */ @isTest public class SyncMBObjectTest { private static Address_Level__c al { get; set; } private static Address_Level2__c al2 { get; set; } private static void init() { al = new Address_Level__c(); al.Name = '東京'; al.Level1_Code__c = 'CN-99'; al.Level1_Sys_No__c = '999999'; insert al; 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; } // MB_修理 static testMethod void SyncMBRepairTest() { init(); Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; // ユーザー作成 User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', 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); insert hpOwner; // 取引先作成 List rectHp = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; List rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 呼吸科']; Account hp = new Account(RecordTypeId = rectHp[0].Id, Name = 'SoakupTestHp', OwnerId = hpOwner.Id); insert hp; List dcs = [Select Id, Name, Department_Class_Label__c from Account where Parent.Id = :hp.Id and Department_Class_Label__c = '呼吸科']; Account depart = new Account(); depart.RecordTypeId = rectDpt[0].Id; depart.Name = '*'; depart.Department_Name__c = '診療科'; depart.ParentId = dcs[0].Id; depart.Department_Class__c = dcs[0].Id; depart.Hospital__c = hp.Id; insert depart; Product2 prd = new Product2(); prd.ProductCode_Ext__c = 'Prd'; prd.ProductCode = 'Prd'; prd.Repair_Product_Code__c = 'Prd_RP'; prd.Name = 'Prd'; prd.Manual_Entry__c = false; insert prd; Asset ast = new Asset(); ast.Name = '保有設備'; ast.Hospital__c = hp.Id; ast.Department_Class__c = dcs[0].Id; ast.AccountId = depart.Id; ast.Product2Id = prd.Id; ast.SerialNumber = 'SerialNumber'; insert ast; List mbrepairs = [select Id, Repair__c from MB_Repair__c]; //System.assertEquals(0, mbrepairs.size()); Repair__c repair = new Repair__c(); repair.Service_Repair_No__c = 'repair'; repair.Hospital__c = hp.Id; repair.Department_Class__c = dcs[0].Id; repair.Account__c = depart.Id; repair.Delivered_Product__c = ast.Id; insert repair; List mbrepairs2 = [select Id, Repair__c from MB_Repair__c]; //System.assertEquals(1, mbrepairs2.size()); //System.assertEquals(repair.Id, mbrepairs2[0].Repair__c); hp.State_Master__c = al.id; hp.City_Master__c = al2.id; NFM001Controller.isRunning = false; update hp; mbrepairs2 = [select Id, State_Text__c from MB_Repair__c]; //System.assertEquals('東京', mbrepairs2[0].State_Text__c); delete repair; List mbrepairs3 = [select Id, Repair__c from MB_Repair__c]; //System.assertEquals(0, mbrepairs3.size()); } // MB_客户 public static testMethod void SyncMBAccountTest() { init(); Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; // ユーザー作成 User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', 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); insert hpOwner; // 取引先作成 List rectHp = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; List mbaccounts = [select Id, Account__c from MB_Account__c]; //System.assertEquals(0, mbaccounts.size()); Account hp = new Account(RecordTypeId = rectHp[0].Id, Name = 'SoakupTestHp', OwnerId = hpOwner.Id); insert hp; hp.State_Master__c = al.id; hp.City_Master__c = al2.id; NFM001Controller.isRunning = false; update hp; MB_Account__c mbaccount1 = [select Id, Account__c, State_Text__c from MB_Account__c where Account__c = :hp.Id]; //System.assertEquals(hp.Id, mbaccount1.Account__c); //System.assertEquals('東京', mbaccount1.State_Text__c); List mbaccounts2 = [select Id, Account__c, State_Text__c from MB_Account__c order by Account__c]; //System.assertEquals(9, mbaccounts2.size()); //System.assertEquals(hp.Id, mbaccounts2[0].Account__c); //delete hp; List mbaccounts3 = [select Id, Account__c from MB_Account__c]; //System.assertEquals(8, mbaccounts3.size()); } // MB_报告一览 static testMethod void SyncMBEventTest() { Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; // ユーザー作成 User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', 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); insert hpOwner; Daily_Report__c dr = new Daily_Report__c(); dr.Reported_Date__c = date.today(); dr.Status__c = '申請中'; dr.Reporter__c = hpOwner.id; insert dr; List mbevents = [select Id, Event__c from MB_Event__c]; //System.assertEquals(0, mbevents.size()); Event__c event = new Event__c(); event.Daily_Report__c = dr.Id; event.StartDateTime__c = Datetime.now().addHours(-1); event.EndDateTime__c = Datetime.now(); insert event; List mbevents2 = [select Id, Event__c from MB_Event__c]; //System.assertEquals(1, mbevents2.size()); //System.assertEquals(event.Id, mbevents2[0].Event__c); hpOwner.Province__c = '東京'; update hpOwner; mbevents2 = [select Id, State_Text__c from MB_Event__c]; //System.assertEquals('東京', mbevents2[0].State_Text__c); delete event; List mbevents3 = [select Id, Event__c from MB_Event__c]; //System.assertEquals(0, mbevents3.size()); } // MB_报告书 static testMethod void SyncMBReportTest() { init(); Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; // ユーザー作成 User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', 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); insert hpOwner; // 取引先作成 List rectHp = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; List rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 呼吸科']; Account hp = new Account(RecordTypeId = rectHp[0].Id, Name = 'SoakupTestHp', OwnerId = hpOwner.Id); insert hp; List dcs = [Select Id, Name, Department_Class_Label__c from Account where Parent.Id = :hp.Id and Department_Class_Label__c = '呼吸科']; Account depart = new Account(); depart.RecordTypeId = rectDpt[0].Id; depart.Name = '*'; depart.Department_Name__c = '診療科'; depart.ParentId = dcs[0].Id; depart.Department_Class__c = dcs[0].Id; depart.Hospital__c = hp.Id; insert depart; Daily_Report__c dr = new Daily_Report__c(); dr.Reported_Date__c = date.today(); dr.Status__c = '申請中'; dr.Reporter__c = hpOwner.id; insert dr; List mbreports = [select Id, Report__c from MB_Report__c]; //System.assertEquals(0, mbreports.size()); Report__c rep = new Report__c(); rep.Daily_Report__c = dr.Id; rep.RecordTypeId = '01210000000QekoAAC'; rep.Manual_Name__c = 'test hospital'; rep.Status__c = '申請中'; rep.Hospital_Reference__c = hp.Id; rep.Department_Class_Ref__c = dcs[0].Id; rep.Hospital_Department__c = depart.Id; rep.Date__c = System.today().addDays(-1); rep.From__c = System.today(); rep.To__c = System.today().addDays(1); rep.Caller_phone_c__c = '123456789'; rep.Content__c = '①使用方法'; rep.Detailed_Report__c = 'test'; rep.Location__c = 'test'; rep.NTC_TTC_Select__c = 'NTC'; rep.Product_Category_for_NTC__c = 'test'; rep.Purpose_Of_Implementation__c = 'test'; rep.Reason__c = 'test'; rep.Responsible_Person_HP_c__c = 'test'; rep.Use_Materials__c = 'test'; insert rep; List mbreports2 = [select Id, Report__c from MB_Report__c]; //System.assertEquals(1, mbreports2.size()); //System.assertEquals(rep.Id, mbreports2[0].Report__c); hp.State_Master__c = al.id; hp.City_Master__c = al2.id; NFM001Controller.isRunning = false; update hp; mbreports2 = [select Id, State_text__c from MB_Report__c]; //System.assertEquals('東京', mbreports2[0].State_text__c); delete rep; List mbreports3 = [select Id, Report__c from MB_Report__c]; //System.assertEquals(0, mbreports3.size()); } // MB_日报一览 static testMethod void SyncMBDailyReportTest() { Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; // ユーザー作成 User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', 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); insert hpOwner; List mbdrs = [select Id, Daily_Report__c from MB_Daily_Report__c]; //System.assertEquals(0, mbdrs.size()); Daily_Report__c dr = new Daily_Report__c(); dr.Reported_Date__c = date.today(); dr.Status__c = '申請中'; dr.Reporter__c = hpOwner.id; insert dr; List mbdrs2 = [select Id, Daily_Report__c from MB_Daily_Report__c]; //System.assertEquals(1, mbdrs2.size()); //System.assertEquals(dr.Id, mbdrs2[0].Daily_Report__c); hpOwner.Province__c = '東京'; update hpOwner; mbdrs2 = [select Id, State_Text__c from MB_Daily_Report__c]; //System.assertEquals('東京', mbdrs2[0].State_Text__c); delete dr; List mbdrs3 = [select Id, Daily_Report__c from MB_Daily_Report__c]; //System.assertEquals(0, mbdrs3.size()); } // MB_维修合同 static testMethod void SyncMBMaintenanceContractTest() { init(); Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; // ユーザー作成 User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', 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); insert hpOwner; // 取引先作成 List rectHp = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; List rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 呼吸科']; Account hp = new Account(RecordTypeId = rectHp[0].Id, Name = 'SoakupTestHp', OwnerId = hpOwner.Id); insert hp; List dcs = [Select Id, Name, Department_Class_Label__c from Account where Parent.Id = :hp.Id and Department_Class_Label__c = '呼吸科']; Account depart = new Account(); depart.RecordTypeId = rectDpt[0].Id; depart.Name = '*'; depart.Department_Name__c = '診療科'; depart.ParentId = dcs[0].Id; depart.Department_Class__c = dcs[0].Id; depart.Hospital__c = hp.Id; insert depart; List mbmcs = [select Id, Maintenance_Contract__c from MB_Maintenance_Contract__c]; //System.assertEquals(0, mbmcs.size()); Maintenance_Contract__c mc = new Maintenance_Contract__c(); mc.Name = 'mc'; mc.Past_update_contract__c = true; mc.RecordTypeId = '01210000000QjeFAAS'; mc.CurrencyIsoCode = 'CNY'; mc.Status__c = '契約'; mc.Hospital__c = hp.Id; mc.Department_Class__c = dcs[0].Id; mc.Department__c = depart.Id; mc.Maintenance_Contract_No__c = 'mc'; mc.Contract_Conclusion_Date__c = Date.today(); mc.Contract_End_Date__c = Date.today().addDays(1); mc.SalesOfficeCode_selection__c = '北京RC'; insert mc; List mbmcs2 = [select Id, Maintenance_Contract__c from MB_Maintenance_Contract__c]; //System.assertEquals(1, mbmcs2.size()); //System.assertEquals(mc.Id, mbmcs2[0].Maintenance_Contract__c); hp.State_Master__c = al.id; hp.City_Master__c = al2.id; NFM001Controller.isRunning = false; update hp; mbmcs2 = [select Id, State_text__c from MB_Maintenance_Contract__c]; //System.assertEquals('東京', mbmcs2[0].State_text__c); delete mc; List mbmcs3 = [select Id, Maintenance_Contract__c from MB_Maintenance_Contract__c]; //System.assertEquals(0, mbmcs3.size()); } // MB_资产 static testMethod void SyncMBAssetTest() { init(); Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; // ユーザー作成 User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', 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); insert hpOwner; // 取引先作成 List rectHp = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; List rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 呼吸科']; Account hp = new Account(RecordTypeId = rectHp[0].Id, Name = 'SoakupTestHp', OwnerId = hpOwner.Id); insert hp; List dcs = [Select Id, Name, Department_Class_Label__c from Account where Parent.Id = :hp.Id and Department_Class_Label__c = '呼吸科']; Account depart = new Account(); depart.RecordTypeId = rectDpt[0].Id; depart.Name = '*'; depart.Department_Name__c = '診療科'; depart.ParentId = dcs[0].Id; depart.Department_Class__c = dcs[0].Id; depart.Hospital__c = hp.Id; insert depart; Product2 prd = new Product2(); prd.ProductCode_Ext__c = 'Prd'; prd.ProductCode = 'Prd'; prd.Repair_Product_Code__c = 'Prd_RP'; prd.Name = 'Prd'; prd.Manual_Entry__c = false; insert prd; List mbassets = [select Id, Asset__c from MB_Asset__c]; //System.assertEquals(0, mbassets.size()); Asset ast = new Asset(); ast.Name = '保有設備'; ast.Hospital__c = hp.Id; ast.Department_Class__c = dcs[0].Id; ast.AccountId = depart.Id; ast.Product2Id = prd.Id; ast.SerialNumber = 'SerialNumber'; insert ast; List mbassets2 = [select Id, Asset__c from MB_Asset__c]; //System.assertEquals(1, mbassets2.size()); //System.assertEquals(ast.Id, mbassets2[0].Asset__c); hp.State_Master__c = al.id; hp.City_Master__c = al2.id; NFM001Controller.isRunning = false; update hp; mbassets2 = [select Id, State_text__c from MB_Asset__c]; //System.assertEquals('東京', mbassets2[0].State_text__c); delete ast; List mbassets3 = [select Id, Asset__c from MB_Asset__c]; //System.assertEquals(0, mbassets3.size()); } }