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
devloper sfdcdevloper sfdc 

I need to write test class for apex class

Hi All,

I  need to write test class for apex class my code is here-
public class CommenttoEmail {
   
    public String Commentbody {get;set;}
    public String subject {get;set;}
    public String Set_to{get;set;}
    Public String Set_bcc{get;set;}
    public String Set_cc{get;set;}
    public List<String> SetTo {get;set;}
    public List<String> SetCC {get;set;}
    public List<String>  SetBCC{get;set;}
    Public String CaseId {get;set;}
   
    public  String Selec {get;set;}
    public List<String> liststatus {get;set;}
    public boolean flag {set;get;}
    public string Str2;
    
    public String test;
    Public List<string> listall {get;set;} 
     public Attachment attachment {
  get {
      if (attachment == null)
        attachment = new Attachment();
      return attachment;
    }
  set;
  }
    public CommenttoEmail(apexpages.StandardController std)
    { 
        
                
        
        
        liststatus=new List<string>{'New','Working','Escalated','Closed Successful'};
       
        flag=false;
       CaseId=ApexPages.CurrentPage().getParameters().get('Id');
        listall=new List<String>();
        SetTo=new List<String>{};
        SetCC=new  List<String>{};
        SetBCC=new  List<String>{}; 
    }

   
public void senttoEmail()
{
    Case cse = [select id ,CaseNumber ,Status,ContactEmail,subject from case where id=:caseId]; 
   
  SetTo=Set_To.split(',');
 

    
public void bccEmail()
{
  SetBCC=Set_bcc.split(',');
}
    
public void ccEmail()
{
    SetCC=Set_cc.split(',');

    public void ss()
    {
        senttoEmail();
        bccEmail();
        ccEmail();
    }
public void attachemail()
{
  listall.addAll(SetTo);
  listall.addAll(SetBCC);
  listall.addAll(SetCC);
  
}
public pagereference  createCaseComment(){
    ss();
    upload();
attachemail();
sendingEmail();
ChangeStatus();

Case cse = [select id ,CaseNumber ,Status, Contact.name,Account.name,subject from case where id=:caseId];   
String ss=string.join(listall, ',');
String Str1='\n\n';
String Str0='[Recipients:' +ss+']';
String Str3=cse.Contact.name+',\n\n';
String  Reg='\n\n\n Sincerely,\n'+cse.Contact.name+'\n'+cse.Account.name;
   
Str2=Str0+Str1+Str3+Commentbody+Reg;

    
CaseComment cc = new CaseComment(ParentId = cse.Id,CommentBody = str2 , IsPublished=true);
insert cc;
  pagereference pg =new pagereference('/'+CaseId);

return pg;  
   
    }
    
public PageReference sendingEmail()
{
 upload();    
Case cse = [select id ,CaseNumber ,Status, Contact.name,Account.name,subject from case where id=:caseId];   
String ss=string.join(listall, ',');

String Str3=cse.Contact.name+',\n\n';
String  Reg='\n\n\n Sincerely,\n'+cse.Contact.name+'\n'+cse.Account.name;
   
Str2=Str3+Commentbody+Reg;
 List<Messaging.Emailfileattachment> fileAttachments = new List<Messaging.Emailfileattachment>();

for (Attachment a : [select Name, Body, BodyLength from Attachment where ParentId = :caseId]){

Messaging.Emailfileattachment efa = new Messaging.Emailfileattachment();

efa.setFileName(a.Name);
efa.setBody(a.Body);
fileAttachments.add(efa);
}



    try{
  
Messaging.SingleEmailMessage semail = new Messaging.SingleEmailMessage();
semail.setToAddresses(SetTo); 
semail.setBccAddresses(SetBCC); 
semail.setCcAddresses(SetCC); 
semail.setSubject(cse.Subject); 
semail.setPlainTextBody(Str2);
semail.setFileAttachments(fileAttachments);   
   
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {semail}); 
    
    
    }catch(exception e)
    {}
    return null;

    
public pagereference redirectCasePage()
{

CaseId=ApexPages.CurrentPage().getParameters().get('Id');
pagereference pg =new pagereference('/'+CaseId);

return pg;   
}
    
    public void ChangeStatus()
    {
        
         List<Case> cse = [select id ,CaseNumber ,Status,subject from case where id=:caseId]; 
        for(Case c:cse){
            if(selec=='New')
            {
                c.Status='New';
            }
            
            if(selec=='Working')
            {
                c.Status='Working';
            }
            if(selec=='Escalated')
            {
                c.Status='Escalated';
            }
            if(selec=='Closed successful')
            {
                c.Status='Closed successful';
            }
            update c;
        }
           }
       
public List<SelectOption> getCaseStatus()
    {
         List<SelectOption> optlist=new List<SelectOption>();
         Case cse = [select id ,CaseNumber ,Status,subject from case where id=:caseId];
       optlist.add(new SelectOption(cse.Status,cse.Status));
        for(String s:liststatus)
        {
           optlist.add(new SelectOption(s,s));
       
        }    
     return optlist;
    }
    
   public PageReference upload() {
  
    attachment.OwnerId = UserInfo.getUserId();
    attachment.ParentId = CaseId;
    attachment.IsPrivate = true;
    attachment.ContentType = 'image/jpeg';
  
    try {
      insert attachment;
    } catch (DMLException e) {
      ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Error uploading attachment'));
      return null;
    } finally {
      attachment = new Attachment(); 
    }
    ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,'Attachment uploaded successfully'));
    return null;
  }
   
}
Rahul Chaudhary OfficialRahul Chaudhary Official
I hope this helps

