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
Timmy AhluwaliaTimmy Ahluwalia 

test class on apex which is fetching data only

Hi,
How to write a test class for the apex which is fetching data and displaying.
Thanks
Best Answer chosen by Timmy Ahluwalia
Timmy AhluwaliaTimmy Ahluwalia
Raj is there way if i can talk.

 

All Answers

Raj VakatiRaj Vakati
If you want to fetch the data in the test class 

you can do it two ways .. 

1 . Set SeeAll Data to true which is not recommended .. 
 
@isTest(SeeAllData=true)
public class TestDataAccessClass {

    // This test accesses an existing account. 
    // It also creates and accesses a new test account.
    static testmethod void myTestMethod1() {
        // Query an existing account in the organization. 
        Account a = [SELECT Id, Name FROM Account WHERE Name='Acme' LIMIT 1];
        
    }
}

2 .insert the data into the test class and query 
 
@isTest
public class TestDataAccessClass {

    // This test accesses an existing account. 
    // It also creates and accesses a new test account.
    static testmethod void myTestMethod1() {
Account  accs = new Account() ;
accs.Name='Acme'; 
insert accs ;

        // Query an existing account from the test class . 
        Account a = [SELECT Id, Name FROM Account WHERE Name='Acme' LIMIT 1];
        
    }
}

 
Timmy AhluwaliaTimmy Ahluwalia
This is my Apex class i want to write test class  for this. I am fetching the data and displaying on datatable
Thanks
public class CampaignAdvisorTeamController {
    
        @AuraEnabled
    public static List<Advisor_Team__c> showme(Id campaignId){
        List<campaignmember> campaignMemList = [SELECT Id, Name, Status, ContactId, LeadOrContactId, CampaignId 
                                                FROM Campaignmember WHERE CampaignId =:campaignId AND Status = 'Attended'];
        Set<Id> MemberSet = new Set<Id>();
        for(campaignmember cm: campaignMemList){
            MemberSet.add(cm.LeadOrContactId);
        }
        return [select team__c, team__r.Name, advisor__c, advisor__r.Name,Team_Advisor_Email__c,Team_Parent_Entity__c,
                Team__r.Account.ParentId,  Team__r.Account.Parent.Name, Advisor__r.Firm_Name__c,advisor__r.account.Name,
                advisor__r.Account.Parent.Name,Team__r.Account.Name,
                Advisor_Parent_Entity__c,advisor__r.Parent_Entity__c from advisor_team__c
                WHERE advisor__c IN: MemberSet AND team__c NOT IN: MemberSet];
        
    } 
Raj VakatiRaj Vakati
Use this code .. Add all the required field into the object when inserting
 
@isTest
private class CampaignAdvisorTeamControllerTest {
    @isTest static void CampaignAdvisorTeamTest() {
		System.Test.startTest() ;
		
       Campaign camp = new Campaign();
camp.Name = 'Test Campaign';
insert camp;

Account acc = new Account();
acc.Name ='Test Account';
insert acc;

Contact cont= new Contact();
cont.LastName = 'LastName';
cont.AccountId = acc.Id;
insert cont;



CampaignMember cm = new CampaignMember(); 
cm.CampaignId = camp.Id;
cm.ContactId = cont.Id;
cm.Status = 'Attended';
insert cm;


Advisor_Team__c at = new Advisor_Team__c() ;
at.Name ='Test';
at.advisor__c  =cm.Id ;
	// add all other reuired field 
insert at ; 

CampaignAdvisorTeamController.showme(camp.Id);	
System.Test.stopTest() ;
		
	   
    }
}

 
Timmy AhluwaliaTimmy Ahluwalia
Thanks Raj i will try and get back to you
Timmy AhluwaliaTimmy Ahluwalia
Raj is there way if i can talk.

 
This was selected as the best answer
Timmy AhluwaliaTimmy Ahluwalia
Raj,
After displaying i am adding the team member which are not in the campaign member list 
the code is below 
how do i write this Test class.

public static String apexCampaignMember(list<SObject> rows, Id campaignId ){
        List<CampaignMember> campaignMemList = [SELECT Id, Name, Status, ContactId, LeadOrContactId, CampaignId 
                                                FROM CampaignMember WHERE CampaignId =:campaignId];
        List<CampaignMember> MembersToAdd = new List<CampaignMember>();
        Set<Id> MemberSet = new Set<Id>();
        for(campaignmember cm: campaignMemList){
            MemberSet.add(cm.LeadOrContactId);
        }
        for(SObject s: rows){
            Advisor_Team__c team = (Advisor_Team__c)s;
            if(!MemberSet.contains(team.Team__c)){
                CampaignMember cm = new CampaignMember();
                cm.CampaignId=campaignId;
                cm.ContactId=team.Team__c;
                cm.Status='Team';
                MemberSet.add(team.Team__c);
                MembersToAdd.add(cm);
            }
        }
        if(!MembersToAdd.isEmpty()){
            Boolean TeamRequired = true;
            Integer SortOrder = 0;
            for(CampaignMemberStatus stat : [SELECT Id,Label,SortOrder FROM CampaignMemberStatus WHERE CampaignId =: CampaignId ORDER BY SortOrder ASC]){
                if(stat.Label == 'Team'){
                    TeamRequired=false;
                    SortOrder=SortOrder;
                }
            }
            if(TeamRequired){
                SortOrder++;
                CampaignMemberStatus NewStat = new CampaignMemberStatus();
                NewStat.Label='Team';
                NewStat.SortOrder=SortOrder;
                NewStat.CampaignId=CampaignId;
                insert NewStat;
            }
            insert MembersToAdd;
            JSONGenerator gen = JSON.createGenerator(true);
            gen.writeStartObject();
            gen.writeBooleanField('success', true);
            gen.writeStringField('Message', 'Records Added');
            gen.writeEndObject();
            return gen.getAsString();
        } else {
            JSONGenerator gen = JSON.createGenerator(true);
            gen.writeStartObject();
            gen.writeBooleanField('success', true);
            gen.writeStringField('Message', 'No records to add');
            gen.writeEndObject();
            return gen.getAsString(); 
        }
    }
}
Raj VakatiRaj Vakati
What is the issue ... ?
Raj VakatiRaj Vakati
try this 
 
@isTest
private class CampaignAdvisorTeamControllerTest {
    @isTest static void CampaignAdvisorTeamTest() {
		System.Test.startTest() ;
		
       Campaign camp = new Campaign();
camp.Name = 'Test Campaign';
insert camp;

Account acc = new Account();
acc.Name ='Test Account';
insert acc;

Contact cont= new Contact();
cont.LastName = 'LastName';
cont.AccountId = acc.Id;
insert cont;



CampaignMember cm = new CampaignMember(); 
cm.CampaignId = camp.Id;
cm.ContactId = cont.Id;
cm.Status = 'Attended';
insert cm;

List<Advisor_Team__c> listVal = new List<Advisor_Team__c>() ;
for(Integer i = 0 ; i<10 ; i++){
Advisor_Team__c at = new Advisor_Team__c() ;
at.Name ='Test';
at.advisor__c  =cm.Id ;
at.Team__c = cont.Id ;
listVal.add(at) ;
}
insert listVal ; 

CampaignAdvisorTeamController.apexCampaignMember(listVal,camp.Id);	
System.Test.stopTest() ;
		
	   
    }
}

 
Sfdc AdminSfdc Admin
Hi @Raj,
I have used this liink https://rajvakati.com/2018/10/17/lightning-component-clone-with-related-records/#respond for cloning custom objects with related list. Can you please help me with the test class.? it's really urgent.

Thank you!