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
Venkatesh Ganta 16Venkatesh Ganta 16 

How to do code Coverage for Remote actions, currently my code coverage is 72%, can anyone help to increase little bit

global with sharing class FullCalendarDemo {

    Public string name;
    public string selectedOwner {set;get;}
    public string selectedType {set;get;}
    public decimal latt {get;set;}
    public decimal longt {get;set;}
    public List < visitList > vist_List {set;get;}
    public List < Account > acc_list {set;get;}
    public List < Account > All_acc_list {set;get;}

    public FullCalendarDemo() {
        searchAccountRecords();
    }
    public static List < selectOption > getUsers() {
        List < selectOption > userList = new List < selectOption > ();
        // List<User> lstUsers = [select Id,Name ,UserName from User where usertype IN ('Standard') ];
        String ProfileName = [SELECT Id, Name FROM Profile where Id =: UserInfo.getProfileId()].Name;
        List < User > lstUsers = new List < User > ();
        If(ProfileName == 'System Administrator') {
            lstUsers = [select Id, Name, UserName from User where usertype IN('Standard')];
        }
        else {
            lstUsers = [select Id, Name, UserName from User where(Id =: UserInfo.getUserId() OR ManagerId =: UserInfo.getUserId())];
        }

        system.debug('lstUsers' + lstUsers);

        for (User u: lstUsers) {
            userList.add(new selectOption(u.Id, u.Name));
            system.debug('userList' + userList);
        }
        return userList;
    }

    @RemoteAction
    global static List < User_Calendar__c > getEvents(String userId) {
        // String userId = UserInfo.getUserId() ;
        List < User_Calendar__c > userCalendar = [SELECT Id, Name, User__r.Name,
            Event__c, Event__r.Name, Event__r.Start_Time__c, Event__r.End_Time__c
            FROM User_Calendar__c
            WHERE User__c =: userId
        ];
        if (userCalendar.size() > 0) {
            return userCalendar;
        } else {
            return null;
        }
    }
    public List < SelectOption > getAccountTypeValues() {
        List < SelectOption > options = new List < SelectOption > ();
        Schema.DescribeFieldResult fieldResult = Account.Account_Type__c.getDescribe();
        List < Schema.PicklistEntry > ple = fieldResult.getPicklistValues();
        options.add(new SelectOption('Select', 'Select'));
        for (Schema.PicklistEntry f: ple) {
            options.add(new SelectOption(f.getLabel(), f.getValue()));
        }
        options.add(new SelectOption('All', 'All'));


        return options;
    }

    @RemoteAction
    global static List < User_Calendar__c > createOrUpdateEvents(String calendarEvent, String userId) {
        //Geting Calendar_Event__c object from received Json String
        Calendar_Event__c eventObject = ((Calendar_Event__c) JSON.deserialize(calendarEvent, Calendar_Event__c.class));
        //you need to put proper regex to validate recordId
        Boolean isOldRecord = eventObject.Id != null;
        
        upsert eventObject;
        //If its new record, create User Calendar record as well
        if (!isOldRecord) 
        {           
            User_Calendar__c userCalendar = new User_Calendar__c(Event__c = eventObject.Id, User__c = userId);
            insert userCalendar;
        }
        return getEvents(userId);
    }
    @RemoteAction
    global static List < User_Calendar__c > DeleteEvents(String calendarEvent, String userId) {
        //Geting Calendar_Event__c object from received Json String
        Calendar_Event__c eventObject = ((Calendar_Event__c) JSON.deserialize(calendarEvent, Calendar_Event__c.class));
        //you need to put proper regex to validate recordId
        Boolean isOldRecord = eventObject.Id != null;
        // eventObject.Account_Type__c=test;
        delete eventObject;
        //If its new record, create User Calendar record as well

        return getEvents(userId);
    }

    public void searchAccountRecords() {
        system.debug('heeee' + selectedType);
        try {
            List < Dealer__c > dealerList = new List < Dealer__c > ();
            List < Sub_Dealer__c > subDealerList = new List < Sub_Dealer__c > ();
            List < Distributor__c > distributorList = new List < Distributor__c > ();
            List < visitList > vList = new List < visitList > ();

            if (selectedType == 'Dealer') {
                dealerList = [Select Id, name, Status__c from Dealer__c Where Status__c ='Approved'];
            } else if (selectedType == 'SubDealer') {
                subDealerList = [Select Id, name,Status__c from Sub_Dealer__c Where Status__c ='Approved'];
            } else if (selectedType == 'Distributor') {
                distributorList = [Select Id, name,Status__c from Distributor__c Where Status__c ='Approved'];
            } else {
                dealerList = [Select Id, Name from Dealer__c];
                subDealerList = [Select Id, Name from Sub_Dealer__c];
                distributorList = [Select Id, Name from Distributor__c];
            }
            if (!dealerList.isEmpty()) {
                for (Dealer__c obj: dealerList) {
                    visitList vObj = new visitList();
                    vObj.Id = obj.Id;
                    vObj.Name = obj.Name;
                    vObj.Type = 'Dealer';
                    vList.add(vObj);
                }
            }
            if (!subDealerList.isEmpty()) {
                for (Sub_Dealer__c obj: subDealerList) {
                    visitList vObj = new visitList();
                    vObj.Id = obj.Id;
                    vObj.Name = obj.name;
                    vObj.Type = 'Sub Dealer';
                    vList.add(vObj);
                }
            }
            if (!distributorList.isEmpty()) {
                for (Distributor__c obj: distributorList) {
                    visitList vObj = new visitList();
                    vObj.Id = obj.Id;
                    vObj.Name = obj.Name;
                    vObj.Type = 'Distributor';
                    vList.add(vObj);
                }
            }
            vist_List = vList;
            system.debug('vist_List' + vist_List);
        } catch (Exception e) {
            System.debug('Message:=' + e.getMessage() + '***' + e.getLineNumber());
        }
    }
  
    public class visitList {
        public string Id {get;set;}
        public string Name {get;set;}
        public string Type {get;set;}
    }
}



