@isTest
|
private class ReceivingNoteDetailSelectControllerTest {
|
static ReceivingNoteTestDataFactory factory;
|
/**
|
@description 安装master数据
|
*/
|
@testSetup static void setupMasterData(){
|
factory = new ReceivingNoteTestDataFactory();
|
factory.setupMasterData();
|
}
|
/**
|
@param typeStringListString 格式:'备品类型,管理种类;备品类型,管理种类...'
|
@description 造出指定类型的清单数据,并插入数据库
|
*/
|
static void setupTestData(String typeStringListString){
|
factory = new ReceivingNoteTestDataFactory();
|
if(String.isBlank(typeStringListString)){
|
typeStringListString = '固定资产,个体管理;附属品,个体管理;附属品,数量管理;耗材,数量管理;低值易耗品,数量管理';
|
}
|
List<String> typeStringList = typeStringListString.split(';');
|
factory.setupReceivingNoteData(typeStringList);
|
}
|
|
/**
|
@description 从数据确认画面跳转来的save方法
|
*/
|
static testMethod void unitTestSaveFromWaitingReceipt(){
|
setupTestData('固定资产,个体管理');
|
Id rnId = factory.rnMap.get('固定资产,个体管理').Id;
|
Id rnsId = factory.rnsMap.get('固定资产,个体管理').Id;
|
|
PageReference ref = new PageReference('/apex/ReceivingNoteDetailSelect?sids=' + rnsId);
|
Test.setCurrentPage(ref);
|
ReceivingNoteDetailSelectController controller = new ReceivingNoteDetailSelectController();
|
CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl();
|
cmp.pageController = controller;
|
controller.myComponentController.init();
|
List<ReceivingNoteDetail__c> rndList = [
|
SELECT Id
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 本来有一条一览明细
|
// System.assertEquals(1,rndList.size());
|
|
Test.startTest();
|
|
controller.init();
|
controller.searchOpp();
|
// 配套明细有两个
|
// System.assertEquals(2, controller.viewList.size());
|
ReceivingNoteDetail__c rnd = (ReceivingNoteDetail__c) controller.viewList[1].sobj;
|
|
// 第二种配套明细数量调为3
|
rnd.Rental_Num__c = 3;
|
//add by rentx 20210824 start
|
rnd.Fixture_Set_New_Quantity__c = 3;
|
//add by rentx 20210824 end
|
controller.viewList[0].check = true;
|
controller.viewList[1].check = true;
|
controller.save();
|
|
rndList = [
|
SELECT Id
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 原有的1条加上后加的3条,一共有4条一览明细
|
// System.assertEquals(4,rndList.size());
|
Test.stopTest();
|
}
|
/**
|
@description 从验收画面跳转来的save方法:新建明细
|
*/
|
static testMethod void unitTestSaveFromAcceptanceNew(){
|
setupTestData('固定资产,个体管理');
|
Id rnId = factory.rnMap.get('固定资产,个体管理').Id;
|
Id rnsId = factory.rnsMap.get('固定资产,个体管理').Id;
|
|
PageReference startPage = new PageReference('/apex/ReceivingNoteAcceptance?id=' + rnId);
|
PageReference ref = new PageReference('/apex/ReceivingNoteDetailSelect?sids=' + rnsId+'&returl=' + startPage.getUrl());
|
Test.setCurrentPage(ref);
|
ReceivingNoteDetailSelectController controller = new ReceivingNoteDetailSelectController();
|
CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl();
|
cmp.pageController = controller;
|
controller.myComponentController.init();
|
List<ReceivingNoteDetail__c> rndList = [
|
SELECT Id
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 本来有一条一览明细
|
// System.assertEquals(1,rndList.size());
|
|
Test.startTest();
|
|
controller.init();
|
controller.searchOpp();
|
// 配套明细有两个
|
// System.assertEquals(2, controller.viewList.size());
|
ReceivingNoteDetail__c rnd = (ReceivingNoteDetail__c) controller.viewList[1].sobj;
|
|
// 第二种配套明细数量调为1
|
rnd.Rental_Num__c = 1;
|
//add by rentx 20210824 start
|
rnd.Fixture_Set_New_Quantity__c = 3;
|
//add by rentx 20210824 end
|
controller.viewList[0].check = true;
|
controller.viewList[1].check = true;
|
controller.save();
|
|
rndList = [
|
SELECT Id
|
, Change_Point__c
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 原有的1条新建1条,一共有2条一览明细
|
// System.assertEquals(2,rndList.size());
|
// System.assertEquals('新建', rndList[1].Change_Point__c);
|
|
Test.stopTest();
|
}
|
|
/**
|
@description 从验收画面跳转来调整附属品:增加明细
|
*/
|
static testMethod void unitTestSaveFromAcceptanceAdd(){
|
setupTestData('固定资产,个体管理');
|
Id rnId = factory.rnMap.get('固定资产,个体管理').Id;
|
Id rnsId = factory.rnsMap.get('固定资产,个体管理').Id;
|
addDetails(rnsId, 1);
|
|
PageReference startPage = new PageReference('/apex/ReceivingNoteAcceptance?id=' + rnId);
|
PageReference ref = new PageReference('/apex/ReceivingNoteDetailSelect?sids=' + rnsId+'&returl=' + startPage.getUrl());
|
Test.setCurrentPage(ref);
|
ReceivingNoteDetailSelectController controller = new ReceivingNoteDetailSelectController();
|
CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl();
|
cmp.pageController = controller;
|
controller.myComponentController.init();
|
List<ReceivingNoteDetail__c> rndList = [
|
SELECT Id
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 本来有2条一览明细
|
// System.assertEquals(2,rndList.size());
|
|
Test.startTest();
|
|
controller.init();
|
controller.searchOpp();
|
// 配套明细有两个
|
// System.assertEquals(2, controller.viewList.size());
|
ReceivingNoteDetail__c rnd = (ReceivingNoteDetail__c) controller.viewList[1].sobj;
|
|
// 第二种配套明细数量调为2
|
rnd.Rental_Num__c = 2;
|
//add by rentx 20210824 start
|
rnd.Fixture_Set_New_Quantity__c = 2;
|
//add by rentx 20210824 end
|
controller.viewList[0].check = true;
|
controller.viewList[1].check = true;
|
controller.save();
|
|
rndList = [
|
SELECT Id
|
, Change_Point__c
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 原有的2条再加上1条,一共有3条一览明细
|
// System.assertEquals(3,rndList.size());
|
// System.assertEquals('增加', rndList[2].Change_Point__c);
|
|
Test.stopTest();
|
|
}
|
/**
|
@description 从验收画面跳转来的save方法:减少明细
|
*/
|
static testMethod void unitTestSaveFromAcceptanceDelete(){
|
setupTestData('固定资产,个体管理');
|
Id rnId = factory.rnMap.get('固定资产,个体管理').Id;
|
Id rnsId = factory.rnsMap.get('固定资产,个体管理').Id;
|
addDetails(rnsId, 1);
|
|
PageReference startPage = new PageReference('/apex/ReceivingNoteAcceptance?id=' + rnId);
|
PageReference ref = new PageReference('/apex/ReceivingNoteDetailSelect?sids=' + rnsId+'&returl=' + startPage.getUrl());
|
Test.setCurrentPage(ref);
|
ReceivingNoteDetailSelectController controller = new ReceivingNoteDetailSelectController();
|
CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl();
|
cmp.pageController = controller;
|
controller.myComponentController.init();
|
List<ReceivingNoteDetail__c> rndList = [
|
SELECT Id
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 本来有2条一览明细
|
// System.assertEquals(2,rndList.size());
|
|
Test.startTest();
|
|
controller.init();
|
controller.searchOpp();
|
// 配套明细有两个
|
System.assertEquals(2, controller.viewList.size());
|
ReceivingNoteDetail__c rnd = (ReceivingNoteDetail__c) controller.viewList[1].sobj;
|
|
// 第二种配套明细数量调为0
|
rnd.Rental_Num__c = 0;
|
//add by rentx 20210824 start
|
rnd.Fixture_Set_New_Quantity__c = 0;
|
//add by rentx 20210824 end
|
controller.viewList[0].check = true;
|
controller.viewList[1].check = true;
|
controller.save();
|
|
rndList = [
|
SELECT Id
|
, Change_Point__c
|
, Delete_Flag__c
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 2条减去1条,则第2条明细变更为'删除'
|
// System.assertEquals(2, rndList.size());
|
// System.assertEquals('删除', rndList[1].Change_Point__c);
|
|
Test.stopTest();
|
|
}
|
static void addDetails(Id rnsId, Integer n){
|
|
PageReference ref = new PageReference('/apex/ReceivingNoteDetailSelect?sids=' + rnsId);
|
Test.setCurrentPage(ref);
|
ReceivingNoteDetailSelectController controller = new ReceivingNoteDetailSelectController();
|
CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl();
|
cmp.pageController = controller;
|
controller.myComponentController.init();
|
List<ReceivingNoteDetail__c> rndList = [
|
SELECT Id
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 本来有一条一览明细
|
System.assertEquals(1,rndList.size());
|
|
controller.init();
|
controller.searchOpp();
|
// 配套明细有两个
|
System.assertEquals(2, controller.viewList.size());
|
ReceivingNoteDetail__c rnd = (ReceivingNoteDetail__c) controller.viewList[1].sobj;
|
|
// 第二种配套明细数量调为n
|
rnd.Rental_Num__c = n;
|
//add by rentx 20210824 start
|
rnd.Fixture_Set_New_Quantity__c = n;
|
//add by rentx 20210824 end
|
controller.viewList[0].check = true;
|
controller.viewList[1].check = true;
|
controller.save();
|
|
rndList = [
|
SELECT Id
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 原有的1条加上后加的n条,一共有n+1条一览明细
|
// System.assertEquals(n+1,rndList.size());
|
}
|
|
/**
|
@description 测试【返回】按钮
|
*/
|
static testMethod void unitTestGoBack(){
|
setupTestData('固定资产,个体管理');
|
Id rnId = factory.rnMap.get('固定资产,个体管理').Id;
|
Id rnsId = factory.rnsMap.get('固定资产,个体管理').Id;
|
PageReference ref = new PageReference('/apex/ReceivingNoteDetailSelect?raesid='+rnsId+'&sids='+rnsId);
|
Test.setCurrentPage(ref);
|
ReceivingNoteDetailSelectController controller = new ReceivingNoteDetailSelectController();
|
CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl();
|
cmp.pageController = controller;
|
controller.myComponentController.init();
|
|
Test.startTest();
|
PageReference pg = controller.goBack();
|
System.assertEquals(rnId, pg.getParameters().get('pt_recid'));
|
System.assertEquals(rnsId, pg.getParameters().get('raesid'));
|
Test.stopTest();
|
|
}
|
|
/**
|
@description 测试发邮件按钮
|
*/
|
static testMethod void unitTestSendEmail(){
|
setupTestData('固定资产,个体管理');
|
Id rnId = factory.rnMap.get('固定资产,个体管理').Id;
|
Id rnsId = factory.rnsMap.get('固定资产,个体管理').Id;
|
|
PageReference ref = new PageReference('/apex/ReceivingNoteDetailSelect?raesid='+rnsId+'&sids='+rnsId);
|
Test.setCurrentPage(ref);
|
|
ReceivingNoteDetailSelectController controller = new ReceivingNoteDetailSelectController();
|
ReceivingNoteSummary__c rns = [select Name, No_Matching_Reminder_Email_Text__c from ReceivingNoteSummary__c WHERE Id=:rnsId ];
|
System.assertEquals(null, rns.No_Matching_Reminder_Email_Text__c);
|
|
Test.startTest();
|
// 初始化
|
controller.init();
|
|
String emailMsg = rns.Name;
|
String emailBody = 'ARE YOU OK?';
|
ref.getParameters().put('emailBody', emailBody);
|
controller.sendEmail();
|
|
ReceivingNoteSummary__c newRns = [select No_Matching_Reminder_Email_Text__c from ReceivingNoteSummary__c WHERE Id=:rnsId ];
|
System.assertEquals('【自由填写内容】\nARE YOU OK?\n备品配套:\nSB-FS-01', newRns.No_Matching_Reminder_Email_Text__c);
|
|
Test.stopTest();
|
}
|
// 配套中的产品与接口来的不一致时,发生变体
|
static testMethod void unitTestBianti(){
|
setupTestData('固定资产,个体管理');
|
Id rnId = factory.rnMap.get('固定资产,个体管理').Id;
|
Id rnsId = factory.rnsMap.get('固定资产,个体管理').Id;
|
factory.fsdList[0].Product2__c = factory.proList[2].Id;
|
update factory.fsdList[0];
|
factory.proList[0].Default_Fixture_Arrival_Product__c = factory.proList[2].Id;
|
factory.proList[0].Default_Fixture_Arrival_Process__c = '变体';
|
update factory.proList[0];
|
|
PageReference ref = new PageReference('/apex/ReceivingNoteDetailSelect?sids=' + rnsId);
|
Test.setCurrentPage(ref);
|
ReceivingNoteDetailSelectController controller = new ReceivingNoteDetailSelectController();
|
CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl();
|
cmp.pageController = controller;
|
controller.myComponentController.init();
|
|
List<ReceivingNoteDetail__c> rndList = [
|
SELECT Id
|
, Default_Fixture_Arrival_Process__c
|
, Default_Fixture_Arrival_Product__c
|
, Fixture_Arrival_Process__c
|
, Fixture_Arrival_Product__c
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 本来有一条一览明细
|
System.assertEquals(1,rndList.size());
|
System.assertEquals('变体', rndList[0].Default_Fixture_Arrival_Process__c);
|
System.assertEquals(factory.proList[2].Id, rndList[0].Default_Fixture_Arrival_Product__c);
|
System.assertEquals(null, rndList[0].Fixture_Arrival_Process__c);
|
System.assertEquals(null, rndList[0].Fixture_Arrival_Product__c);
|
|
Test.startTest();
|
|
controller.init();
|
controller.searchOpp();
|
// 配套明细有两个
|
System.assertEquals(2, controller.viewList.size());
|
ReceivingNoteDetail__c rnd = (ReceivingNoteDetail__c) controller.viewList[1].sobj;
|
|
// 第二种配套明细数量调为3
|
rnd.Rental_Num__c = 3;
|
//add by rentx 20210824 start
|
rnd.Fixture_Set_New_Quantity__c = 3;
|
//add by rentx 20210824 end
|
controller.viewList[0].check = true;
|
controller.viewList[1].check = true;
|
controller.save();
|
|
rndList = [
|
SELECT Id
|
, Fixture_Arrival_Process__c
|
, Fixture_Arrival_Product__c
|
FROM ReceivingNoteDetail__c
|
WHERE ReceivingNoteSummary__c =: rnsId
|
];
|
// 原有的1条加上后加的3条,一共有4条一览明细
|
// System.assertEquals(4,rndList.size());
|
|
// System.assertEquals('变体', rndList[0].Fixture_Arrival_Process__c);
|
// System.assertEquals(factory.proList[2].Id, rndList[0].Fixture_Arrival_Product__c);
|
|
Test.stopTest();
|
|
}
|
}
|