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
Avinash Ravisankar 13Avinash Ravisankar 13 

Please help me write a Test Class

Hi,

Could someone please help me write a test class for this below code?. What I've written covers only 34% of the code.
 
public class FormController {
public FormController() {
    }
public string email ;
public Apexpages.StandardController controller;
public Apexpages.StandardController control;
public contact con {get;set;}

public FormController (ApexPages.StandardController stdController) {
this.con = (contact)stdController.getRecord();
this.controller = stdController;
}
public class ReCaptchaController 
{
public ReCaptchaController() {
    }
 public contact cont {get;set;}
 public ReCaptchaController.ReCaptchaController(ApexPages.StandardController control){
 
 this.cont = (contact)control.getRecord();
}   

    public String FirstName{ get; set; }
    public String LastName{ get; set; }
    public String email{ get; set; }
    public String Phone{ get; set; }
  
    
    private String baseUrl = 'https://www.google.com/recaptcha/api/siteverify';
    private String secret = '6LfeAxEUAAAAALR8nFYrEBlv8SVx8TpxujF4hqqk';
    
    public String sitekey 
    {
        get{return '6LfeAxEUAAAAABhd_5yXn6X6nq355jbF0nvtEoQD';}
    }
    
    public String response 
    { 
        get { return ApexPages.currentPage().getParameters().get('g-recaptcha-response'); }
    }
    
    
    public PageReference doVerify () 
    {
        String responseBody = makeRequest(baseUrl,
                'secret=' + secret +
                '&response='+ response
        );
        String success = getValueFromJson(responseBody, 'success');
        if(success.equalsIgnoreCase('true')){
            Contact con = new COntact( LastName = LastName , FirstName= FirstName, email=email);
            try{
                insert con;
                pagereference p = new pagereference('https://cs86.salesforce.com/003/o'+con.id);
                return p;
                }
            Catch(exception e){
                ApexPages.Message errorMsg = new ApexPages.Message(ApexPages.Severity.ERROR, 'Unexpected error while creating contact');
                ApexPages.addMessage(errorMsg);
                return null;
            }
        }else{
            ApexPages.Message errorMsg = new ApexPages.Message(ApexPages.Severity.ERROR, 'Please verify the captcha');
            ApexPages.addMessage(errorMsg);
            return null;
        }
        
    }
    
    
    private String makeRequest(string url, string body)  {
        HttpResponse response = null;
        HttpRequest req = new HttpRequest();   
        req.setEndpoint(url);
        req.setMethod('POST');
        req.setBody (body);
        
        try {
            Http http = new Http();
            response = http.send(req);
            return response.getBody();
            }
            catch(System.Exception e)
            {
            System.debug('ERROR: ' + e);
            }
        return '{"success":false}';
    }   
    
    
    public string getValueFromJson ( String strJson, String field ){
        JSONParser parser = JSON.createParser(strJson);
        while (parser.nextToken() != null) {
            if ((parser.getCurrentToken() == JSONToken.FIELD_NAME)) {
                if(parser.getText() == field){
                    // Get the value.
                    parser.nextToken();
                    return parser.getText();
                }
            }
        }
        return null;
    }
}
 
  
public pagereference submit(){
   try 
   { 
       System.debug('Entered into save');
       if(con.FirstName == null || con.LastName == null || con.Nationality__c == 'Nationality*' || con.Email == null || con.Country_Code__c == 'Code*' || con.Preferred_Time_to_Call__c == 'Preferred time to Call*')
       {
    
            ApexPages.addMessage(new Apexpages.Message(ApexPages.severity.error,'Please fill all mandatory fields.'));
            return null;
       }
    }

catch(DMLException e) 
        {
        return null;
        } 
        
string conname = con.FirstName+' '+con.LastName;
system.debug('conname====>'+conname );
integer flag =1;
list<contact> conlist = [select name,email from contact ];
for(contact c:conlist){
if(c.name == conname && c.email == con.email){
pba__Request__c r = new pba__Request__c();
r.pba__Contact__c = c.id;
r.status__c = 'Pending';

try{
    list<pba__Request__c> relist = [select id,pba__Contact__c,status__c, createddate from pba__Request__c];
         for(pba__Request__c req:relist)
         {
                if(r.pba__Contact__c == req.pba__Contact__c)
                {
                   if((req.status__c == 'Active' || req.status__c == 'Pending')&& (req.createddate.date().daysbetween(System.today()))<7)
                   {
                          pagereference pg = new pagereference('https://c.cs86.visual.force.com/apex/OmniyatErrMsg');
                          return pg;
                          return null;
       
       }
    
    }
    }
    }
    catch(DMLException e) 
        {
          return null;
        }  
insert r;
flag++;
}
}
system.debug('flag==='+flag);
if(flag==1)
{
insert con;
pba__Request__c r = new pba__Request__c();
r.pba__Contact__c = con.id;
r.status__c = 'Active';
insert r;

}


/*ApexPages.Message errorMsg = new ApexPages.Message(ApexPages.Severity.ERROR, 'Please verify the captcha');
            ApexPages.addMessage(errorMsg);
            return null;*/

pagereference pg = new pagereference('http://omniyat-omniyat.cs86.force.com/thankyou');
return pg;
}
}

Test Class
 
@isTest
public class FormController_Test{
public static testmethod void FormController_Test1()

{
Test.StartTest();

PageReference pageRef = new pagereference('https://cs86.visual.force.com/apex/OmniyatErrMsg');
Test.setCurrentPage(pageRef);

PageReference pageRef1 = new pagereference('http://omniyat-omniyat.cs86.force.com/thankyou');
Test.setCurrentPage(pageRef1);

Contact conTemp = new Contact();

conTemp.FirstName = 'Full';
conTemp.LastName = 'Name';
conTemp.Nationality__c = 'India';
conTemp.Preferred_time_to_call__c = 'Forenoon';
conTemp.Country_Code__c = 'Afghanistan +93';
conTemp.Email = 'test@test.com';
conTemp.Phone = '9191919191';

FormController contrl = new FormController();
contrl.Con = conTemp;
contrl.submit();

pba__Request__c reqTemp1 = new pba__Request__c();

reqTemp1.pba__Contact__c = conTemp.Id;
reqTemp1.Status__c = 'Closed';

insert reqTemp1;

Contact conTemp1 = new Contact();

conTemp1.FirstName = 'Full';
conTemp1.LastName = 'Name';
conTemp1.Nationality__c = 'India';
conTemp1.Preferred_time_to_call__c = 'Forenoon';
conTemp1.Country_Code__c = 'Afghanistan +93';
conTemp1.Email = 'test@test.com';
conTemp1.Phone = '9191919191';

//FormController contr2 = new FormController();
//contr2.Con = conTemp1;
//contr2.submit();
ApexPages.StandardController sc = new ApexPages.StandardController(conTemp1);
FormController ControllerObj = new FormController(sc);
ControllerObj.submit();


pba__Request__c reqTemp2 = new pba__Request__c();

reqTemp2.pba__Contact__c = conTemp.Id;
reqTemp2.Status__c = 'Active';

insert reqTemp2;

Test.StopTest();

 }
  }