@isTest
|
private class SLAReportDetailsControllerTest {
|
|
@testSetup
|
static void setUp(){
|
TestDataUtility.CreatePIPolicyConfigurations( new string[]{'Contact'});
|
}
|
|
//有报告书
|
static testMethod void testMethod1() {
|
|
// レコードタイプ取得
|
RecordType hospitalRec = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
|
RecordType sectionRec = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 消化科'];
|
RecordType departmentRec = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 消化科'];
|
|
// 病院作成
|
Account hospital = new Account();
|
hospital.RecordTypeId = hospitalRec.Id;
|
hospital.Name = 'TestHospital';
|
insert hospital;
|
|
// 病院を作ると戦略科室は、トリガーによって作られている
|
Account section = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Parent.Id = :hospital.Id and RecordTypeId = :sectionRec.Id limit 1];
|
|
// 診療科1を作成
|
Account depart1 = new Account();
|
depart1.RecordTypeId = departmentRec.Id;
|
depart1.Name = '*';
|
depart1.Department_Name__c = 'TestDepart';
|
depart1.ParentId = section.Id;
|
depart1.Department_Class__c = section.Id;
|
depart1.Hospital__c = hospital.Id;
|
depart1.AgentCode_Ext__c = '9999997';
|
insert depart1;
|
|
//服务合同
|
Maintenance_Contract__c contract = new Maintenance_Contract__c();
|
contract.Name = 'test contract';
|
contract.Hospital__c = hospital.Id;
|
contract.Department_Class__c = section.Id;
|
contract.Department__c = depart1.Id;
|
contract.RecordTypeId = '01210000000gTYqAAM';
|
insert contract;
|
|
//这个季度的生成服务合同报告书
|
NewMaintenanceReport_Task__c tempNMCT = new NewMaintenanceReport_Task__c();
|
tempNMCT.Name = 'test MT';
|
tempNMCT.Distribution_Start_Date__c = Date.today().addDays(-1);
|
tempNMCT.Distribution_End_Date__c = Date.today().addDays(2);
|
tempNMCT.NewMaintenance_Contract__c = contract.Id;
|
insert tempNMCT;
|
|
|
Account account2 = new Account();
|
account2.Name = 'test1经销商';
|
account2.RecordTypeId = '01210000000Qem1';
|
insert account2;
|
|
Contact visitor1 = new Contact();
|
visitor1.AccountId = account2.Id;
|
visitor1.FirstName = '責任者';
|
visitor1.LastName = 'test1经销商';
|
insert visitor1;
|
|
Contact visitor2 = new Contact();
|
visitor2.AccountId = account2.Id;
|
visitor2.FirstName = '消费者';
|
visitor2.LastName = 'test2经销商';
|
insert visitor2;
|
|
Contact visitor3 = new Contact();
|
visitor3.AccountId = account2.Id;
|
visitor3.FirstName = '消费者';
|
visitor3.LastName = 'test3经销商';
|
insert visitor3;
|
|
Contact visitor4 = new Contact();
|
visitor4.AccountId = account2.Id;
|
visitor4.FirstName = '消费者';
|
visitor4.LastName = 'test4经销商';
|
insert visitor4;
|
|
Contact visitor5 = new Contact();
|
visitor5.AccountId = account2.Id;
|
visitor5.FirstName = '消费者';
|
visitor5.LastName = 'test5经销商';
|
insert visitor5;
|
|
Daily_Report__c dr3 = new Daily_Report__c();
|
dr3.Reporter__c = UserInfo.getUserId();
|
dr3.Reported_Date__c = Date.today().addDays(4);
|
dr3.Status__c = '作成中';
|
insert dr3;
|
|
Event__c event = new Event__c();
|
event.ActivityDate__c = Date.today().addDays(-2);
|
event.Daily_Report__c = dr3.Id;
|
event.StartDateTime__c = Datetime.newInstance(2021, 8, 17, 10, 0, 0);
|
event.EndDateTime__c = Datetime.newInstance(2021, 8, 17, 17, 0, 0);
|
insert event;
|
|
|
SLAReportInfo__c slaInfo = new SLAReportInfo__c();
|
slaInfo.Name = 'testSLAReportInfo';
|
slaInfo.Visitor1__c = visitor1.id;
|
slaInfo.Visitor2__c = visitor2.id;
|
slaInfo.SLATask__c = tempNMCT.id;
|
slaInfo.Maintenance_Contract__c = contract.Id;
|
slaInfo.Distribution_Person__c = 'FSE';
|
slaInfo.Distribution_Method__c = '线上(微信、邮件)';
|
insert slaInfo;
|
|
|
ApexPages.currentPage().getParameters().put( 'eventCId', event.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor1', visitor1.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor2', visitor2.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor3', visitor3.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor4', visitor4.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor5', visitor5.Id);
|
ApexPages.currentPage().getParameters().put( 'accountId', account2.Id);
|
ApexPages.currentPage().getParameters().put( 'serviceId', contract.Id);
|
ApexPages.currentPage().getParameters().put( 'index', null);
|
ApexPages.currentPage().getParameters().put( 'id', slaInfo.id);
|
|
SLAReportDetailsController con = new SLAReportDetailsController();
|
con.init();
|
con.slaInfo.Distribution_Person__c = 'FSE';
|
con.slaInfo.Distribution_Method__c = '线上(微信、邮件)';
|
con.save();
|
}
|
|
//报告一览不为空
|
static testMethod void testMethod2() {
|
|
// レコードタイプ取得
|
RecordType hospitalRec = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
|
RecordType sectionRec = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 消化科'];
|
RecordType departmentRec = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 消化科'];
|
|
// 病院作成
|
Account hospital = new Account();
|
hospital.RecordTypeId = hospitalRec.Id;
|
hospital.Name = 'TestHospital';
|
insert hospital;
|
|
// 病院を作ると戦略科室は、トリガーによって作られている
|
Account section = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Parent.Id = :hospital.Id and RecordTypeId = :sectionRec.Id limit 1];
|
|
// 診療科1を作成
|
Account depart1 = new Account();
|
depart1.RecordTypeId = departmentRec.Id;
|
depart1.Name = '*';
|
depart1.Department_Name__c = 'TestDepart';
|
depart1.ParentId = section.Id;
|
depart1.Department_Class__c = section.Id;
|
depart1.Hospital__c = hospital.Id;
|
depart1.AgentCode_Ext__c = '9999997';
|
insert depart1;
|
|
//服务合同
|
Maintenance_Contract__c contract = new Maintenance_Contract__c();
|
contract.Name = 'test contract';
|
contract.Hospital__c = hospital.Id;
|
contract.Department_Class__c = section.Id;
|
contract.Department__c = depart1.Id;
|
contract.RecordTypeId = '01210000000gTYqAAM';
|
insert contract;
|
|
//这个季度的生成服务合同报告书
|
NewMaintenanceReport_Task__c tempNMCT = new NewMaintenanceReport_Task__c();
|
tempNMCT.Name = 'test MT';
|
tempNMCT.Distribution_Start_Date__c = Date.today().addDays(-1);
|
tempNMCT.Distribution_End_Date__c = Date.today().addDays(2);
|
tempNMCT.NewMaintenance_Contract__c = contract.Id;
|
insert tempNMCT;
|
|
|
Account account2 = new Account();
|
account2.Name = 'test1经销商';
|
account2.RecordTypeId = '01210000000Qem1';
|
insert account2;
|
|
Contact visitor1 = new Contact();
|
visitor1.AccountId = account2.Id;
|
visitor1.FirstName = '責任者';
|
visitor1.LastName = 'test1经销商';
|
insert visitor1;
|
|
Contact visitor2 = new Contact();
|
visitor2.AccountId = account2.Id;
|
visitor2.FirstName = '消费者';
|
visitor2.LastName = 'test2经销商';
|
insert visitor2;
|
|
Contact visitor3 = new Contact();
|
visitor3.AccountId = account2.Id;
|
visitor3.FirstName = '消费者';
|
visitor3.LastName = 'test3经销商';
|
insert visitor3;
|
|
Contact visitor4 = new Contact();
|
visitor4.AccountId = account2.Id;
|
visitor4.FirstName = '消费者';
|
visitor4.LastName = 'test4经销商';
|
insert visitor4;
|
|
Contact visitor5 = new Contact();
|
visitor5.AccountId = account2.Id;
|
visitor5.FirstName = '消费者';
|
visitor5.LastName = 'test5经销商';
|
insert visitor5;
|
|
Daily_Report__c dr3 = new Daily_Report__c();
|
dr3.Reporter__c = UserInfo.getUserId();
|
dr3.Reported_Date__c = Date.today().addDays(4);
|
dr3.Status__c = '作成中';
|
insert dr3;
|
|
Event__c event = new Event__c();
|
event.ActivityDate__c = Date.today().addDays(-2);
|
event.Daily_Report__c = dr3.Id;
|
event.StartDateTime__c = Datetime.newInstance(2021, 8, 17, 10, 0, 0);
|
event.EndDateTime__c = Datetime.newInstance(2021, 8, 17, 17, 0, 0);
|
insert event;
|
|
|
SLAReportInfo__c slaInfo = new SLAReportInfo__c();
|
slaInfo.Name = 'testSLAReportInfo';
|
slaInfo.Visitor1__c = visitor1.id;
|
slaInfo.Visitor2__c = visitor2.id;
|
slaInfo.SLATask__c = tempNMCT.id;
|
slaInfo.Maintenance_Contract__c = contract.Id;
|
slaInfo.Distribution_Person__c = 'FSE';
|
slaInfo.Distribution_Method__c = '线上(微信、邮件)';
|
insert slaInfo;
|
|
|
ApexPages.currentPage().getParameters().put( 'eventCId', event.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor1', visitor1.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor2', visitor2.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor3', visitor3.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor4', visitor4.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor5', visitor5.Id);
|
ApexPages.currentPage().getParameters().put( 'accountId', account2.Id);
|
ApexPages.currentPage().getParameters().put( 'serviceId', contract.Id);
|
ApexPages.currentPage().getParameters().put( 'index', null);
|
ApexPages.currentPage().getParameters().put( 'id', null);
|
|
SLAReportDetailsController con = new SLAReportDetailsController();
|
con.init();
|
con.slaInfo.Distribution_Person__c = 'FSE';
|
con.slaInfo.Distribution_Method__c = '线上(微信、邮件)';
|
con.save();
|
}
|
//报告书为空,报告一览为空,合同不为空
|
static testMethod void testMethod3() {
|
|
// レコードタイプ取得
|
RecordType hospitalRec = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
|
RecordType sectionRec = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 消化科'];
|
RecordType departmentRec = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 消化科'];
|
|
// 病院作成
|
Account hospital = new Account();
|
hospital.RecordTypeId = hospitalRec.Id;
|
hospital.Name = 'TestHospital';
|
insert hospital;
|
|
// 病院を作ると戦略科室は、トリガーによって作られている
|
Account section = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Parent.Id = :hospital.Id and RecordTypeId = :sectionRec.Id limit 1];
|
|
// 診療科1を作成
|
Account depart1 = new Account();
|
depart1.RecordTypeId = departmentRec.Id;
|
depart1.Name = '*';
|
depart1.Department_Name__c = 'TestDepart';
|
depart1.ParentId = section.Id;
|
depart1.Department_Class__c = section.Id;
|
depart1.Hospital__c = hospital.Id;
|
depart1.AgentCode_Ext__c = '9999997';
|
insert depart1;
|
|
//服务合同
|
Maintenance_Contract__c contract = new Maintenance_Contract__c();
|
contract.Name = 'test contract';
|
contract.Hospital__c = hospital.Id;
|
contract.Department_Class__c = section.Id;
|
contract.Department__c = depart1.Id;
|
contract.RecordTypeId = '01210000000gTYqAAM';
|
insert contract;
|
|
//这个季度的生成服务合同报告书
|
NewMaintenanceReport_Task__c tempNMCT = new NewMaintenanceReport_Task__c();
|
tempNMCT.Name = 'test MT';
|
tempNMCT.Distribution_Start_Date__c = Date.today().addDays(-1);
|
tempNMCT.Distribution_End_Date__c = Date.today().addDays(2);
|
tempNMCT.NewMaintenance_Contract__c = contract.Id;
|
insert tempNMCT;
|
|
|
Account account2 = new Account();
|
account2.Name = 'test1经销商';
|
account2.RecordTypeId = '01210000000Qem1';
|
insert account2;
|
|
Contact visitor1 = new Contact();
|
visitor1.AccountId = account2.Id;
|
visitor1.FirstName = '責任者';
|
visitor1.LastName = 'test1经销商';
|
insert visitor1;
|
|
Contact visitor2 = new Contact();
|
visitor2.AccountId = account2.Id;
|
visitor2.FirstName = '消费者';
|
visitor2.LastName = 'test2经销商';
|
insert visitor2;
|
|
Contact visitor3 = new Contact();
|
visitor3.AccountId = account2.Id;
|
visitor3.FirstName = '消费者';
|
visitor3.LastName = 'test3经销商';
|
insert visitor3;
|
|
Contact visitor4 = new Contact();
|
visitor4.AccountId = account2.Id;
|
visitor4.FirstName = '消费者';
|
visitor4.LastName = 'test4经销商';
|
insert visitor4;
|
|
Contact visitor5 = new Contact();
|
visitor5.AccountId = account2.Id;
|
visitor5.FirstName = '消费者';
|
visitor5.LastName = 'test5经销商';
|
insert visitor5;
|
|
Daily_Report__c dr3 = new Daily_Report__c();
|
dr3.Reporter__c = UserInfo.getUserId();
|
dr3.Reported_Date__c = Date.today().addDays(4);
|
dr3.Status__c = '作成中';
|
insert dr3;
|
|
Event__c event = new Event__c();
|
event.ActivityDate__c = Date.today().addDays(-2);
|
event.Daily_Report__c = dr3.Id;
|
event.StartDateTime__c = Datetime.newInstance(2021, 8, 17, 10, 0, 0);
|
event.EndDateTime__c = Datetime.newInstance(2021, 8, 17, 17, 0, 0);
|
insert event;
|
|
|
SLAReportInfo__c slaInfo = new SLAReportInfo__c();
|
slaInfo.Name = 'testSLAReportInfo';
|
slaInfo.Visitor1__c = visitor1.id;
|
slaInfo.Visitor2__c = visitor2.id;
|
slaInfo.SLATask__c = tempNMCT.id;
|
slaInfo.Maintenance_Contract__c = contract.Id;
|
slaInfo.Distribution_Person__c = 'FSE';
|
slaInfo.Distribution_Method__c = '线上(微信、邮件)';
|
insert slaInfo;
|
|
|
ApexPages.currentPage().getParameters().put( 'eventCId', null);
|
ApexPages.currentPage().getParameters().put( 'visitor1', visitor1.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor2', visitor2.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor3', visitor3.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor4', visitor4.Id);
|
ApexPages.currentPage().getParameters().put( 'visitor5', visitor5.Id);
|
ApexPages.currentPage().getParameters().put( 'accountId', account2.Id);
|
ApexPages.currentPage().getParameters().put( 'serviceId', contract.Id);
|
ApexPages.currentPage().getParameters().put( 'index', null);
|
ApexPages.currentPage().getParameters().put( 'id', null);
|
|
SLAReportDetailsController con = new SLAReportDetailsController();
|
con.init();
|
con.slaInfo.Distribution_Person__c = 'FSE';
|
con.slaInfo.Distribution_Method__c = '线上(微信、邮件)';
|
con.save();
|
}
|
}
|