Skip to main content
Hi ,

Can someone please help me to cover the below 2 lines in catch block in my contoller class 

  Apexpages.addMessage(new ApexPages.message(Apexpages.Severity.Error, d.getMessage())) ;

            status = 'unsaved';

I have used the below code in my class but its entering the catch block while testing, but not sure how to cover those lines.

if(Test.isRunningTest())

              integer intt = 10/0;

Apex class 

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);

       

          if(Test.isRunningTest())

              integer intt = 10/0;

       }catch(DmlException d)

      {

       Apexpages.addMessage(new ApexPages.message(Apexpages.Severity.Error, d.getMessage())) ;

            status = 'unsaved';

      }

}

}

Test Class 

@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'];

        pagereference p = page.casecomment;

        test.setCurrentPage(p);

        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;

        pagereference p = page.casecomment;

        test.setCurrentPage(p);

        mycasecom cs = new mycasecom();

        cs.Test2=('test1');

        cs.Test1=('test2');

        cs.Test3=('test3');

       

        apexpages.currentPage().getparameters().put('caseid', null);

        cs.save();

       

        system.assertEquals('unsaved', cs.status);

        

   }

}
6 answers
  1. Jun 15, 2016, 1:00 PM
    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

    @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();

    }

    }

    Cheers :)
0/9000