Hi All,
I am new to write Apex test class. Can one help me or suggest how to start writing apex text. Below is my Apex Class
public class RadioBtn_SmileyTable_Apex
{
public RB_Rating__c ratobj {get;set;}
public user lgflag {get;set;}
public string Selected {get;set;}
public string EnteredText {get;set;}
public string Redirect {get;set;}
public string QAppname {get;set;}
public string Qimprove {get;set;
public RadioBtn_SmileyTable_Apex()
{
QAppname = 'How satisified you are with '+getAppName();
Qimprove = 'How could we improve?';
}
Public void SelectedAnswer()
{
Selected = Apexpages.currentPage().getParameters().get('conid');
}
public pagereference savefeedback()
{
system.debug('Submit Started : '+ Redirect);
RB_Rating__c ratobj = new RB_Rating__c();
ratobj.Application_Name__c = getAppName();
if(string.isBlank(Redirect))
{
ratobj.Application_Rating__c = Selected;
}
else
{
ratobj.Application_Rating__c = Redirect;
}
ratobj.Description__c = EnteredText;
insert ratobj;
updateflgusertb();
return Auth.SessionManagement.FinishLoginflow('/'+ratobj.Id);
}
public static void updateflgusertb()
{
List<user> userupdate = new List<user>();
for(user usr : [SELECT id,Login_Flows_YN__c FROM USER WHERE ID = :UserInfo.getUserId() LIMIT 1])
{
usr.Login_Flows_YN__c = true;
userupdate.add(usr);
}
update userupdate;
}
public pagereference feedbackexit()
{
updateexitcount();
return Auth.SessionManagement.FinishLoginflow('/');
}
public void updateexitcount()
{
integer exitcnt;
List<user> updatecnt = new List<user>();
for(user cnt : [SELECT Rating_Exit_Count__c FROM USER WHERE ID = :UserInfo.getUserId() LIMIT 1])
{
if (cnt.Rating_Exit_Count__c == null)
{
cnt.Rating_Exit_Count__c = 0;
}
exitcnt = Integer.valueOf(cnt.Rating_Exit_Count__c) + 1;
cnt.Rating_Exit_Count__c = exitcnt;
updatecnt.add(cnt);
}
update updatecnt;
if (exitcnt ==3)
{
insertzerorating();
}
}
public pagereference loginflowsexornot()
{
lgflag =[SELECT Login_Flows_YN__c FROM USER WHERE ID = :UserInfo.getUserId() LIMIT 1];
if (lgflag.Login_Flows_YN__c == true)
{
return Auth.SessionManagement.FinishLoginflow('/');
}
else
{
return null;
}
}
public pagereference redirect()
{
PageReference pg = new PageReference('/apex/Slider_Rating_Redir_VF?retURL='+Selected);
Redirect = ApexPages.currentPage().getparameters().get('retURL');
pg.setRedirect(false);
return pg;
}
public static String getAppName()
{
UserAppInfo userAppInfo = [SELECT Id, AppDefinitionId FROM UserAppInfo WHERE UserId = :UserInfo.getUserId() LIMIT 1];
AppDefinition appDefinition = [SELECT DurableId, Label FROM AppDefinition Where DurableId = :userAppInfo.AppDefinitionId LIMIT 1];
return appDefinition.Label;
}
public pagereference insertzerorating()
{
RB_Rating__c ratobjZero = new RB_Rating__c();
ratobjZero.Application_Name__c = getAppName();
ratobjZero.Application_Rating__c = '0';
ratobjZero.Description__c = EnteredText;
insert ratobjZero;
updateflgusertb();
return Auth.SessionManagement.FinishLoginflow('/'+ratobjZero.Id);
}
}
Thanks in advance. Please provide any sample code
Hi @Tara ch
Welcome to Salesforce! You may refer the following resources (and others) to come up-to-speed in writing apex test classes.
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_qs_test.htm
https://www.youtube.com/watch?v=ch1bo_OpEQM
https://www.sfdcpoint.com/salesforce/test-class-with-example-salesforce/
Regards,
Kannan