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
neeedhelpneeedhelp 

How to write a test class for apex error message

if(themecontent.size()>0)
{
ck=true;
}
else{
ApexPages.Message errMsg= new ApexPages.Message(ApexPages.severity.ERROR, 'Please Create a Layout First ! ');
ApexPages.addMessage(errMsg);

 } 

 

Need a test class for this.......help pls

vishal@forcevishal@force

how is data getting populated in the list themecontent?

Are you using seeAllData = true?

 

I think it would be easier if you share your whole code here :)

neeedhelpneeedhelp

Here is my constructor

 

public EventRegistration(){
 levelcheck=true;
lid = ApexPages.currentPage().getParameters().get('lid');
if(ApexPages.currentPage().getParameters().get('event_id')!=null)
{
timeout=false;
eventsoldout=false;
eid = ApexPages.currentPage().getParameters().get('event_id');
RegistrantId=ApexPages.currentPage().getParameters().get('Registrant');
}

string layout = ApexPages.currentPage().getParameters().get('pagename');
today=system.now();
system.debug('todaydates'+today);

if(layout!=null)
{
CheckStyleRec = [select Id,Name from Event_Layout__c where Page__c=:layout and Event_name__c=:eid];
if(!CheckStyleRec.isEmpty())
{
LayoutPageName=layout;
}
}

system.debug('event_id'+eid);
system.debug('layoutname'+LayoutPageName);

if(eid!=null){

EventId=[select id,Name,C_P_Account_Id__c,Event_Ended__c,Total_Inventory__c,Maximum_capacity__c,Available_Inventory__c,End_date_and_time__c from Event__c where Id=:eid];
// system.debug('today'+DateTime.valueOf(today));
// system.debug('enddate'+DateTime.valueOf(EventId.End_date_and_time__c));
// system.debug('timezone'+today.format('MM/dd/yy HH:mm a', 'PST'));
if(today>=EventId.End_date_and_time__c)
{
timeout=true;
}
if(EventId.Available_Inventory__c<=0 && timeout==false && EventId.Total_Inventory__c!=null)
{
eventsoldout=true;
}
 Datetime current1= System.now();
 list<Event__C> eventpublish = [select Id,Publish_date__c from event__c where id=:eid and Publish_date__c<=:current1 limit 1];

if(!eventpublish.isEmpty())
{
CheckStyleRec = [select Id,Name from Event_Layout__c where Page__c=:LayoutPageName and Event_name__c=:eid and Start_date__c <=:current1 AND End_date__c >=:current1 limit 1];

if(!CheckStyleRec.isEmpty())
{

StyleRec=[select Name,Engine_CSS__c,Main_Section_Background_Color__c,Show_Page_Image__c ,Custom_Page_Html__c,Theme_Selection__c,Display_Banner__c,Display_Description__c,Display_Footer__c,Display_Title__c,Display_Title_Information__c,Footer_Border_Color__c,Main_Section_Border_Color__c,Page_Section_Border_Color__c,Title_Section_Border_Color__c,Section_titleheader_background__c,Term_Background_color__c,Section_font_size__c,Section_font_family__c,Button_font_size__c,Button_font_family__c,Acknowledgement_mandatory__c,Logo_width__c,Section_Description__c,Section_title__c,Show_ajenda__c,Button_Label__c,Action_button_background__c,Action_button_text__c,End_date__c,Event_name__c,Font_family__c,Font_size__c,Footer_background__c,Footer_information__c,Footer_text__c,Page__c,Page_background__c,Page_header__c,Page_name__c,Section_Headers_background__c,Section_headers_text__c,Show_terms_conditions__c,Start_date__c,Terms_conditions__c,Title_and_information__c,Upload_background_image__c,Upload_banner__c,Upload_logo__c from Event_Layout__c where Page__c=:LayoutPageName and Event_name__c=:EventId.Id and Start_date__c <=:current1 AND End_date__c >=:current1 limit 1];
Logowidth=StyleRec.Logo_width__c;

if(StyleRec.Theme_Selection__c=='Custom Theme')
{

string t=StyleRec.Custom_Page_Html__c;
if(t!=null)
{ pdfcontent=new list<string>();
pdf=t.contains('<@CnP_PaaS_Evt_Pdf>');
if(pdf==true)
{
pdfcontent=t.split('<@CnP_PaaS_Evt_Pdf>',2);
system.debug('pdfcontent'+pdfcontent);
 t=pdfcontent[0];
boolean show=pdfcontent[1].contains('<@Show>');
if(show==true)
{

list<string> show1 = pdfcontent[1].split('<@Show>',2);
system.debug('showpdf'+show1);
// pdfcontent[1]=show1[1];
//t+=show1[1];
boolean sh_e = show1[1].contains('</@Show>');
if(sh_e)
{
show1=show1[1].split('</@Show>',2);
pdfshow = show1[0].toLowerCase();
pdfcontent[1]=show1[1];
t+=show1[1];
}
}
}
boolean en;
if(pdfcontent.size()>0)
{
en =pdfcontent[1].contains('<@CnP_PaaS_Evt_Engine>');
}else{
en =t.contains('<@CnP_PaaS_Evt_Engine>');
}
if(en==true)
{
if(pdf==true)
{
themecontent=pdfcontent[1].split('<@CnP_PaaS_Evt_Engine>',3);
}else{
themecontent=t.split('<@CnP_PaaS_Evt_Engine>',3);
}
system.debug('themecontent1'+themecontent[1]);
tc = themecontent[1].contains('<@CnP_PaaS_Evt_TnC>');
if(tc==true)
{
termcontent=themecontent[1].split('<@CnP_PaaS_Evt_TnC>',2);
themecontent[1]=termcontent[1];
system.debug('testing terms'+termcontent[1]);
re = termcontent[1].contains('<@Required>');
if(re==true)
{
termcontent=termcontent[1].split('<@Required>',2);
themecontent[1]=termcontent[1];
}
boolean re_e = termcontent[1].contains('</@Required>');
if(re_e==true)
{
termcontent=termcontent[1].split('</@Required>',2);
themecontent[1]=termcontent[1];
//pdfcontent[1]=themecontent[1];
}
system.debug('termsrequired'+termcontent[1]);
}
system.debug('termcondition'+tc);
if(themecontent.size()>0)
{
ck=true;
}
}

}
}
}else{
ApexPages.Message errMsg= new ApexPages.Message(ApexPages.severity.ERROR, 'Please Create a Layout First ! ');
ApexPages.addMessage(errMsg);

}


availableLevelFields = [select id,Name from Registration_level__c where Event_name__c=:eid and Display_this_registration_from__c <=:current1 AND Hide_this_registration_from__c >=:current1];

if(availableLevelFields.isEmpty())
{
ApexPages.Message errMsg= new ApexPages.Message(ApexPages.severity.ERROR, 'Please Create a Registration Level First !');
ApexPages.addMessage(errMsg);
levelcheck=false;
}

}else{
ApexPages.Message errMsg= new ApexPages.Message(ApexPages.severity.ERROR, 'Comming Soon!!! ');
ApexPages.addMessage(errMsg);
}

}

// lid = ApexPages.currentPage().getParameters().get('lid');
if(lid!=null)
{
EventStyleRec = [select id,Section_header_title__c,Section_description__c,Section_titleheader_background__c,Name,Font_family__c,Font_size__c,Footer_background__c,Footer_information__c,Footer_text__c,Logo_width__c,Page_background__c,Page_header__c,Public_site__c,Public_Site_Url__c,Section_Headers_background__c,Section_headers_text__c,Title_and_information__c,Upload_background_image__c,Upload_banner__c from Event_listing__c where Id=:lid];
Events = [select id,Name,Event_title__c,Start_date_and_time__c,End_date_and_time__c from Event__c where Publish_date__c <=:today AND End_date_and_time__c >=:today and Event_listing__c=:lid order by Start_date_and_time__c desc];
if(Events.isEmpty())
{
ApexPages.Message errMsg= new ApexPages.Message(ApexPages.severity.ERROR, 'No Events Occure for this site ');
ApexPages.addMessage(errMsg);
}
}

}

 

 

