function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
amit wagaskaramit wagaskar 

how to write a test class for below apex trigger

//apex trigger
trigger Validate_attachment on Lead (before insert,before update) {
    
    set<id> ldList=new set<id>();
    
    list<lead>validatelead=[select id,name,leadsource,email from lead where id in:trigger.new];
    for(lead newlead:trigger.new)
    {
    
    List<sObject> objList = new List<sObject>();
    List<lead> leadList=[select id,FirstName,LastName,LeadSource,Email,Email_Sent__c from lead where id IN:trigger.new];
   if((newlead.LeadSource=='Job Application India' || newlead.LeadSource=='Job Application Non-India')&& newlead.attachments.isempty()) 
       
   {
       system.debug('******');
      newlead.adderror('please upload the attchament');
      ldList.add(newlead.id);
       
   }
}
    //list <lead> validatelead = new list<lead>();
    validatelead=[select id,name,leadsource,email,(select id,name from attachments) from lead where id in:ldList];
    
    for(lead l:validatelead)
    {
         if(l.attachments.size()==null)
         {
             l.adderror('please upload the attchament');
             
         }     
    }
    
}
Best Answer chosen by amit wagaskar
Raj VakatiRaj Vakati
TRy this test class but looks like you code is not correct .. please check once
 
@isTest
public class Validate_attachmentTest {

static testmethod void saveLeadtest()
{
Lead le = new Lead(LastName='Test Lead',Email='Testemail@test.com',Company='Test Company',LeadSource='Job Application India');
insert le ; 
Blob b = Blob.valueOf('Test Data');
Attachment attachment = new Attachment();
attachment.Name = 'Test Attachment for Parent';
attachment.Body = b;
attachment.ParentId  =le.id ;
insert attachment;
}
}

 

All Answers

Raj VakatiRaj Vakati
TRy this test class but looks like you code is not correct .. please check once
 
@isTest
public class Validate_attachmentTest {

static testmethod void saveLeadtest()
{
Lead le = new Lead(LastName='Test Lead',Email='Testemail@test.com',Company='Test Company',LeadSource='Job Application India');
insert le ; 
Blob b = Blob.valueOf('Test Data');
Attachment attachment = new Attachment();
attachment.Name = 'Test Attachment for Parent';
attachment.Body = b;
attachment.ParentId  =le.id ;
insert attachment;
}
}

 
This was selected as the best answer
amit wagaskaramit wagaskar
Hi raj,
yes you are right ,i posted wrong code.
the right code should be like:
 trigger Validate_attachment on Lead (before insert,before update) {
    
    set<id> ldList=new set<id>();
    
    list<lead>validatelead=[select id,name,leadsource,email from lead where id in:trigger.new];
    for(lead newlead:trigger.new)
    {
    
    //List<sObject> objList = new List<sObject>();
    //List<lead> leadList=[select id,FirstName,LastName,LeadSource,Email,Email_Sent__c from lead where id IN:trigger.new];
   if((newlead.LeadSource=='Job Application India' || newlead.LeadSource=='Job Application Non-India')&& newlead.attachments.isempty()) 
       
   {
       system.debug('******');
      newlead.adderror('please upload the attchament');
    //  ldList.add(newlead.id);
       
   }
}
}