https://salesforce.stackexchange.com/questions/102740/how-to-write-test-class-for-standard-controller-along-with-extensions
Raj VakatiRaj Vakati
Use this code
 
@istest
public class CommenttoEmailTest {
    
    static testMethod void testMatching(){
		
		
	 
		  Id rtId = [select Id, name from RecordType where name = 'My Record Type' and SObjectType = 'Case' limit 1].Id;
    

    //create account
    Account acc = new Account();
    //enter details  
    acc.Name = 'Test Account';
     //Add other fields
    insert acc;
  
    
    
    //create case
    Case c = new Case();
    //enter details
    c.AccountId = acc.Id;
  //Add other fields
    c.Type = 'My Type';
    c.Origin = 'My Origin';
    c.Status = 'My Status';
   
    insert c;
	
	PageReference pageRef = Page.YOUR_PAGENAME;
     pageRef.getParameters().put('Id', String.valueOf(c.Id));
     Test.setCurrentPage(pageRef);  
	 
	 
	 

      ApexPages.StandardController sc = new ApexPages.StandardController(c);
     CommenttoEmail  testCmEmail = new CommenttoEmail (sc);
testCmEmail.senttoEmail();
testCmEmail.bccEmail();
testCmEmail.ccEmail();
testCmEmail.attachemail();
testCmEmail.createCaseComment();
testCmEmail.sendingEmail();

  testCmEmail.ChangeStatus();
testCmEmail.getCaseStatus();
testCmEmail.upload();  
	 
        
		
		
        
    }// end of test method
    
    
}// end of Class

 
devloper sfdcdevloper sfdc
Hi Raj 

your code run successfuly but code coverage none.
 
devloper sfdcdevloper sfdc
Any one help to  write test class .
devloper sfdcdevloper sfdc
Hi All 
Please help to write test class for this apex class its very urgent for me please help

public class CommenttoEmail {
   
    public String Commentbody {get;set;}
    public String subject {get;set;}
    public String Set_to{get;set;}
    Public String Set_bcc{get;set;}
    public String Set_cc{get;set;}
    public List<String> SetTo {get;set;}
    public List<String> SetCC {get;set;}
    public List<String>  SetBCC{get;set;}
    Public String CaseId {get;set;}
   
    public  String Selec {get;set;}
    public List<String> liststatus {get;set;}
    public boolean flag {set;get;}
    public string Str2;
    