Test Class:-

@isTest
public class FullCalendarDemoTest {
  @testSetup
    static void setTestData(){
        Profile p = [SELECT Id FROM Profile WHERE Name='System Administrator']; 
        User u = new User(Alias = 'standt', Email='testsystemadmin@testorg.com', 
            EmailEncodingKey='UTF-8', LastName='Test admin', LanguageLocaleKey='en_US', 
            LocaleSidKey='en_US', ProfileId = p.Id, 
            TimeZoneSidKey='America/Los_Angeles', UserName='testadmin@testorg.com');
    insert u;
        
        Profile p1 = [SELECT Id FROM Profile WHERE Name='Standard User']; 
        User u1 = new User(Alias = 'standt', Email='standarduser@testorg.com', 
            EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US', 
            LocaleSidKey='en_US', ProfileId = p1.Id, 
            TimeZoneSidKey='America/Los_Angeles', UserName='teststandarduser@testorg.com');
        insert u1;
        
        Account acc = new Account(Name='TestAccount');
        Contact cont = new Contact(lastName='TestContact', AccountId = acc.Id);
        Event testEvent = new Event();
        testEvent.WhoId = cont.Id;
        testEvent.StartDateTime = DateTime.newInstance(2021, 8, 20);
        testEvent.EndDateTime = DateTime.newInstance(2021, 8, 21);
        testEvent.OwnerId = u.Id;
        insert testEvent;
        
        Dealer__c dlr = new Dealer__c();
        dlr.Dealer_Name__c = 'Test Dealer';
        dlr.Phone__c = '1234567890';
        dlr.Pincode__c = '234567';
        dlr.Address1__c = 'test address 1';
        dlr.GSTN__c = '29AAACC1206D2ZB';
        dlr.Region__c = 'Bihar';
        dlr.District__c = 'Bhojpur';
        dlr.City__c = 'CHARKHI DADRI';
        dlr.Commission_Rate__c = 23.23;
        dlr.PAN__c = 'CDJNS7339L';
        dlr.Whatsapp_Number2__c = '9876456789';
        dlr.Whatsapp_Number__c  ='3434543456';
        dlr.Latitude__c = 77.2342344;
        dlr.Longitude__c = 98.7876787;
        dlr.TCS_Required__c = 'yes';
        dlr.Status__c = 'Approved';
        Sub_Dealer__c sdlf = new Sub_Dealer__c();
        sdlf.title__c ='Mr';
        sdlf.Name = 'Test subdealer';
        sdlf.Region__c = 'Bihar';
        sdlf.GSTN__c = '29AAACC1206D2ZV';
        sdlf.PAN__c = 'CDJNS7339H';
        sdlf.Whatsapp_Number2__c = '9876456799';
        sdlf.Whatsapp_Number__c  ='3434543476';
        sdlf.Phone__c = '1234567870';
        sdlf.Pincode__c = '234587';
        sdlf.TCS_Required__c ='yes';
        sdlf.Status__c = 'Approved';
        Distributor__c dbr = new Distributor__c();
        dbr.title__c = 'Mr';
        dbr.Distributor_Name__c = 'Test Distributor';
        dbr.Region__c ='Bihar';
        dbr.GSTN__c = '29AAACC1606D2ZV';
        dbr.PAN_Number__c = 'HDJNS7339H';
        dbr.Whatsapp_Number2__c = '9876456999';
        dbr.Whatsapp_Number__c  ='3434547476';
        dbr.Phone__c = '1234568870';
        dbr.Pincode__c = '234577';
        dbr.TCS_Required__c ='yes';
        dbr.Status__c = 'Approved';
        insert dlr;
        insert sdlf;
        insert dbr;
    }
    
    @isTest
    static void FullCalendarDemoTest(){
        User usr = [select id, UserName from user where UserName = 'testadmin@testorg.com'];
        System.runAs(usr){}
        List < selectOption > userlist = FullCalendarDemo.getUsers();
        User usrstandard = [select id, UserName from user where UserName = 'teststandarduser@testorg.com'];
        System.runAs(usrstandard){}
        List < selectOption > stduserlist = FullCalendarDemo.getUsers();
        List < User_Calendar__c > uc = FullCalendarDemo.getEvents(usr.Id);
        FullCalendarDemo fcd = new FullCalendarDemo();
        List < SelectOption > accounttypes = fcd.getAccountTypeValues();
    }    
    
}User-added image
NILKAMAL ROUTNILKAMAL ROUT
Nice One this Article. (https://aboutorissa.com/)
NILKAMAL ROUTNILKAMAL ROUT