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
Sudhir_MeruSudhir_Meru 

Code Coverage 0%

Hi, 

 

 I Recently developed a Trigger in SandBox which is working fine. I need to move this to production. But since it has 0% coverage. I am not able to deploy Please suggest me how to move this below code. 

 

 

trigger Updating_Lead_Contact_Field on CampaignMember (after insert, after update) {

 List<Lead> ldlist = new List<Lead>(); 
 List<Contact> ldContact = new List<Contact>(); 
 
 List<CampaignMember> lstCampaignMember = 
 [select id,campaign.Name,
         contactId,contact.Primary_Campaign__c,contact.Recent_Campaign__c,  
         LeadId,Lead.Primary_Campaign__c,Lead.Recent_Campaign__c
  from CampaignMember  
  where id in: trigger.newmap.keyset()];      

  for(CampaignMember cmpmember: lstCampaignMember)
        { 
         
    if ( cmpmember.LeadId != null){        
         
         if(cmpmember.Lead.Primary_Campaign__c == null)
          {
                cmpmember.Lead.Primary_Campaign__c = cmpmember.campaign.ID;
                cmpmember.Lead.Recent_Campaign__c = cmpmember.campaign.ID;
            }
            else
            {
                cmpmember.Lead.Recent_Campaign__c = cmpmember.campaign.ID;
            } 
            ldlist.add(cmpmember.Lead);              
        }
     
      if ( cmpmember.contactId != null){   
          if(cmpmember.Contact.Primary_Campaign__c == null)
          {
                cmpmember.Contact.Primary_Campaign__c = cmpmember.campaign.ID;
                cmpmember.Contact.Recent_Campaign__c = cmpmember.campaign.ID;                 
               
            }
            else
            {
                cmpmember.Contact.Recent_Campaign__c = cmpmember.campaign.ID;
            }   
           ldContact.add(cmpmember.Contact);             
        }             
            

        }

     
    if(ldlist !=null && ldlist.size()>0){
        upsert ldlist;
    }      
   
    if(ldContact !=null && ldContact.size()>0){
        upsert ldContact;
    }      
 
        
}

 

Thanks

Sudhir

Best Answer chosen by Admin (Salesforce Developers) 
Bhawani SharmaBhawani Sharma
You will have to create a test class for that. In your test class you will have to insert the campaign member data.
Sample
@isTest
private class Test_Trigger {
static testMethod myUnitTest() {
Campaign c = new Campaign(Name = 'Test', IsActive = true);
insert c;
Contact con = new Contact(LastName = 'Test', Email = 'test@test.com');
insert con;
CampaignMember cM = new CampaignMember(CampaignId = c.Id, ContactId = con.Id);
insert cM;
}
}

Maybe you need to make some adjustment in code if you get error.

All Answers

Bhawani SharmaBhawani Sharma
You will have to create a test class for that. In your test class you will have to insert the campaign member data.
Sample
@isTest
private class Test_Trigger {
static testMethod myUnitTest() {
Campaign c = new Campaign(Name = 'Test', IsActive = true);
insert c;
Contact con = new Contact(LastName = 'Test', Email = 'test@test.com');
insert con;
CampaignMember cM = new CampaignMember(CampaignId = c.Id, ContactId = con.Id);
insert cM;
}
}

Maybe you need to make some adjustment in code if you get error.
This was selected as the best answer
Sudhir_MeruSudhir_Meru

Hi Bhavani,

 

  Thanks for you reply, I am new to salesforce. Why do we have to create class can you explain me. I just need to move the trigger to prduction from sandbox. And it is not allowing me to move. I am getting Code Covereage Error. Please suggest me

 

  Your Class didnt work. I tried modifing the Code as below still it shows 0% code coverage

 

public class Test_Trigger
{

{
Campaign c = new Campaign(Name = 'Test');
insert c;

Contact con = new Contact(Firstname='Sunil',LastName = 'Test', Email = 'test@test.com');
insert con;

CampaignMember cM = new CampaignMember(CampaignId = c.Id, ContactId = con.Id);
insert cM;
}

}

 

 

Please Suggest me

 

Thanks
Sudhir

Ajay.DixitAjay.Dixit

use @isTest anotation above class definition.

Sudhir_MeruSudhir_Meru

Thanks for your reply. I found the tutor in the below link

 

http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_qs_test.htm

 

Thanks
Sudhir