You need to sign in to do that
Don't have an account?
Michael M
Error on test class: System.DmlException: Insert failed. First exception on row 0; first error: FIELD_INTEGRITY_EXCEPTION, There exists no recipient to which you can send this List Email to.: []
Hello, I am getting this error when trying to run my test class: System.DmlException: Insert failed. First exception on row 0; first error: FIELD_INTEGRITY_EXCEPTION, There exists no recipient to which you can send this List Email to.: [] Class.CampaignEmailHistoryTest.testNotesExtension: line 10, column 1
How can I fix this?
Here is the test class:
@isTest
public class CampaignEmailHistoryTest {
@isTest
static void testNotesExtension(){
Campaign testCampaign= new Campaign(Name= 'Test');
insert testCampaign;
ListEmail le = new ListEmail(campaignId=testCampaign.id, subject= 'hey there',Status= 'Scheduled');
insert le;
ApexPages.StandardController con = new ApexPages.StandardController(testCampaign);
CampaignEmailHistoryExtension dce = new CampaignEmailHistoryExtension(con);
}
}
And the real class:
public class CampaignEmailHistoryExtension {
public final Campaign thisCampaign;
Public List<ListEmail> listEmails {get; set;}
Public CampaignEmailHistoryExtension(ApexPages.StandardController stdController){
this.thisCampaign = (Campaign)stdController.getRecord();
try{
Campaign camp=[Select Id, Name from Campaign where Id = :this.thisCampaign.id];
listEmails = [SELECT ID, campaignId, CreatedDate, CreatedById, CreatedBy.FirstName, CreatedBy.LastName, subject, LastViewedDate
FROM ListEmail
WHERE campaignId IN (Select id from Campaign where Id = :this.thisCampaign.id)];
}
catch(exception e){
Apexpages.addMessage(new ApexPages.Message(ApexPages.SEVERITY.FATAL, 'No old records'));
}
}
}
How can I fix this?
Here is the test class:
@isTest
public class CampaignEmailHistoryTest {
@isTest
static void testNotesExtension(){
Campaign testCampaign= new Campaign(Name= 'Test');
insert testCampaign;
ListEmail le = new ListEmail(campaignId=testCampaign.id, subject= 'hey there',Status= 'Scheduled');
insert le;
ApexPages.StandardController con = new ApexPages.StandardController(testCampaign);
CampaignEmailHistoryExtension dce = new CampaignEmailHistoryExtension(con);
}
}
And the real class:
public class CampaignEmailHistoryExtension {
public final Campaign thisCampaign;
Public List<ListEmail> listEmails {get; set;}
Public CampaignEmailHistoryExtension(ApexPages.StandardController stdController){
this.thisCampaign = (Campaign)stdController.getRecord();
try{
Campaign camp=[Select Id, Name from Campaign where Id = :this.thisCampaign.id];
listEmails = [SELECT ID, campaignId, CreatedDate, CreatedById, CreatedBy.FirstName, CreatedBy.LastName, subject, LastViewedDate
FROM ListEmail
WHERE campaignId IN (Select id from Campaign where Id = :this.thisCampaign.id)];
}
catch(exception e){
Apexpages.addMessage(new ApexPages.Message(ApexPages.SEVERITY.FATAL, 'No old records'));
}
}
}
@isTest
public class CampaignEmailHistoryTest {
@isTest
static void testNotesExtension(){
Campaign testCampaign= new Campaign(Name= 'Test');
insert testCampaign;
ListEmail le = new ListEmail(campaignId=testCampaign.id, subject= 'hey there',Status= 'Scheduled');
// insert le;
ApexPages.StandardController con = new ApexPages.StandardController(testCampaign);
CampaignEmailHistoryExtension dce = new CampaignEmailHistoryExtension(con);
}
}
All Answers
https://salesforce.stackexchange.com/questions/273784/system-dmlexception-insert-failed-first-exception-on-row-0-first-error-canno
It might help you.
@isTest
public class CampaignEmailHistoryTest {
@isTest
static void testNotesExtension(){
Campaign testCampaign= new Campaign(Name= 'Test');
insert testCampaign;
ListEmail le = new ListEmail(campaignId=testCampaign.id, subject= 'hey there',Status= 'Scheduled');
// insert le;
ApexPages.StandardController con = new ApexPages.StandardController(testCampaign);
CampaignEmailHistoryExtension dce = new CampaignEmailHistoryExtension(con);
}
}
reference (https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_listemail.htm):
Has a one-to-many relationship with ListEmailRecipientSource and ListEmailIndividualRecipient.
So you would need to create one or the other in your test class.
Something like:
regards
Andrew
Thank you very much for your answer. I tried with your code, but am still getting the same error message..
regards
Andrew
on this line:
ListEmail le = new ListEmail(Name='testlist', FromAddress='xxx@xxx.net', CampaignId=testCampaign.Id, Subject= 'hey there',Status= 'Scheduled');
regards
Andrew