You need to sign in to do that
Don't have an account?

'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