• chanchal jain 7
  • NEWBIE
  • 0 Points
  • Member since 2018

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 1
    Replies
Apex Specialist challenge #4
In this class the  line " NewCaseList[i].Date_Due__c=system.today()+integer.valueof(r.get('MinimumValue'));   "  is not covered in the test class
and test class coverage is 97% below is the helper class and test class. 

Please help

Thanks in advance.
public with sharing class MaintenanceRequestHelper {

public static void updateWorkOrders(List<Case> CaseList) {
    integer i=0;
    List<Case> NewCaseList = new List<Case>();
    List<Equipment_Maintenance_Item__c> eList = [SELECT Id,Maintenance_Request__c,Equipment__c,Quantity__c 
                                                FROM Equipment_Maintenance_Item__c 
                                                WHERE Maintenance_Request__c IN: CaseList];
    List<Aggregateresult> mindue = new List<Aggregateresult>([SELECT MIN(Equipment__r.Maintenance_Cycle__c)MinimumValue 
                                                              FROM Equipment_Maintenance_Item__c WHERE Maintenance_Request__c IN: CaseList]);
    integer k=0;
    List<Equipment_Maintenance_Item__c> newEmi = new List<Equipment_Maintenance_Item__c>();
    for(Case c : CaseList){
        if(c.Status == 'Closed' && (c.type =='Repair' || c.type =='Routine Maintenance')){
            Case c1 = new Case(
            Status = 'New',
            Vehicle__c = c.Vehicle__c,
            Type = 'Routine Maintenance',
            Subject = 'Routine Checkup',
            Date_Reported__c = Date.today(),
            Product__c = c.Product__c,
            AccountId = c.AccountId,
            ContactId = c.ContactId,
            Origin = c.Origin
            //Date_Due__c = Date.today()
            );
            NewCaseList.add(c1);
            for(Equipment_Maintenance_Item__c emi : eList){
               if(c.Id == emi.Maintenance_Request__c){
                 newEmi.add(new Equipment_Maintenance_Item__c(
                              Equipment__c = emi.Equipment__c,
                              Maintenance_Request__c = c.Id,
                              Quantity__c = emi.Quantity__c));
                  }
             }
             for(Aggregateresult r:mindue){          
                if(r.get('MinimumValue')!=NULL){
                   NewCaseList[i].Date_Due__c=system.today()+integer.valueof(r.get('MinimumValue'));
                }
             i++;
             }
        }
        
    }
    if(NewCaseList.size()>0){
        insert NewCaseList;     
    }

    for(Case c2: NewCaseList){
        for(Equipment_Maintenance_Item__c emi2 : newEmi){
            emi2.Maintenance_Request__c = c2.id;
       }
    }
          
     insert newEmi;   
}
}
 
@isTest
private class MaintenanceRequestTest {
@isTest 
static void testRequestTrigger(){
    
    Vehicle__c  v = new Vehicle__c(Name = 'Test Method Vehicle');
    Product2 p = new Product2(Name = 'Test Method Product', Maintenance_Cycle__c = 90, Lifespan_Months__c = 36);
    insert v;
    insert p;
    		 Case c = new Case();
       		 c.Subject = 'TEST Method Maintenance Request'; 
             c.Origin = 'Phone'; 
             c.Status = 'New'; 
             c.Equipment__c = p.Id; 
             c.Vehicle__c = v.Id; 
             c.Date_Due__c = Date.today().addDays(integer.valueOf(p.Maintenance_Cycle__c)) ; // Date.today();
             c.Date_Reported__c = Date.today();
    		 c.Type='Routine Maintenance';
    
    			insert c ;
    
   			 
    Equipment_Maintenance_Item__c emi=new Equipment_Maintenance_Item__c();
    	emi.Maintenance_Request__c=c.id;
    insert emi;	
    
    c.Status = 'Closed';
    Test.startTest();
    Database.SaveResult res = Database.update(c);
    Test.stopTest();
    System.assert(res.isSuccess());
    Id vid = v.Id;
    Integer casecount = Database.countQuery('SELECT count() FROM Case WHERE (Vehicle__c = :vId AND Status = \'New\')');
    System.assertEquals(1, casecount);
}
}

 
/* Write a batch apex to fetch all the tasks assigned to the user and set the status as closed with test class.*/

global class Task19 implements database.Batchable<sobject>{

    global database.QueryLocator start(database.BatchableContext bc){
        return database.getQueryLocator('select id,name,status from task');
    }
    global void execute(database.BatchableContext bc,list<Task> ta){
        user u=[select id from user where alias='sec'];
        for(Task t:ta){
            t.status='closed';
            t.id=u.id;
        }
        update ta;
    }
    global void finish(database.BatchableContext bc){
        
    }
    
}