You need to sign in to do that
Don't have an account?
vicky kr 3
POST METHORD Else Condition Not Working
Here Is My Apex Code,
It working well,Test class stuck at 62%
APEX
@RestResource(urlMapping='/v1/tcwc/')
global class testingCaseWithContact {
@HttpPost
global static Case casecreate(String Email,String lastName){
List<Contact> cont=[Select Id,lastName,Email from Contact];
for(Contact con:cont){
if(con.Email!='Email'){ System.debug('=====ERROR====='); }
else{
Case newCase=new Case(Subject='CaseWithContactInsert',Origin='Chat',Status='Open');
insert newCase;
newCase=[Select Id,CaseNumber,ContactId from Case ORDER BY CreatedDate DESC LIMIT 1];
}
}
return [Select Id,CaseNumber,ContactId from Case ORDER BY CreatedDate DESC LIMIT 1];
}
}
TEST CLASS
@isTest(SeeAllData=false)
public class testingCaseWithContact_Test {
@IsTest
static void testDoPost(){
Contact c = new contact(LastName='Demo',Email='test@gmail.com');
Insert c;
Case TestOpp=new Case ();
TestOpp.Subject='CaseDataWithContactInsert';
TestOpp.Origin='Chat';
TestOpp.Status='Open';
TestOpp.ChatHistory__c='Chat For demo';
TestOpp.ContactID=c.id;
insert TestOpp;
Integer count=[select count() from case where Id=:TestOpp.Id Limit 1];
System.assertEquals(1,count);
testingCaseWithContact reqst=new testingCaseWithContact();
String JsonMsg=JSON.serialize(reqst);
Test.startTest();
RestRequest req = new RestRequest();
RestResponse res = new RestResponse();
req.requestURI = '/services/apexrest/v1/tcwc/'; //Request URL
req.httpMethod = 'POST';//HTTP Request Type
req.requestBody = Blob.valueof(JsonMsg);
RestContext.request = req;
RestContext.response= res;
// Test.startTest();
testingCaseWithContact.casecreate('test@gmail.com','Demo');
insert TestOpp;
Case a=[Select Id,Status from Case Where Id=:TestOpp.Id ORDER BY CreatedDate DESC LIMIT 1];
System.assertEquals('Open',a.Status);
Test.stopTest();
}
}
It working well,Test class stuck at 62%
APEX
@RestResource(urlMapping='/v1/tcwc/')
global class testingCaseWithContact {
@HttpPost
global static Case casecreate(String Email,String lastName){
List<Contact> cont=[Select Id,lastName,Email from Contact];
for(Contact con:cont){
if(con.Email!='Email'){ System.debug('=====ERROR====='); }
else{
Case newCase=new Case(Subject='CaseWithContactInsert',Origin='Chat',Status='Open');
insert newCase;
newCase=[Select Id,CaseNumber,ContactId from Case ORDER BY CreatedDate DESC LIMIT 1];
}
}
return [Select Id,CaseNumber,ContactId from Case ORDER BY CreatedDate DESC LIMIT 1];
}
}
TEST CLASS
@isTest(SeeAllData=false)
public class testingCaseWithContact_Test {
@IsTest
static void testDoPost(){
Contact c = new contact(LastName='Demo',Email='test@gmail.com');
Insert c;
Case TestOpp=new Case ();
TestOpp.Subject='CaseDataWithContactInsert';
TestOpp.Origin='Chat';
TestOpp.Status='Open';
TestOpp.ChatHistory__c='Chat For demo';
TestOpp.ContactID=c.id;
insert TestOpp;
Integer count=[select count() from case where Id=:TestOpp.Id Limit 1];
System.assertEquals(1,count);
testingCaseWithContact reqst=new testingCaseWithContact();
String JsonMsg=JSON.serialize(reqst);
Test.startTest();
RestRequest req = new RestRequest();
RestResponse res = new RestResponse();
req.requestURI = '/services/apexrest/v1/tcwc/'; //Request URL
req.httpMethod = 'POST';//HTTP Request Type
req.requestBody = Blob.valueof(JsonMsg);
RestContext.request = req;
RestContext.response= res;
// Test.startTest();
testingCaseWithContact.casecreate('test@gmail.com','Demo');
insert TestOpp;
Case a=[Select Id,Status from Case Where Id=:TestOpp.Id ORDER BY CreatedDate DESC LIMIT 1];
System.assertEquals('Open',a.Status);
Test.stopTest();
}
}
I made a small correction in your apex class and test class as below. Now this covers 100% of your code.
Apex Class:
Test Class:
Let me know if you face any issues.
If this solution helps, Please mark it as best answer.
Thanks,
All Answers
I made a small correction in your apex class and test class as below. Now this covers 100% of your code.
Apex Class:
Test Class:
Let me know if you face any issues.
If this solution helps, Please mark it as best answer.
Thanks,