You need to sign in to do that
Don't have an account?
sona gaikwad
test save and cancel method in test class
Controller
public Class LogAcallController{
private ApexPages.StandardController con;
public class DataException extends Exception {}
public Boolean isError = FALSE;
public String whatId = ApexPages.CurrentPage().getParameters().get('what_Id');
public String leadId = ApexPages.CurrentPage().getParameters().get('lead_id');
public string WhoID=ApexPages.CurrentPage().getParameters().get('who_id');
public Lead LeadData;
public String retURL = ApexPages.CurrentPage().getParameters().get('id');
public String parentId;
public Task logACall {get;set;}
public list<Task> TaskList{get;set;}
public Task followUpTask {get;set;}
public Boolean createFollowUpTask {get;set;}
public LogAcallController(){
String queryString = GeneralUtilityClass.getQueryString('Lead');
queryString += ' From Lead WHERE Id =: leadId ';
LeadData= dataBase.query(queryString);
if(WhoId !=null){
parentId = LeadData.Id;
}
else{
parentId = WhatID;
}
TaskList =new List<Task>();
logACall = new Task();
logACall.WhoID=LeadData.id;
logACALL.lEAD__C=LeadData.Id;
logACall.Subject = 'Transferred';
logACall.Task_Type__c = 'Inbound';
followUpTask = new Task();
followUpTask.WhoID=LeadData.id;
createFollowUpTask = FALSE;
Map<String, String> taskRecordTypeMap = new Map<String, String>();
for(Schema.RecordTypeInfo r :Task.SObjectType.getDescribe().getRecordTypeInfos()){
taskRecordTypeMap.put(r.getName(), r.getRecordTypeId());
}
Task logACall = new Task();
logACall.whatId =whatId;
logACall.RecordTypeId = taskRecordTypeMap.get('Call');
logACall.WhoId = WhoId;
}
public PageReference save(){
try{
isError=false;
validateData();
if(isError == TRUE ){
throw new DataException(ErrorMessages.REVIEW_ERROR_MESSAGE);
}
}
catch(exception e){
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, e.getMessage()));
return null;
}
try{
Savepoint sp = Database.setSavepoint();
database.insert(logACall); // insert logACall ;
PageReference pr = new pageReference('/'+leadId);
pr.setRedirect(true);
return pr;
}
catch(exception e){
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, e.getMessage()));
return null;
}
}
public PageReference cancel(){
// PageReference pr = new pageReference(retURL);
PageReference pr = new pageReference ('/apex/LeadEditOverridePage?retURL=/'+leadId+'&id='+leadId);
// PageReference pr = new pageReference(retURL);
pr.setRedirect(true);
return pr;
}
public Boolean validateData() {
isError =False;
if(logACall.Attended_By__c==null) {
logACall.Attended_By__c.addError('Please Enter Attended By Fields');
isError = TRUE;
}
if(logACall.Call_Status__c!='Transferred') {
logACall.Call_Status__c.addError('Please Enter Call Status as Transferred');
isError = TRUE;
}
if(logACall.Call_Status__c=='Transferred' && (logACall.Transferred_To__c==null || logACall.Transferred_To__c=='' )) {
logACall.Transferred_To__c.addError('Please Enter a value');
isError = TRUE;
}
return isError;
}
}
TEST CLASSS
@isTest(seeAllData=false)
private class LogAcallController_TestClass
{
private static Lead newLead;
private static Campaign newCampaign;
private static Task newTask;
private static Task newLogACall;
private static Task newAnotherTask;
private static User newUser;
private static void init() {
newUser = InitializeTestData.createUser('cgpet00D900000010QJQ.test@demmo.com.test');
database.insert(newUser);
newCampaign = InitializeTestData.createCampaign();
database.insert(newCampaign);
newLead = InitializeTestData.createLeadWebsite(newCampaign.Id);
newLead.DecisionMaker__c='Self';
newLead.IsConverted = FALSE;
database.insert(newLead);
newLogACall=InitializeTestData.createLeadLogACall(newLead.Id,newUser.Id);
database.insert(newLogACall);
System.debug('@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'+newLead.Id);
}
private static TestMethod void Test1() {
init();
Test.StartTest();
PageReference pageRef = Page.LogACallPageNew; // Add your VF page Name here
pageRef.getParameters().put('who_id', String.valueOf(newLead.Id));
pageRef.getParameters().put('lead_id', String.valueOf(newLead.Id));
pageRef.getParameters().put('what_Id','');
Test.setCurrentPage(pageRef);
// PageReference testPage = testAccPlan.save();
LogAcallController taskinfo= new LogAcallController();
taskInfo.parentId = newLead.Id;
taskInfo.logACall = newLogACall;
taskInfo.createFollowUpTask = TRUE;
taskinfo.save();
taskinfo.cancel();
// testAccPlan.save();
// testAccPlan.cancel();
Test.StopTest();
}
}
public Class LogAcallController{
private ApexPages.StandardController con;
public class DataException extends Exception {}
public Boolean isError = FALSE;
public String whatId = ApexPages.CurrentPage().getParameters().get('what_Id');
public String leadId = ApexPages.CurrentPage().getParameters().get('lead_id');
public string WhoID=ApexPages.CurrentPage().getParameters().get('who_id');
public Lead LeadData;
public String retURL = ApexPages.CurrentPage().getParameters().get('id');
public String parentId;
public Task logACall {get;set;}
public list<Task> TaskList{get;set;}
public Task followUpTask {get;set;}
public Boolean createFollowUpTask {get;set;}
public LogAcallController(){
String queryString = GeneralUtilityClass.getQueryString('Lead');
queryString += ' From Lead WHERE Id =: leadId ';
LeadData= dataBase.query(queryString);
if(WhoId !=null){
parentId = LeadData.Id;
}
else{
parentId = WhatID;
}
TaskList =new List<Task>();
logACall = new Task();
logACall.WhoID=LeadData.id;
logACALL.lEAD__C=LeadData.Id;
logACall.Subject = 'Transferred';
logACall.Task_Type__c = 'Inbound';
followUpTask = new Task();
followUpTask.WhoID=LeadData.id;
createFollowUpTask = FALSE;
Map<String, String> taskRecordTypeMap = new Map<String, String>();
for(Schema.RecordTypeInfo r :Task.SObjectType.getDescribe().getRecordTypeInfos()){
taskRecordTypeMap.put(r.getName(), r.getRecordTypeId());
}
Task logACall = new Task();
logACall.whatId =whatId;
logACall.RecordTypeId = taskRecordTypeMap.get('Call');
logACall.WhoId = WhoId;
}
public PageReference save(){
try{
isError=false;
validateData();
if(isError == TRUE ){
throw new DataException(ErrorMessages.REVIEW_ERROR_MESSAGE);
}
}
catch(exception e){
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, e.getMessage()));
return null;
}
try{
Savepoint sp = Database.setSavepoint();
database.insert(logACall); // insert logACall ;
PageReference pr = new pageReference('/'+leadId);
pr.setRedirect(true);
return pr;
}
catch(exception e){
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, e.getMessage()));
return null;
}
}
public PageReference cancel(){
// PageReference pr = new pageReference(retURL);
PageReference pr = new pageReference ('/apex/LeadEditOverridePage?retURL=/'+leadId+'&id='+leadId);
// PageReference pr = new pageReference(retURL);
pr.setRedirect(true);
return pr;
}
public Boolean validateData() {
isError =False;
if(logACall.Attended_By__c==null) {
logACall.Attended_By__c.addError('Please Enter Attended By Fields');
isError = TRUE;
}
if(logACall.Call_Status__c!='Transferred') {
logACall.Call_Status__c.addError('Please Enter Call Status as Transferred');
isError = TRUE;
}
if(logACall.Call_Status__c=='Transferred' && (logACall.Transferred_To__c==null || logACall.Transferred_To__c=='' )) {
logACall.Transferred_To__c.addError('Please Enter a value');
isError = TRUE;
}
return isError;
}
}
TEST CLASSS
@isTest(seeAllData=false)
private class LogAcallController_TestClass
{
private static Lead newLead;
private static Campaign newCampaign;
private static Task newTask;
private static Task newLogACall;
private static Task newAnotherTask;
private static User newUser;
private static void init() {
newUser = InitializeTestData.createUser('cgpet00D900000010QJQ.test@demmo.com.test');
database.insert(newUser);
newCampaign = InitializeTestData.createCampaign();
database.insert(newCampaign);
newLead = InitializeTestData.createLeadWebsite(newCampaign.Id);
newLead.DecisionMaker__c='Self';
newLead.IsConverted = FALSE;
database.insert(newLead);
newLogACall=InitializeTestData.createLeadLogACall(newLead.Id,newUser.Id);
database.insert(newLogACall);
System.debug('@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'+newLead.Id);
}
private static TestMethod void Test1() {
init();
Test.StartTest();
PageReference pageRef = Page.LogACallPageNew; // Add your VF page Name here
pageRef.getParameters().put('who_id', String.valueOf(newLead.Id));
pageRef.getParameters().put('lead_id', String.valueOf(newLead.Id));
pageRef.getParameters().put('what_Id','');
Test.setCurrentPage(pageRef);
// PageReference testPage = testAccPlan.save();
LogAcallController taskinfo= new LogAcallController();
taskInfo.parentId = newLead.Id;
taskInfo.logACall = newLogACall;
taskInfo.createFollowUpTask = TRUE;
taskinfo.save();
taskinfo.cancel();
// testAccPlan.save();
// testAccPlan.cancel();
Test.StopTest();
}
}
If you are trying to cover code coverage try below format.
If your are calling same VF page for Save and Cancel try below format.
Please let me know if it useful.
public PageReference cancel(){
PageReference pr = new pageReference ('/apex/LeadEditOverridePage?retURL=/'+leadId+'&id='+leadId);
pr.setRedirect(true);
return pr;
}
my validate method and save method is not covered