You need to sign in to do that
Don't have an account?
kotesh arudra
How to write test class for lightning controller? Can any one pls suggest me?
public with sharing class Sendliteraturecontroller {
@AuraEnabled
public static list <campaign> fetchcampaign() {
list < campaign > returnCamList = new List < campaign > ();
List <campaign> lstCam = [SELECT id,Name,Description,LiteratureID__c,TemporarilyUnavailable__c From campaign];
for (campaign c: lstCam) {
returnCamList.add(c);
}
return lstCam;
}
@AuraEnabled
public static List < String > createRecords(List < String > lstRecordId,id leadid) {
List < String > oErrorMsg = new List < String > ();
lead l = [select id,name,description,phone,email,OwnerId from lead where id=:leadid limit 1];
list<CampaignMember> cm = new list<CampaignMember>();
list<campaign> camps = [select id,Name,LiteratureID__c,TemporarilyUnavailable__c,Description from campaign where id in:lstRecordId];
list<CampaignMember> members =[SELECT id, LeadId ,CampaignId FROM CampaignMember where LeadId=:leadid];
User u =[select id,name from user where name = 'Marry wader' limit 1];
id recordtype=[Select id from RecordType where sObjectType = 'task' and developerName ='Literature_Fulfillment' ].id;
list<id> matched = new list<id>();
list<task> tasks = new list<task>();
for(CampaignMember me :members){
matched.add(me.CampaignId);
}
for(campaign cam :camps){
if(!matched.contains(cam.id)){
cm.add(new CampaignMember(CampaignId = cam.id,leadid = l.id));
task t = new task();
t.RecordTypeId =recordtype;
t.Type = 'Literature Fulfillment';
t.WhoId = l.Id;
t.OwnerId = u.Id;
t.Subject = 'Lead requirement Comment';
t.Priority = 'Normal';
t.Status = 'Not Started';
t.Description = t.Subject+''+cam.Name;
tasks.add(t);
}
}
try{
insert tasks;
}catch (dmlexception ex){
system.debug(' Task cannot be created'+ex.getCause());
}
Database.saveResult[] DR_Dels = Database.insert(cm, false);
for (Database.saveResult dr: DR_Dels) {
if (dr.isSuccess()) {
system.debug('successfully created campaign');
} else {
oErrorMsg.add('');
for (Database.Error err: dr.getErrors()) {
oErrorMsg.add(err.getStatusCode() + ': ' + err.getMessage());
}
}
}
return oErrorMsg;
}
}
@AuraEnabled
public static list <campaign> fetchcampaign() {
list < campaign > returnCamList = new List < campaign > ();
List <campaign> lstCam = [SELECT id,Name,Description,LiteratureID__c,TemporarilyUnavailable__c From campaign];
for (campaign c: lstCam) {
returnCamList.add(c);
}
return lstCam;
}
@AuraEnabled
public static List < String > createRecords(List < String > lstRecordId,id leadid) {
List < String > oErrorMsg = new List < String > ();
lead l = [select id,name,description,phone,email,OwnerId from lead where id=:leadid limit 1];
list<CampaignMember> cm = new list<CampaignMember>();
list<campaign> camps = [select id,Name,LiteratureID__c,TemporarilyUnavailable__c,Description from campaign where id in:lstRecordId];
list<CampaignMember> members =[SELECT id, LeadId ,CampaignId FROM CampaignMember where LeadId=:leadid];
User u =[select id,name from user where name = 'Marry wader' limit 1];
id recordtype=[Select id from RecordType where sObjectType = 'task' and developerName ='Literature_Fulfillment' ].id;
list<id> matched = new list<id>();
list<task> tasks = new list<task>();
for(CampaignMember me :members){
matched.add(me.CampaignId);
}
for(campaign cam :camps){
if(!matched.contains(cam.id)){
cm.add(new CampaignMember(CampaignId = cam.id,leadid = l.id));
task t = new task();
t.RecordTypeId =recordtype;
t.Type = 'Literature Fulfillment';
t.WhoId = l.Id;
t.OwnerId = u.Id;
t.Subject = 'Lead requirement Comment';
t.Priority = 'Normal';
t.Status = 'Not Started';
t.Description = t.Subject+''+cam.Name;
tasks.add(t);
}
}
try{
insert tasks;
}catch (dmlexception ex){
system.debug(' Task cannot be created'+ex.getCause());
}
Database.saveResult[] DR_Dels = Database.insert(cm, false);
for (Database.saveResult dr: DR_Dels) {
if (dr.isSuccess()) {
system.debug('successfully created campaign');
} else {
oErrorMsg.add('');
for (Database.Error err: dr.getErrors()) {
oErrorMsg.add(err.getStatusCode() + ': ' + err.getMessage());
}
}
}
return oErrorMsg;
}
}
Hi raj,
as your suggestions i have written a test class but i am getting "Too many SOQL quaries:101" error So to over come this i have written test.statTest(); and test.stopTest(); but still gtng same error, I was struck here..
@isTest
public class SendliteraturecontrollerTest {
static testmethod void sendlierature(){
test.startTest();
Lead testLead1 = new Lead(LastName = 'Test', Company ='Andersen');
insert testLead1;
List<Lead> testLead2 = new List<Lead>();
for(integer i=0; i<100; i++) {
testLead2.add(new Lead(LastName = 'Test',Company = 'Andersen' + i, Email = i+'@Andersen.com'));
}
insert testLead2;
list<Campaign> cams= new list<Campaign>();
for(integer i=0; i<100; i++) {
cams.add(new Campaign(Name = 'Test Campaign 1', IsActive = True));
}
insert cams;
List<CampaignMember> testCampMemb1 = new List<CampaignMember>();
for(integer i=0; i<100; i++) {
testCampMemb1.add(new CampaignMember(Status = 'Sent', CampaignId = cams[i].id,leadid = testLead2[i].id));
}
insert testCampMemb1;
Sendliteraturecontroller.fetchcampaign();
lead l = [select id,name,description,Phone,Email,ContactPhone__c,OwnerId from lead limit 1];
list<campaign> camps = [select id,Name,LiteratureID__c,TemporarilyUnavailable__c,Description,Part__c from campaign limit 10];
list<string> campaigns = new list<string>();
for(campaign ca :camps){
campaigns.add(ca.id);
}
User thisUser = [Select Id from User where Id = :UserInfo.getUserId()];
System.runAs( thisUser ){
Sendliteraturecontroller.createRecords(campaigns,l.Id);
}
test.stopTest();
}
static testmethod void sendlieraturetest1(){
test.startTest();
Lead testLead1 = new Lead(LastName = 'Test', Company ='Andersen');
insert testLead1;
List<Lead> testLead2 = new List<Lead>();
for(integer i=0; i<100; i++) {
testLead2.add(new Lead(LastName = 'Test',Company = 'Andersen' + i, Email = i+'@Andersen.com'));
}
insert testLead2;
list<Campaign> cams= new list<Campaign>();
for(integer i=0; i<100; i++) {
cams.add(new Campaign(Name = 'Test Campaign 1', IsActive = True,Type='Literature',WebRequest__c ='Mail To'));
}
insert cams;
List<CampaignMember> testCampMemb1 = new List<CampaignMember>();
for(integer i=0; i<100; i++) {
testCampMemb1.add(new CampaignMember(Status = 'Sent', CampaignId = cams[i].id,leadid = testLead2[i].id));
}
insert testCampMemb1;
Sendliteraturecontroller.fetchcampaign();
lead l = [select id,name,description,Phone,Email,ContactPhone__c,OwnerId from lead limit 1];
list<campaign> camps = [select id,Name,LiteratureID__c,TemporarilyUnavailable__c,Description,Part__c from campaign limit 10];
list<string> campaigns = new list<string>();
for(campaign ca :camps){
campaigns.add(ca.id);
}
User thisUser = [Select Id from User where Id = :UserInfo.getUserId()];
System.runAs( thisUser ){
Sendliteraturecontroller.createRecords(campaigns,l.Id);
}
test.stopTest();
}
}