function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
salesforce_hoonigansalesforce_hoonigan 

Apex Class: Certain Lines not covered

Hi Experts, 

I need some assistance with my apex class. Certain lines are not covered. I am only getting 72% on code coverage:

APEX CLASS:
public class LeadViewRestriction {

    public LeadViewRestriction(ApexPages.StandardController controller) {
        this.controller = controller;
    }

    public PageReference getRedir() {
        Lead l = [Select id, OwnerId From Lead Where Id =: ApexPages.currentPage().getParameters().get('id')];
        User u = [Select Id, Profile.Name from User where Id =: UserInfo.getUserId()];

        PageReference newPage;

        if (u.Profile.Name == 'VL - Sales Agent' && l.OwnerId != u.Id) {
            newPage = Page.LeadBasicView;
        } else {
            return null;
        }


        newPage.getParameters().put('id', l.Id);
        return newPage.setRedirect(true);

    }

    private final ApexPages.StandardController controller;

}
 
@isTest
private class TestLeadViewRestriction {
    @isTest static void testsLeadView() {
        Lead l = new Lead();
        l.Company = 'Test';
        l.LastName = 'Doe';
        l.Lead_Status_NEW__c = 'New';
        insert l;

        Test.startTest();
        PageReference newPage = Page.LeadBasicView;
        Test.setCurrentPage(newPage);
        Test.setCurrentPageReference(newPage);
        newPage.getParameters().put('id',l.id);
        
        ApexPages.StandardController sc = new ApexPages.standardController(l);
        LeadViewRestriction controller = new LeadViewRestriction (sc);
        controller.getRedir();

    }
}

These lines are not covered:
 
Line 14 of Apex Class: newPage = Page.LeadBasicView;
Line 20: newPage.getParameters().put('id', l.Id);
Line 21: return newPage.setRedirect(true);


 
Amit Chaudhary 8Amit Chaudhary 8
Please try below code
 
@isTest
private class TestLeadViewRestriction
{
    @isTest
    static void testsLeadView()
    {
        Lead l = new Lead();
        l.Company= 'Test';
        l.LastName = 'Doe';
        l.Lead_Status_NEW__c = 'New';
        insert l;

        ApexPages.currentPage().getParameters().put('id', l.Id);
        ApexPages.StandardController sc = new ApexPages.standardController(l);
        LeadViewRestriction controller = new LeadViewRestriction (sc);       

        controller.getRedir();
    }

    @isTest
    static void testsLeadView1()
    {
        ID userID = UserInfo.getUserId() ;
        
        Lead l = new Lead();
        l.Company= 'Test';
        l.LastName = 'Doe';
        l.Lead_Status_NEW__c = 'New';

            
        Profile p = [SELECT Id FROM Profile WHERE Name='VL - Sales Agent'];
        
        User u = new User(Alias = 'standt', Email='standarduser@testorg.com',
            EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US',
            LocaleSidKey='en_US', ProfileId = p.Id,
            TimeZoneSidKey='America/Los_Angeles', UserName='standarduser@testorg.com');
        insert u;
        
        System.runAs(u)
        {
            insert l;

            l.ownerid = userID;
            update l;
            
            ApexPages.currentPage().getParameters().put('id', l.Id);
            ApexPages.StandardController sc = new ApexPages.standardController(l);
            LeadViewRestriction controller = new LeadViewRestriction (sc);       
            controller.getRedir();
        }
    }
}