    public String test;
    Public List<string> listall {get;set;} 
     public Attachment attachment {
  get {
      if (attachment == null)
        attachment = new Attachment();
      return attachment;
    }
  set;
  }
    public CommenttoEmail(apexpages.StandardController std)
    { 
        
                
        
        
        liststatus=new List<string>{'New','Working','Escalated','Closed Successful'};
       
        flag=false;
       CaseId=ApexPages.CurrentPage().getParameters().get('Id');
        listall=new List<String>();
        SetTo=new List<String>{};
        SetCC=new  List<String>{};
        SetBCC=new  List<String>{}; 
    }

   
public void senttoEmail()
{
    Case cse = [select id ,CaseNumber ,Status,ContactEmail,subject from case where id=:caseId]; 
   
  SetTo=Set_To.split(',');
 

    
public void bccEmail()
{
  SetBCC=Set_bcc.split(',');
}
    
public void ccEmail()
{
    SetCC=Set_cc.split(',');

    public void ss()
    {
        senttoEmail();
        bccEmail();
        ccEmail();
    }
public void attachemail()
{
  listall.addAll(SetTo);
  listall.addAll(SetBCC);
  listall.addAll(SetCC);
  
}
public pagereference  createCaseComment(){
    ss();
    upload();
attachemail();
sendingEmail();
ChangeStatus();

Case cse = [select id ,CaseNumber ,Status, Contact.name,Account.name,subject from case where id=:caseId];   
String ss=string.join(listall, ',');
String Str1='\n\n';
String Str0='[Recipients:' +ss+']';
String Str3=cse.Contact.name+',\n\n';
String  Reg='\n\n\n Sincerely,\n'+cse.Contact.name+'\n'+cse.Account.name;
   
Str2=Str0+Str1+Str3+Commentbody+Reg;

    
CaseComment cc = new CaseComment(ParentId = cse.Id,CommentBody = str2 , IsPublished=true);
insert cc;
  pagereference pg =new pagereference('/'+CaseId);

return pg;  
   
    }
    
public PageReference sendingEmail()
{
 upload();    
Case cse = [select id ,CaseNumber ,Status, Contact.name,Account.name,subject from case where id=:caseId];   
String ss=string.join(listall, ',');

String Str3=cse.Contact.name+',\n\n';
String  Reg='\n\n\n Sincerely,\n'+cse.Contact.name+'\n'+cse.Account.name;
   
Str2=Str3+Commentbody+Reg;
 List<Messaging.Emailfileattachment> fileAttachments = new List<Messaging.Emailfileattachment>();

for (Attachment a : [select Name, Body, BodyLength from Attachment where ParentId = :caseId]){

Messaging.Emailfileattachment efa = new Messaging.Emailfileattachment();

efa.setFileName(a.Name);
efa.setBody(a.Body);
fileAttachments.add(efa);
}



    try{
  
Messaging.SingleEmailMessage semail = new Messaging.SingleEmailMessage();
semail.setToAddresses(SetTo); 
semail.setBccAddresses(SetBCC); 
semail.setCcAddresses(SetCC); 
semail.setSubject(cse.Subject); 
semail.setPlainTextBody(Str2);
semail.setFileAttachments(fileAttachments);   
   
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {semail}); 
    
    
    }catch(exception e)
    {}
    return null;

    
public pagereference redirectCasePage()
{

CaseId=ApexPages.CurrentPage().getParameters().get('Id');
pagereference pg =new pagereference('/'+CaseId);

return pg;   
}
    
    public void ChangeStatus()
    {
        
         List<Case> cse = [select id ,CaseNumber ,Status,subject from case where id=:caseId]; 
        for(Case c:cse){
            if(selec=='New')
            {
                c.Status='New';
            }
            
            if(selec=='Working')
            {
                c.Status='Working';
            }
            if(selec=='Escalated')
            {
                c.Status='Escalated';
            }
            if(selec=='Closed successful')
            {
                c.Status='Closed successful';
            }
            update c;
        }
           }
       
public List<SelectOption> getCaseStatus()
    {
         List<SelectOption> optlist=new List<SelectOption>();
         Case cse = [select id ,CaseNumber ,Status,subject from case where id=:caseId];
       optlist.add(new SelectOption(cse.Status,cse.Status));
        for(String s:liststatus)
        {
           optlist.add(new SelectOption(s,s));
       
        }    
     return optlist;
    }
    
   public PageReference upload() {
  
    attachment.OwnerId = UserInfo.getUserId();
    attachment.ParentId = CaseId;
    attachment.IsPrivate = true;
    attachment.ContentType = 'image/jpeg';
  
    try {
      insert attachment;
    } catch (DMLException e) {
      ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Error uploading attachment'));
      return null;
    } finally {
      attachment = new Attachment(); 
    }
    ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,'Attachment uploaded successfully'));
    return null;
  }
   
}