You need to sign in to do that
Don't have an account?
sfg1
REST API code coverage
I have REST API class, i am trying to cover 100% code coverage. Currently i have 71 % code coverage. Code in bold are not covered. Can you please guide me.
Apex class:
@RestResource(urlMapping='/mrtValidateNonFSLUser/*')
// This rest service is used by Web-application in order to
// MRT user who are non-FSL.
// Retrieves username and password as post validates against "MRT__c" Table
// Sample Data
// {
// "sUsername": "me@4richie.com",
// "sPassword": "Epirc1961"
//}
global class mrtValidateNonFSLUser {
//Input Class
public class mrtCredintials{
public String sUsername;
public String sPassword;
}
@HttpPost
global static Boolean mrtValidateNonFSLUser () {
//Variables declaration.
List<MRT__c> lstCKSWUser;
mrtCredintials objCred;
RestRequest objReq = RestContext.request;
RestResponse objRes = RestContext.response;
objRes.addHeader('Content-Type','applicatin/json');
try{
objCred = (mrtCredintials) JSON.deserialize(objReq.requestBody.toString(), mrtCredintials.class);
}
Catch(Exception objExp){
return false; //Logging and possible alert to tech team along with exception message.???
}
if(objCred != NULL){
lstCKSWUser = [SELECT Email__c From MRT__c WHERE Email__c =: objCred.sUsername AND Password__c =: objCred.sPassword AND Active__c = true];
return lstCKSWUser.size() > 0 ? true : false;
}
return false;
}
}
TEST class:
@IsTest
public class Test_mrtValidateNonFSLUser {
static testMethod void Method1() {
MRT__c mrt1 = new MRT__c(
Name = 'MRT One',
City__c = 'city',
State__c = 'cp',
Zipcode__c = '123456',
MRTLocation__Latitude__s = 33.9153,
MRTLocation__Longitude__s =-118.351309,
Email__c = 'test@epi.com',
password__c = 'test1234'
);
insert mrt1;
RestRequest req = new RestRequest();
RestResponse res = new RestResponse();
req.requestURI = '/services/apexrest/mrtValidateNonFSLUser';
req.httpMethod = 'POST';
RestContext.request = req;
RestContext.response = res;
test.startTest();
mrtValidateNonFSLUser.mrtValidateNonFSLUser();
test.stopTest();
}
}
Apex class:
@RestResource(urlMapping='/mrtValidateNonFSLUser/*')
// This rest service is used by Web-application in order to
// MRT user who are non-FSL.
// Retrieves username and password as post validates against "MRT__c" Table
// Sample Data
// {
// "sUsername": "me@4richie.com",
// "sPassword": "Epirc1961"
//}
global class mrtValidateNonFSLUser {
//Input Class
public class mrtCredintials{
public String sUsername;
public String sPassword;
}
@HttpPost
global static Boolean mrtValidateNonFSLUser () {
//Variables declaration.
List<MRT__c> lstCKSWUser;
mrtCredintials objCred;
RestRequest objReq = RestContext.request;
RestResponse objRes = RestContext.response;
objRes.addHeader('Content-Type','applicatin/json');
try{
objCred = (mrtCredintials) JSON.deserialize(objReq.requestBody.toString(), mrtCredintials.class);
}
Catch(Exception objExp){
return false; //Logging and possible alert to tech team along with exception message.???
}
if(objCred != NULL){
lstCKSWUser = [SELECT Email__c From MRT__c WHERE Email__c =: objCred.sUsername AND Password__c =: objCred.sPassword AND Active__c = true];
return lstCKSWUser.size() > 0 ? true : false;
}
return false;
}
}
TEST class:
@IsTest
public class Test_mrtValidateNonFSLUser {
static testMethod void Method1() {
MRT__c mrt1 = new MRT__c(
Name = 'MRT One',
City__c = 'city',
State__c = 'cp',
Zipcode__c = '123456',
MRTLocation__Latitude__s = 33.9153,
MRTLocation__Longitude__s =-118.351309,
Email__c = 'test@epi.com',
password__c = 'test1234'
);
insert mrt1;
RestRequest req = new RestRequest();
RestResponse res = new RestResponse();
req.requestURI = '/services/apexrest/mrtValidateNonFSLUser';
req.httpMethod = 'POST';
RestContext.request = req;
RestContext.response = res;
test.startTest();
mrtValidateNonFSLUser.mrtValidateNonFSLUser();
test.stopTest();
}
}
Aslam Chaudhary
Use below code