You need to sign in to do that
Don't have an account?
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.
Test Class
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(); } }