You need to sign in to do that
Don't have an account?
Thiago Barbosa 1
'MaintenanceRequest' trigger does not appear to be handling bulk operations correctly. For the positive use case of inserting and updating more than 200 records, it did not produce the expected outcome.
@isTest public class MaintenanceRequestTest { @isTest static void testSetup(){ List<Product2> equip = new List<Product2>(); equip.add(new Product2(Name ='Test Equipament', Maintenance_Cycle__c = 10, Cost__c = 100, Current_Inventory__c = 10, Lifespan_Months__c = 10, Replacement_Part__c = true, Warehouse_SKU__c = 'abc')); insert equip; System.debug( 'Equip' + equip); Database.insert(equip, false); } @isTest static void testMaintenanceRequest(){ MaintenanceRequestTest.testSetup(); List<Case> listInsert = new List<Case>(); List<Case> listUpdate = new List<Case>(); Id equipId = [SELECT Id FROM Product2 LIMIT 1].Id; System.debug('Product2' + equipId); for(Integer i = 0 ; i < 300; i++){ Case caseInsert = new Case(Type='Routine Maintenance', Status = 'New', Origin = 'Phone'); caseInsert.Equipment__c = equipId; listInsert.add(caseInsert); } Database.insert(listInsert, false); Test.startTest(); System.assertEquals(300, listInsert.size()); for(Case c: listInsert){ c.Status = 'Closed'; listUpdate.add(c); } Database.update (listUpdate, false); System.assertEquals(300, listUpdate.size()); User usuario = [SELECT id FROM User WHERE Id =: UserInfo.getUserId()]; System.runAs(usuario){ List<Case> ClosedCaseList = [SELECT Type, Status, Equipment__c, Date_Due__c, Date_Reported__c, Vehicle__c FROM Case WHERE status = 'Closed']; MaintenanceRequestHelper.updateWorkOrders(ClosedCaseList); } Test.stopTest(); } }
Regards,
Ramakant