and part of the test class for this is

 

 

string stringDate = year + '-' + month+ '-' + day + ' ' + hour + ':' +minute + ':' + second;
Datetime myDate =datetime.valueOf(stringDate);
user u = [select id,name from user limit 1];
Event__c evinsert = new Event__c(name='testing',C_P_Account_Id__c='133',End_date_and_time__c=myDate,Publish_date__c=myDate,Start_date_and_time__c=myDate,Time_zone__c='(GMT+14:00) Line Is. Time (Pacific/Kiritimati)',Address__c='hyd',Event_title__c='test',Event_user_coorditator__c=u.id);
insert evinsert;
System.assertEquals(evinsert.Name,'testing');
Datetime current1= System.now();
Event_Layout__c el = new Event_Layout__c(name='testlayout',Theme_Selection__c='Custom Theme',Custom_Page_Html__c='<div><@CnP_PaaS_Evt_Engine><@CnP_PaaS_Evt_TnC><@Required></@Required></@CnP_PaaS_Evt_TnC></@CnP_PaaS_Evt_Engine></div>',Action_button_text__c='test1:test;test2:test2;test3:test3',Section_headers_text__c='test1:test;test2:test2;test3:test3',Page__c='Page 1- Opening Page',Event_name__c=evinsert.id,Start_date__c=current1,End_date__c=current1,Section_Headers_background__c='#fffff');
insert el;
Apexpages.currentPage().getParameters().put('event_id',evinsert.id);
ApexPages.currentPage().getParameters().put('pagename','Page 1- Opening Page');

EventRegistration eventreg = new EventRegistration();
eventreg.setLayoutPageName('Page 1- Opening Page');
eventreg.getLevelDetails();
eventreg.checkcookie();

eventreg.getEventRec();
eventreg.getStyleRec();
eventreg.getEventStyleRec();

eventreg.PaymentUrlframe='test';
eventreg.getavailableLevelFields();
EventRegistration.ContactFieldsClass cf = new EventRegistration.ContactFieldsClass();

