You need to sign in to do that
Don't have an account?
aaryan sri
Test is not 100% it getting 60 %
Hi All,
Below code am not able to get 100% coverage . Please help me out
public class VFC02_ExportToCSV{
private ApexPages.StandardController controller {get; set;}
public List<TripDetails> trpDetail {get; set;}
public List<List<TripDetails>> trpDetailForExport {get; set;}
public String reqBody {get; set;}
public String message {get; set;}
public boolean error {get; set;}
public boolean sucess {get; set;}
public String tripId {get; set;}
public String country {get; set;}
public VFC02_ExportToCSV() { }
public VFC02_ExportToCSV(ApexPages.StandardController controller) {
this.controller = controller;
}
public List<TripDetails> getZero(){
if(trpDetailForExport.size() >= 1){
system.debug('In Get Zero '+trpDetailForExport[0].size());
return trpDetailForExport[0];
}else{
return null;
}
}
public List<TripDetails> getOne(){
if(trpDetailForExport.size() >= 2){
return trpDetailForExport[1];
}else{
return null;
}
}
public List<TripDetails> getTwo(){
if(trpDetailForExport.size() >= 3){
return trpDetailForExport[2];
}else{
return null;
}
}
public List<TripDetails> getThree(){
if(trpDetailForExport.size() >= 4){
return trpDetailForExport[3];
}else{
return null;
}
}
public List<TripDetails> getFour(){
if(trpDetailForExport.size() >= 5){
return trpDetailForExport[4];
}else{
return null;
}
}
public List<TripDetails> getFive(){
if(trpDetailForExport.size() >= 6){
return trpDetailForExport[5];
}else{
return null;
}
}
public List<TripDetails> getSix(){
if(trpDetailForExport.size() >= 7){
return trpDetailForExport[6];
}else{
return null;
}
}
public List<TripDetails> getSeven(){
if(trpDetailForExport.size() >= 8){
return trpDetailForExport[7];
}else{
return null;
}
}
public List<TripDetails> getEight(){
if(trpDetailForExport.size() >= 9){
return trpDetailForExport[8];
}else{
return null;
}
}
public List<TripDetails> getNine(){
if(trpDetailForExport.size() >= 10){
return trpDetailForExport[9];
}else{
return null;
}
}
public PageReference exportToCSVnew(){
trpDetailForExport = new List<List<TripDetails>>();
tripId = System.currentPageReference().getParameters().get('id');
country = System.currentPageReference().getParameters().get('cty');
Trip_Summary__c trp = new Trip_Summary__c();
if(tripId !=null){
try{
trp = [select Id,First_Name__c,Last_Name__c,User_Id__c,Submitted_Date__c from Trip_Summary__c where Trip_Id__c =:tripId limit 1 ];
}
catch(System.Exception e) {
error = true;
message = e.getMessage();
}
}
if(tripId != null){
trpDetail = new List<TripDetails>();
HttpRequest req = new HttpRequest();
req.setMethod('GET');
//Set HTTPRequest header properties
req.setHeader('content-type', 'application/json');
req.setHeader('Content-Length','0');
req.setHeader('Host',System.Label.SMT_Host);
req.setHeader('Connection','keep-alive');
req.setHeader('User-Agent','Fiddler');
String endPointURL = System.Label.SMT_APIGEE_EndPoint;
String AuthToken = System.Label.SMT_Base64;
String authorizationHeader = 'Basic '+AuthToken;
req.setHeader('Authorization', authorizationHeader);
String EndPoint = endPointURL+tripId;
req.setEndpoint(EndPoint);
Http http = new Http();
try {
//Execute web service call here
HTTPResponse res = http.send(req);
reqBody = res.getBody();
String temp = reqBody.replace('datetime','dttime');
reqBody = temp.replace('lng','longitude');
JSONTrip wrapJSONTrip = new JSONTrip();
wrapJSONTrip = (JSONTrip)JSON.deserialize(reqBody,JSONTrip.class);
trpDetail = wrapJSONTrip.details;
sucess =true;
if(trpDetail != null){
for(TripDetails t:trpDetail){
t.userName = trp.First_Name__c+' '+trp.Last_Name__c;
t.userId = trp.User_Id__c;
if(trp.Submitted_Date__c!=null){
t.submittedDate = trp.Submitted_Date__c.format();
}
Long longtime = Long.valueOf(t.dttime.trim());
DateTime dt = DateTime.newInstance(longtime);
t.dttime = dt.format('MM/dd/yyyy hh:mm:ss');
}
Integer i=0;
List<TripDetails> tmpList = new List<TripDetails>();
for(TripDetails td:trpDetail){
if(i<10000){
tmpList.add(td);
} else {
trpDetailForExport.add(tmpList);
tmpList = new List<TripDetails>();
tmpList.add(td);
i=0;
}
i++;
}
trpDetailForExport.add(tmpList);
}
} catch(System.CalloutException e) {
//Exception handling goes here....
error = true;
message = e.getMessage();
}catch(Exception ex){
error = true;
message = ex.getMessage();
}
} else {
error = true;
message = 'No Trip Id provided';
}
system.debug('size is '+trpDetailForExport.size());
for(List<TripDetails> t:trpDetailForExport){
system.debug('Size is for rec '+t.size());
}
return null;
}
public class JSONTrip{
List<TripDetails> details;
JSONTrip(){
details = new List<TripDetails>();
}
}
public class TripDetails{
public String dttime {get; set;}
public String lat{get; set;}
public String longitude{get; set;}
public String userName {get; set;}
public String userId {get; set;}
public String submittedDate {get; set;}
}
}
Test Class
@isTest
public class VFC02_ExportToCSV_TEST{
private class Mock implements HttpCalloutMock {
public HTTPResponse respond (HTTPRequest req) {
HTTPResponse res = new HTTPResponse();
String temp = String.valueOf(req);
if(temp.contains('CalloutException')){
res.setStatusCode(400);
CalloutException e = (CalloutException)CalloutException.class.newInstance();
e.setMessage('Unauthorized endpoint, please check Setup->Security->Remote site settings.');
throw e;
res.setStatus('Bad request');
res.setBody('');
}
if(temp.contains('SystemException')){
res.setStatusCode(400);
res.setStatus('Bad request');
res.setBody('');
}
else{
res.setStatusCode(200);
res.setBody('{"details": [{"datetime": "1440083090761","lat": "34.1320843","lng": "-84.2131297"}]}');
}
return res;
}
}
static testMethod void exportToCSVTest(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id','2934bd04-50c5-4000-a3b0-5b10f86215c3');
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV();
Test.setMock(HttpCalloutMock.class, new Mock());
Test.startTest();
exportResult.exportToCSVnew();
system.assertEquals(1,exportResult.trpDetail.size());
Test.stopTest();
}
static testMethod void exportToCSVTestNegative(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id',null);
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV(cont);
Test.setMock(HttpCalloutMock.class, new Mock());
Test.startTest();
exportResult.exportToCSVnew();
system.assertEquals(null,exportResult.trpDetail);
Test.stopTest();
}
static testMethod void exportToCSVTestInvalidId(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id','12345');
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV(cont);
Test.setMock(HttpCalloutMock.class, new Mock());
Test.startTest();
exportResult.exportToCSVnew();
system.assertEquals(1,exportResult.trpDetail.size());
Test.stopTest();
}
static testMethod void exportToCSVTestSendCalloutException(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id','CalloutException');
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV(cont);
Test.startTest();
Test.setMock(HttpCalloutMock.class, new Mock());
exportResult.exportToCSVnew();
system.assertEquals(0,exportResult.trpDetail.size());
Test.stopTest();
}
static testMethod void exportToCSVTestSendSystemException(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id','SystemException');
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV(cont);
Test.startTest();
Test.setMock(HttpCalloutMock.class, new Mock());
exportResult.exportToCSVnew();
system.assertEquals(0,exportResult.trpDetail.size());
Test.stopTest();
}
static testMethod void exportToCSVTestTripDetails(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id','SystemException');
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV(cont);
Test.startTest();
VFC02_ExportToCSV.TripDetails testTrip = new VFC02_ExportToCSV.TripDetails();
testTrip.lat = 'lat';
testTrip.longitude = 'longitude';
system.assertEquals(null,exportResult.trpDetail);
Test.stopTest();
}
}
Below code am not able to get 100% coverage . Please help me out
public class VFC02_ExportToCSV{
private ApexPages.StandardController controller {get; set;}
public List<TripDetails> trpDetail {get; set;}
public List<List<TripDetails>> trpDetailForExport {get; set;}
public String reqBody {get; set;}
public String message {get; set;}
public boolean error {get; set;}
public boolean sucess {get; set;}
public String tripId {get; set;}
public String country {get; set;}
public VFC02_ExportToCSV() { }
public VFC02_ExportToCSV(ApexPages.StandardController controller) {
this.controller = controller;
}
public List<TripDetails> getZero(){
if(trpDetailForExport.size() >= 1){
system.debug('In Get Zero '+trpDetailForExport[0].size());
return trpDetailForExport[0];
}else{
return null;
}
}
public List<TripDetails> getOne(){
if(trpDetailForExport.size() >= 2){
return trpDetailForExport[1];
}else{
return null;
}
}
public List<TripDetails> getTwo(){
if(trpDetailForExport.size() >= 3){
return trpDetailForExport[2];
}else{
return null;
}
}
public List<TripDetails> getThree(){
if(trpDetailForExport.size() >= 4){
return trpDetailForExport[3];
}else{
return null;
}
}
public List<TripDetails> getFour(){
if(trpDetailForExport.size() >= 5){
return trpDetailForExport[4];
}else{
return null;
}
}
public List<TripDetails> getFive(){
if(trpDetailForExport.size() >= 6){
return trpDetailForExport[5];
}else{
return null;
}
}
public List<TripDetails> getSix(){
if(trpDetailForExport.size() >= 7){
return trpDetailForExport[6];
}else{
return null;
}
}
public List<TripDetails> getSeven(){
if(trpDetailForExport.size() >= 8){
return trpDetailForExport[7];
}else{
return null;
}
}
public List<TripDetails> getEight(){
if(trpDetailForExport.size() >= 9){
return trpDetailForExport[8];
}else{
return null;
}
}
public List<TripDetails> getNine(){
if(trpDetailForExport.size() >= 10){
return trpDetailForExport[9];
}else{
return null;
}
}
public PageReference exportToCSVnew(){
trpDetailForExport = new List<List<TripDetails>>();
tripId = System.currentPageReference().getParameters().get('id');
country = System.currentPageReference().getParameters().get('cty');
Trip_Summary__c trp = new Trip_Summary__c();
if(tripId !=null){
try{
trp = [select Id,First_Name__c,Last_Name__c,User_Id__c,Submitted_Date__c from Trip_Summary__c where Trip_Id__c =:tripId limit 1 ];
}
catch(System.Exception e) {
error = true;
message = e.getMessage();
}
}
if(tripId != null){
trpDetail = new List<TripDetails>();
HttpRequest req = new HttpRequest();
req.setMethod('GET');
//Set HTTPRequest header properties
req.setHeader('content-type', 'application/json');
req.setHeader('Content-Length','0');
req.setHeader('Host',System.Label.SMT_Host);
req.setHeader('Connection','keep-alive');
req.setHeader('User-Agent','Fiddler');
String endPointURL = System.Label.SMT_APIGEE_EndPoint;
String AuthToken = System.Label.SMT_Base64;
String authorizationHeader = 'Basic '+AuthToken;
req.setHeader('Authorization', authorizationHeader);
String EndPoint = endPointURL+tripId;
req.setEndpoint(EndPoint);
Http http = new Http();
try {
//Execute web service call here
HTTPResponse res = http.send(req);
reqBody = res.getBody();
String temp = reqBody.replace('datetime','dttime');
reqBody = temp.replace('lng','longitude');
JSONTrip wrapJSONTrip = new JSONTrip();
wrapJSONTrip = (JSONTrip)JSON.deserialize(reqBody,JSONTrip.class);
trpDetail = wrapJSONTrip.details;
sucess =true;
if(trpDetail != null){
for(TripDetails t:trpDetail){
t.userName = trp.First_Name__c+' '+trp.Last_Name__c;
t.userId = trp.User_Id__c;
if(trp.Submitted_Date__c!=null){
t.submittedDate = trp.Submitted_Date__c.format();
}
Long longtime = Long.valueOf(t.dttime.trim());
DateTime dt = DateTime.newInstance(longtime);
t.dttime = dt.format('MM/dd/yyyy hh:mm:ss');
}
Integer i=0;
List<TripDetails> tmpList = new List<TripDetails>();
for(TripDetails td:trpDetail){
if(i<10000){
tmpList.add(td);
} else {
trpDetailForExport.add(tmpList);
tmpList = new List<TripDetails>();
tmpList.add(td);
i=0;
}
i++;
}
trpDetailForExport.add(tmpList);
}
} catch(System.CalloutException e) {
//Exception handling goes here....
error = true;
message = e.getMessage();
}catch(Exception ex){
error = true;
message = ex.getMessage();
}
} else {
error = true;
message = 'No Trip Id provided';
}
system.debug('size is '+trpDetailForExport.size());
for(List<TripDetails> t:trpDetailForExport){
system.debug('Size is for rec '+t.size());
}
return null;
}
public class JSONTrip{
List<TripDetails> details;
JSONTrip(){
details = new List<TripDetails>();
}
}
public class TripDetails{
public String dttime {get; set;}
public String lat{get; set;}
public String longitude{get; set;}
public String userName {get; set;}
public String userId {get; set;}
public String submittedDate {get; set;}
}
}
Test Class
@isTest
public class VFC02_ExportToCSV_TEST{
private class Mock implements HttpCalloutMock {
public HTTPResponse respond (HTTPRequest req) {
HTTPResponse res = new HTTPResponse();
String temp = String.valueOf(req);
if(temp.contains('CalloutException')){
res.setStatusCode(400);
CalloutException e = (CalloutException)CalloutException.class.newInstance();
e.setMessage('Unauthorized endpoint, please check Setup->Security->Remote site settings.');
throw e;
res.setStatus('Bad request');
res.setBody('');
}
if(temp.contains('SystemException')){
res.setStatusCode(400);
res.setStatus('Bad request');
res.setBody('');
}
else{
res.setStatusCode(200);
res.setBody('{"details": [{"datetime": "1440083090761","lat": "34.1320843","lng": "-84.2131297"}]}');
}
return res;
}
}
static testMethod void exportToCSVTest(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id','2934bd04-50c5-4000-a3b0-5b10f86215c3');
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV();
Test.setMock(HttpCalloutMock.class, new Mock());
Test.startTest();
exportResult.exportToCSVnew();
system.assertEquals(1,exportResult.trpDetail.size());
Test.stopTest();
}
static testMethod void exportToCSVTestNegative(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id',null);
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV(cont);
Test.setMock(HttpCalloutMock.class, new Mock());
Test.startTest();
exportResult.exportToCSVnew();
system.assertEquals(null,exportResult.trpDetail);
Test.stopTest();
}
static testMethod void exportToCSVTestInvalidId(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id','12345');
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV(cont);
Test.setMock(HttpCalloutMock.class, new Mock());
Test.startTest();
exportResult.exportToCSVnew();
system.assertEquals(1,exportResult.trpDetail.size());
Test.stopTest();
}
static testMethod void exportToCSVTestSendCalloutException(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id','CalloutException');
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV(cont);
Test.startTest();
Test.setMock(HttpCalloutMock.class, new Mock());
exportResult.exportToCSVnew();
system.assertEquals(0,exportResult.trpDetail.size());
Test.stopTest();
}
static testMethod void exportToCSVTestSendSystemException(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id','SystemException');
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV(cont);
Test.startTest();
Test.setMock(HttpCalloutMock.class, new Mock());
exportResult.exportToCSVnew();
system.assertEquals(0,exportResult.trpDetail.size());
Test.stopTest();
}
static testMethod void exportToCSVTestTripDetails(){
PageReference pageRef = Page.VFP02_ExportToCSV;
String tripId = 'ABCDE';
insert AP41_SMT_DataFactory.getATrip();
Test.setCurrentPage(pageRef);
ApexPages.currentPage().getParameters().put('Id','SystemException');
ApexPages.StandardController cont = new ApexPages.StandardController(new Trip_Summary__c());
VFC02_ExportToCSV exportResult = new VFC02_ExportToCSV(cont);
Test.startTest();
VFC02_ExportToCSV.TripDetails testTrip = new VFC02_ExportToCSV.TripDetails();
testTrip.lat = 'lat';
testTrip.longitude = 'longitude';
system.assertEquals(null,exportResult.trpDetail);
Test.stopTest();
}
}
[1] http://blog.deadlypenguin.com/blog/testing/strategies/