
Hey Vamshi I have found there is some issue in your main controller i have fixed those plase try both. Test class also cover 100% code coverage Controller:
public with sharing class mycasecom {
public String test2 { get; set; }
public String test1 { get; set; }
public string test3 {get;set;}
public string status {get;set;}
public casecomment ca;
public case c ;
public ID ID ;
public void save(){
id = ApexPages.currentPage().getParameters().get('caseid');
system.debug('case id entered' + ID);
ca = new casecomment();
ca.ParentId= id;
ca.commentbody = test1 + '\n' + test2 + '\n' + test3;
ca.IsPublished = true;
list<case> c = [select Status from case where ID=:ID];
list<case> cc = new list<case>();
for(case cd : c){
cd.Status = 'Closed';
cc.add(cd);
}
try {
insert ca;
update cc;
status = 'saved';
system.debug('status value'+ status);
}catch(DmlException d){
Apexpages.addMessage(new ApexPages.message(Apexpages.Severity.Error, d.getMessage())) ;
status = 'unsaved';
}
}
}
Test Class
Cheers :)@isTest
public class PopupTestClass {
@isTest public static void withcaseid(){
case c = new case(status = 'New',Origin = 'Phone');
insert c;
case ca = [select id, status from case where status = 'New'];
mycasecom cs = new mycasecom();
cs.Test2=('test1');
cs.Test1=('test2');
cs.Test3=('test3');
apexpages.currentPage().getparameters().put('caseid', ca.id);
cs.save();
casecomment cm = [select commentbody, isPublished from casecomment where parentid =: ca.Id];
string str = cs.test1 +'\n'+ cs.test2 +'\n' +cs.test3;
system.assertEquals(str , cm.CommentBody);
system.assert(true, cm.ispublished);
case g = [select Status from case where ID =: ca.Id];
system.assertEquals('Closed', g.status);
}
@isTest static void withoutcaseid(){
case c = new case(status = 'New',Origin = 'Phone');
insert c;
mycasecom cs = new mycasecom();
cs.Test2=('test1');
cs.Test1=('test2');
cs.Test3=('test3');
apexpages.currentPage().getparameters().put('caseid', null);
cs.save();
}
}