EventRegistration.AttendeeFieldsClass af = new EventRegistration.AttendeeFieldsClass();
// EventRegistration.AttendeeCustomFieldsClass acf = new EventRegistration.AttendeeCustomFieldsClass();
// eventreg.AttendeeForm();
eventreg.getResultSet();
Contact c = new contact(FirstName='Firoz',LastName='khan',Email='john@gmail.com');
insert c;

eventreg.CreateContact(c,'Attendee');
ApexPages.currentPage().getParameters().put('Registrant',c.id);
// eventreg.setRegistrantId(c.id);


// eventreg.getPaymentUrlframeMethod();
eventreg.setResultSet(eventreg.getResultSet());
eventreg.GotoPage_2();
eventreg.CreateContact(c,'Registrant');
//eventreg.GotoPage_3();
list<AggregateResult> ar = new list<AggregateResult>();
// ar.put('LevelId','123123123');
// ar.put('price',400);
list<EventRegistration.ContactFieldsClass> cfd = eventreg.getavailableContactFields();
list<EventRegistration.AttendeeFieldsClass> attenfields = eventreg.getavailableAttendeeFields();
Registration_level__c registrationlevel = new Registration_level__c(price__c=400,name='testing',Tax_rate__c=30,Additional_Fee__c=300,Event_name__c=evinsert.id);
insert registrationlevel;
Event_registrant_session__c eventregsession = new Event_registrant_session__c(ContactId__c=c.id,EventId__c=evinsert.id,Status__c='Pending');
insert eventregsession;
//ApexPages.currentPage().getParameters().get('Registrant').put
Event_attendee_session__c eventsession = new Event_attendee_session__c(Registrant_session_Id__c=eventregsession.id,Registration_level__c=registrationlevel.id,EventId__c=evinsert.id);
insert eventsession;

 

 

Prady01Prady01

Hello there, hope this helps!

@isTest
private class ClassnameTest
{
    static testMethod void testClassname()
    {
            // data goes here or you can insert using new way using CSV file and test.load 
            object data = new object();
            data.name = 'name';
            try{
            insert data;
            }
            catch(Exception e){
             Boolean expectedExceptionThrown =  e.getMessage().contains('Here goes your custom message') ? true : false;
            system.assertEquals(expectedExceptionThrown,true);       
			} 

    } 

}

 

neeedhelpneeedhelp

tried this way but not yet covered.....Here is the code of the controller

 

 

List<Registration_level__c> availableLevelFields;

 

availableLevelFields = [select id,Name from Registration_level__c where Event_name__c=:eid and Display_this_registration_from__c <=:current1 AND Hide_this_registration_from__c >=:current1];

if(availableLevelFields.isEmpty())
{
ApexPages.Message errMsg= new ApexPages.Message(ApexPages.severity.ERROR, 'Please Create a Registration Level First !');
ApexPages.addMessage(errMsg);
levelcheck=false;
}

else{
ApexPages.Message errMsg= new ApexPages.Message(ApexPages.severity.ERROR, 'Comming Soon!!! ');
ApexPages.addMessage(errMsg);
}

 

public List<Registration_level__c> getavailableLevelFields() { 

availableLevelFields=[Select Id,Tax_Deductible__c,Additional_Fee_label__c,Inventory_Sold__c,Name,Price__c,Limit_for_this_type__c,Available_Inventory__c,Description__c,Tax_rate__c,Additional_Fee__c,Display_this_registration_from__c from Registration_level__c where Event_name__c=:EventId.Id and Display_this_registration_from__c <=:today AND Hide_this_registration_from__c >=:today order by Order_level__c ASC];
system.debug('check availableLevelFields' +availableLevelFields + Today);
//LevelName=availableLevelFields[1].Name;
if(!availableLevelFields.isEmpty())
{
//return new List<LevelsClass>(LevelFields);
for(Registration_level__c L : availableLevelFields){
decimal tax=(L.Price__c+L.Additional_Fee__c)*(L.Tax_rate__c/100);
L.Tax_rate__c=tax;
}
return availableLevelFields;
}else{
ApexPages.Message errMsg= new ApexPages.Message(ApexPages.severity.ERROR, 'Please Create a Level First !'); 
ApexPages.addMessage(errMsg);
return null; 
}

}

 

and part of my test class is

 

 

 eventreg.getavailableLevelFields();

Registration_level__c data = new Registration_level__c();
data.name = 'Aruna';
try{
insert data;
}
catch(Exception e){
Boolean expectedExceptionThrown = e.getMessage().contains('Coming soon') ? true : false;
system.assertEquals(expectedExceptionThrown,true);
}

 

The entire class is covered except the class in Bold letters aren't covered.....help pls

Prady01Prady01

Hello there,

 

You error message in the apex class don correspond to the error message in the test class, This might be the problem, try it out! and make sure the availableLevelFields is not empty in the test class so that test class can travese inside the else loop.

 

 

Hope this helps!

vpmvpm
Hi

Is your error message solved? If yes means please explain to me.I am facing this problem.