@isTest
|
private class ReceivingNoteListFirstControllerTest {
|
static ReceivingNoteTestDataFactory factory;
|
static User user;
|
/**
|
@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);
|
User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
|
System.runAs (thisUser) {
|
Profile p = [SELECT Id FROM Profile WHERE Name LIKE '%2B3%' Limit 1];
|
UserRole r = [SELECT Id FROM UserRole WHERE DeveloperName = 'Stock_Article_Management_Member' Limit 1];
|
user = new User(alias = 'test', email='test@acme.com',
|
emailencodingkey='UTF-8', lastname='test',
|
languagelocalekey='en_US',
|
localesidkey='en_US', profileid = p.Id, userroleid = r.Id,
|
timezonesidkey='Asia/Shanghai',
|
username='test@acme.com' + Datetime.now().getTime());
|
insert user;
|
}
|
|
}
|
|
/**
|
@description 测试检索功能:按不同条件检索,并检查检索结果
|
*/
|
static testMethod void unitTestSearch() {
|
setupTestData('');
|
|
System.runAs(user){
|
|
PageReference ref = new PageReference('/apex/ReceivingNoteListFirst');
|
Test.setCurrentPage(ref);
|
|
ReceivingNoteListFirstController controller = new ReceivingNoteListFirstController();
|
CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl();
|
cmp.pageController = controller;
|
controller.myComponentController.init();
|
|
Test.startTest();
|
controller.init();
|
controller.getbieCunFangDiOps();
|
controller.getbieBenBuOps();
|
controller.getbieChanPinFenLeiOps();
|
controller.getbieBeiPinFenLeiOps();
|
controller.getAsset_loaner_categoryOps();
|
controller.getRNStatusOpss();
|
controller.searchOpp();
|
|
// 不加检索条件显示所有清单
|
System.assertEquals(5, controller.viewList.size());
|
// 存放地
|
controller.bieCunFangDi = '北京 备品中心';
|
controller.orderCode = null;
|
controller.approvalNumber = null;
|
controller.asset_loaner_category = null;
|
controller.dateOfDelivery = null;
|
controller.status = null;
|
controller.searchOpp();
|
System.assertEquals(5, controller.viewList.size());
|
for(CreateRelationListPagingCtrlBase.WrapperInfo v : controller.viewList){
|
ReceivingNote__c rn = (ReceivingNote__c) v.sobj ;
|
System.assertEquals('北京 备品中心', rn.Internal_asset_location__c );
|
}
|
|
// 订单编码
|
controller.bieCunFangDi = null;
|
controller.orderCode='SB-ORDERCODE-1';
|
controller.approvalNumber = null;
|
controller.asset_loaner_category = null;
|
controller.dateOfDelivery = null;
|
controller.status = null;
|
|
controller.searchOpp();
|
System.assertEquals(1, controller.viewList.size());
|
ReceivingNote__c rn1 = (ReceivingNote__c) controller.viewList[0].sobj ;
|
System.assertEquals('SB-ORDERCODE-1', rn1.OrderCode__c);
|
|
//裁决号
|
controller.bieCunFangDi = null;
|
controller.orderCode = null;
|
controller.approvalNumber = 'SB-APPROVALNUMBER-2';
|
controller.asset_loaner_category = null;
|
controller.dateOfDelivery = null;
|
controller.status = null;
|
|
controller.searchOpp();
|
System.assertEquals(1, controller.viewList.size());
|
ReceivingNote__c rn2 = (ReceivingNote__c) controller.viewList[0].sobj ;
|
System.assertEquals('SB-APPROVALNUMBER-2', rn2.ApprovalNumber__c);
|
|
// 备品类别
|
controller.bieCunFangDi = null;
|
controller.orderCode = null;
|
controller.approvalNumber = null;
|
controller.asset_loaner_category = '附属品';
|
controller.dateOfDelivery = null;
|
controller.status = null;
|
|
controller.searchOpp();
|
System.assertEquals(2, controller.viewList.size());
|
for(CreateRelationListPagingCtrlBase.WrapperInfo v : controller.viewList){
|
ReceivingNote__c rn = (ReceivingNote__c) v.sobj ;
|
System.assertEquals('附属品', rn.Asset_loaner_category__c );
|
}
|
|
// 发货日
|
controller.bieCunFangDi = null;
|
controller.orderCode = null;
|
controller.approvalNumber = null;
|
controller.asset_loaner_category = null;
|
String todayStr = System.Now().format('yyyy-MM-dd');
|
controller.dateOfDelivery = todayStr;
|
|
controller.status = null;
|
|
controller.searchOpp();
|
|
System.assertEquals(5, controller.viewList.size());
|
for(CreateRelationListPagingCtrlBase.WrapperInfo v : controller.viewList){
|
ReceivingNote__c rn = (ReceivingNote__c) v.sobj ;
|
System.assertEquals(Date.Today(), rn.DateOfDelivery__c);
|
}
|
|
// 收货状态
|
controller.bieCunFangDi = null;
|
controller.orderCode = null;
|
controller.approvalNumber = null;
|
controller.asset_loaner_category = null;
|
controller.dateOfDelivery = null;
|
controller.status = '待数据确认';
|
|
controller.searchOpp();
|
System.assertEquals(5, controller.viewList.size());
|
for(CreateRelationListPagingCtrlBase.WrapperInfo v : controller.viewList){
|
ReceivingNote__c rn = (ReceivingNote__c) v.sobj ;
|
System.assertEquals('待数据确认', rn.RN_Status__c);
|
}
|
|
Test.stopTest();
|
}
|
}
|
/**
|
@description 测试入库指示
|
*/
|
static testMethod void unitTestInStockRequest() {
|
// 造出可以做入库指示的明细
|
setupTestData('固定资产,个体管理');
|
|
ReceivingNoteDetail__c rnd = factory.rndMap.get('固定资产,个体管理');
|
ReceivingNoteSummary__c rns = factory.rnsMap.get('固定资产,个体管理');
|
// 数据确认
|
rnd.unknow_serial_NO_product__c = 'TRUE';
|
rnd.Loaner_accsessary__c = 'TRUE';
|
rnd.DataConfirmation__c = true;
|
// 收货
|
rns.Received_Confirm_Time__c = Datetime.now();
|
rns.Package_Status__c = 'OK';
|
upsert rns Id;
|
// 清点
|
rnd.AcceptanceResult__c = 'OK';
|
rnd.AcceptanceTime__c = Datetime.now();
|
// 验收
|
rnd.Inspection_result_after__c = 'OK';
|
rnd.After_Inspection_time__c = Datetime.now();
|
// 再确认
|
rnd.DataConfirmationAgain__c = true;
|
upsert rnd Id;
|
|
System.runAs(user){
|
PageReference ref = new PageReference('/apex/ReceivingNoteListFirst');
|
Test.setCurrentPage(ref);
|
ReceivingNoteListFirstController controller = new ReceivingNoteListFirstController();
|
CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl();
|
cmp.pageController = controller;
|
controller.myComponentController.init();
|
|
Test.startTest();
|
|
controller.init();
|
controller.status = '待入库指示';
|
controller.searchOpp();
|
// 不加检索条件显示所有清单
|
System.assertEquals(1, controller.viewList.size());
|
|
// 入库指示
|
controller.viewList[0].check = true;
|
controller.inStockRequest();
|
ReceivingNoteDetail__c newRnd = [
|
SELECT Arrival_wh_Request_time__c
|
FROM ReceivingNoteDetail__c
|
WHERE Id =: rnd.Id
|
];
|
System.assertNotEquals(null, newRnd.Arrival_wh_Request_time__c);
|
|
Test.stopTest();
|
}
|
}
|
}
|