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
SalesforceCrm AccountCRMSalesforceCrm AccountCRM 

How to call the Lead conversion in a test class

Can any one help me out.How to call the Lead conversion in a test class?The test code coverage value is showing less.In our org we have a trigger written and the test class,but the code coverage value is displaying only 41% .Any suggestion please.
Trigger :
public class CampaignMemberFunctions {
 public static void UpdateNewToEnterpriseDB(CampaignMember cm, Lead ld)
    {
if(ld.CreatedDate.addHours(6) > DateTime.Now()) 
 cm.New_to_EnterpriseDB__c = true;
    }
public static Boolean SyncStatus(CampaignMember cm, Lead ld, Contact ct, Map<String, CMStatusSettings__c> statusmap)
    {
     Boolean result = true;
     String newvalue;
     if(ct!= null)
        {
            if(statusmap.containsKey(cm.Response_Status__c))
            {
                newvalue = statusmap.get(cm.Response_Status__c).StatusMapping__c;
                if(newvalue == ct.Status__c)
                {
                    result = false;
                }
                else
                {
                    ct.Status__c = newvalue;
                }
            } else if(cm.Response_Status__c == 'Disqualified' || 
                        cm.Response_Status__c == 'Qualified - New Opportunity' ||
                        cm.Response_Status__c == 'Closed - Converted' )
            {
                newvalue = 'Closed - ' + ct.Account.Customer_Status__c + ' Account';
                if(ct.Status__c == newvalue)
                {
                    result = false;
                }
                else
                {
                    ct.Status__c = newvalue;
                }
                if(cm.Response_Status__c == 'Disqualified')
                {   // Set nuture time on disqualified status
                    Date newtimeout = Date.today().addDays((CMScoreEngine__c.getInstance('Default').NurtureTimeoutDays__c).intValue());
                    if(ct.Admin_Nurture_Timeout__c != newtimeout || ct.Lead_Score__c !=0 || ct.Campaign_Score__c !=0) result = true;
                    ct.Admin_Nurture_Timeout__c = newtimeout;
                    ct.Lead_Score__c = 0; 
                    ct.Campaign_Score__c = 0;   // Probably aren't using this one
                }
            } else
            {
                result = false;
            } 
 }

        else if(ld!=null)
        {
            if(statusmap.containsKey(cm.Response_Status__c))
            {
                newvalue = statusmap.get(cm.Response_Status__c).StatusMapping__c;
                if(newvalue==ld.Status)
                {
                    result = false;
                }
                else
                {
                    ld.Status = newvalue;
                }
            } else if(cm.Response_Status__c == 'Disqualified')
            {
                if(ld.Status=='Disqualified' && ld.Disqaulified_Reason__c == cm.Disqualified_Reason__c)
                {
                    result = false;
                }
                else
                {
                    ld.Status = 'Disqualified';
                    ld.Disqaulified_Reason__c = cm.Disqualified_Reason__c;
                    System.Debug('Disqualified reason being set to: ' + cm.Disqualified_Reason__c);
                }
            } else
            {
                result = false;
            }
 } 
        return(result);

    }

    // Search through the converted leads, opportunities and campaignmembers to sync if necessary
    public static void SyncAfterConversion(Map<Id,Lead> convertedleads, Map<Id, Opportunity>convertedops, Map<Id, CampaignMember> possiblecms) 
    {
        for(Lead ld: convertedleads.values())
        {
            // Grab the campaign member - this must be correct by original query
             CampaignMember cm = new CampaignMember();

             System.debug('@@@@@possiblecms.get(ld.admin_CMSourceId__c)'+possiblecms.get(ld.admin_CMSourceId__c));
             cm = possiblecms.get(ld.admin_CMSourceId__c);
             System.debug('@@@@@cm '+cm );
           if(cm!=null)
           {  
            // We know this lead is converted. Let's get the opportunity.             
            if(ld.ConvertedOpportunityId != null)
            {
                Opportunity opp = convertedops.get(ld.ConvertedOpportunityId);
                opp.PMM_stage__c = cm.PMM_Stage__c;
                opp.Product_Interest__c = cm.Product_Interest__c;
                opp.Buyer__c = cm.Buyer__c;
                opp.New_to_EnterpriseDB__c = cm.New_to_EnterpriseDB__c;
                opp.Problem_to_Solve__c = cm.Problem_to_Solve__c;
                opp.Any_OSS_in_current_stack__c = cm.Any_OSS_in_current_stack__c;
                opp.Total_of_Databases_in_your_Org__c = cm.Total_of_Databases_in_your_Org__c;
                opp.Primary_Database__c = cm.Primary_Database__c;
                opp.of_Postgres_Database_Servers__c = cm.of_Postgres_Database_Servers__c;
                opp.Just_learning_about_EnterpriseDB__c = cm.Just_learning_about_EnterpriseDB__c;
                opp.Project_Requires_a_Net_New_DB__c = cm.Project_Requires_a_Net_New_DB__c;
                opp.Timeframe_To_Production__c = cm.Timeframe_To_Production__c;
                opp.Budget__c = cm.Budget__c;
                opp.User__c = cm.User__c;
                opp.Champion__c = cm.Champion__c;
                opp.Decision_Maker__c = cm.Decision_Maker__c;
                cm.Response_Status__c = 'Qualified - New Opportunity';
                cm.Opportunity_Name__c = opp.Id;
                cm.Opportunity_Create_Date__c = Date.Today();
            }

            else
            {                          
                if(cm.lead.status!=null)
                 {
                    cm.Response_Status__c = cm.lead.status;
                 }
            }
            cm.admin_IsConverted__c = true; 
          }           
        }   

    }

    public static void EmailErrorMessage(String message)
    {
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        mail.setToAddresses(new String[] {'edbnotify@bearcavern.com', 'roanbear@gmail.com'});
        mail.setSenderDisplayName('APEX notifier');
        mail.setSubject('SFDC/Eloqua Data Creation Error');
        mail.setPlainTextBody(message);
        List<Messaging.SendEmailResult> results = Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
        for(Messaging.SendEmailResult r: results)
        {
            System.debug('Result of Email sent ' + r.isSuccess());
            if(!r.isSuccess())
            {
                for(Messaging.SendEmailError sme: r.getErrors())
                {
                    for(String s: sme.getFields())  System.Debug('Error for field ' + s );      
                    System.Debug('Error message ' + sme.getMessage());
                    System.Debug('StatusCode ' + sme.getStatusCode());
                }}}}}
Test Class Written :
@isTest(seealldata=true)
Public class TestCampaignMemberFunctions {

   //Checking for if Condition value Response_Status__c= Disqualified 
    Public static testMethod void TestCreationDate() {
        
        Lead ld2 = [select ID, CreatedDate, IsConverted from LEAD where CreatedDate < :DateTime.Now().addHours(-7) and IsConverted=False  LIMIT 1];
        Campaign cam = new Campaign(Name='campname');      
        insert cam;       
        Account a = new Account();
        a.Name ='My Company';
        Insert a;                   
        
        Lead ld = new Lead();
        ld.Company='colead1';  
        ld.LastName ='colead1_'+String.valueOf(System.now());
        ld.status= 'Disqualified';        
        ld.admin_CMSourceId__c= cam.Id;
        ld.Disqaulified_Reason__c='Disqualified';              
        insert ld;
        
        Contact con = new Contact(LastName ='Test');        
        Insert con;               
        Test.StartTest();
        CampaignMember mc1 = new CampaignMember(CampaignId = cam.Id,Product_Interest__c='Services',Response_Status__c='Disqualified',status= 'Junk',PMM_Stage__c='Learns of Postgres', LeadId=ld.Id);
        CampaignMember mc2 = new CampaignMember(CampaignId = cam.Id, LeadId=ld2.Id);
        insert mc1;
        insert mc2; 
        Opportunity opp =new Opportunity();
        opp.Product_Interest__c='Services';
       
        opp.PMM_stage__c ='Deployment';
        opp.Buyer__c = 'xyz';
        opp.New_to_EnterpriseDB__c =True;
        opp.Problem_to_Solve__c ='Performance' ;
        opp.Any_OSS_in_current_stack__c ='OS' ;
        opp.Total_of_Databases_in_your_Org__c ='500';
        opp.Primary_Database__c =mc1.Primary_Database__c;
        opp.of_Postgres_Database_Servers__c = mc1.of_Postgres_Database_Servers__c;
        opp.Just_learning_about_EnterpriseDB__c = mc1.Just_learning_about_EnterpriseDB__c;
        opp.Project_Requires_a_Net_New_DB__c = mc1.Project_Requires_a_Net_New_DB__c;
        opp.Timeframe_To_Production__c = mc1.Timeframe_To_Production__c;
        opp.Budget__c = mc1.Budget__c;
        opp.User__c = mc1.User__c;
        opp.Champion__c = mc1.Champion__c;
        opp.Decision_Maker__c =mc1.Decision_Maker__c;
                
        opp.Name='Testing';
        opp.StageName='Closed Lost';
        opp.CloseDate=System.today(); 
        Insert opp;       
        CampaignMember mc1res = [Select Id, New_to_EnterpriseDB__c,Response_Status__c from CampaignMember where Id = :mc1.id ];
        CampaignMember mc2res = [Select Id, New_to_EnterpriseDB__c from CampaignMember where Id = :mc2.id ];        
        System.assert(mc1res.New_to_EnterpriseDB__c);
        System.assert(! mc2res.New_to_EnterpriseDB__c);
        
        Map<String, CMStatusSettings__c> statusmap = new Map<String, CMStatusSettings__c>();
       // statusmap.put(mc1res.Response_Status__c, custSetting);
                  
        Map<Id,Lead> convertedleads = new Map<Id,Lead>();                   
        convertedleads.put(ld.Id,ld);
        
        Map<Id, Opportunity> convertedops= new Map<Id, Opportunity>();        
        convertedops.put(opp.Id,opp);
          
        Map<Id, CampaignMember> possiblecms= new Map<Id, CampaignMember>();        
        possiblecms.put(mc1.Id,mc1);                                 
        CampaignMemberFunctions  cmf = new CampaignMemberFunctions();
        CampaignMemberFunctions.SyncStatus( mc1res,ld,con,statusmap);
        System.debug('@@@@@convertedleads'+convertedleads);
        System.debug('@@@@@possiblecms'+possiblecms);
        System.debug('@@@@@convertedops'+convertedops);
                
        CampaignMemberFunctions.SyncAfterConversion(convertedleads,convertedops,possiblecms);
        CampaignMemberFunctions.EmailErrorMessage('testmessage');     
        Test.StopTest();    
        }
        //Checking for if Condition value Response_Status__c= Qualified - New Opportunity
        Public static testMethod void TestCreationDate1() {
        
        Lead ld2 = [select ID, CreatedDate, IsConverted from LEAD where CreatedDate < :DateTime.Now().addHours(-7) and IsConverted=False  LIMIT 1];
        Campaign cam = new Campaign(Name='campname');      
        insert cam;       
        Account a = new Account();
        a.Name ='My Company';
        Insert a;                   
        
        Lead ld = new Lead();
        ld.Company='colead1';  
        ld.LastName ='colead1_'+String.valueOf(System.now());
        ld.status= 'Qualified - New Opportunity';        
        ld.admin_CMSourceId__c= cam.Id; 
        ld.Disqaulified_Reason__c='Qualified - New Opportunity';               
        insert ld;
        
        Contact con = new Contact(LastName ='Test');        
        Insert con;               
        Test.StartTest();
        CampaignMember mc1 = new CampaignMember(CampaignId = cam.Id,Product_Interest__c='Services',Response_Status__c='Qualified - New Opportunity',status= 'Junk', LeadId=ld.Id);
        CampaignMember mc2 = new CampaignMember(CampaignId = cam.Id, LeadId=ld2.Id);
        insert mc1;
        insert mc2; 
        Opportunity opp =new Opportunity();
        opp.Product_Interest__c=mc1.Product_Interest__c;
       
        opp.PMM_stage__c = mc1.PMM_Stage__c;
        opp.Buyer__c = mc1.Buyer__c;
        opp.New_to_EnterpriseDB__c =mc1.New_to_EnterpriseDB__c;
        opp.Problem_to_Solve__c = mc1.Problem_to_Solve__c;
        opp.Any_OSS_in_current_stack__c = mc1.Any_OSS_in_current_stack__c;
        opp.Total_of_Databases_in_your_Org__c = mc1.Total_of_Databases_in_your_Org__c;
        opp.Primary_Database__c =mc1.Primary_Database__c;
        opp.of_Postgres_Database_Servers__c = mc1.of_Postgres_Database_Servers__c;
        opp.Just_learning_about_EnterpriseDB__c = mc1.Just_learning_about_EnterpriseDB__c;
        opp.Project_Requires_a_Net_New_DB__c = mc1.Project_Requires_a_Net_New_DB__c;
        opp.Timeframe_To_Production__c = mc1.Timeframe_To_Production__c;
        opp.Budget__c = mc1.Budget__c;
        opp.User__c = mc1.User__c;
        opp.Champion__c = mc1.Champion__c;
        opp.Decision_Maker__c =mc1.Decision_Maker__c;
                
        opp.Name='Testing';
        opp.StageName='Closed Lost';
        opp.CloseDate=System.today(); 
        Insert opp;       
        CampaignMember mc1res = [Select Id, New_to_EnterpriseDB__c,Response_Status__c from CampaignMember where Id = :mc1.id ];
        CampaignMember mc2res = [Select Id, New_to_EnterpriseDB__c from CampaignMember where Id = :mc2.id ];        
        System.assert(mc1res.New_to_EnterpriseDB__c);
        System.assert(! mc2res.New_to_EnterpriseDB__c);
        
        Map<String, CMStatusSettings__c> statusmap = new Map<String, CMStatusSettings__c>();
        //statusmap.put(mc1res.Response_Status__c, custSetting);
                  
        Map<Id,Lead> convertedleads = new Map<Id,Lead>();                   
        convertedleads.put(ld.Id,ld);
        
        Map<Id, Opportunity> convertedops= new Map<Id, Opportunity>();        
        convertedops.put(opp.Id,opp);
          
        Map<Id, CampaignMember> possiblecms= new Map<Id, CampaignMember>();        
        possiblecms.put(mc1.Id,mc1);                                 
        CampaignMemberFunctions  cmf = new CampaignMemberFunctions();
        CampaignMemberFunctions.SyncStatus( mc1res,ld,con,statusmap);
        System.debug('@@@@@convertedleads'+convertedleads);
        System.debug('@@@@@possiblecms'+possiblecms);
        System.debug('@@@@@convertedops'+convertedops);
                
        CampaignMemberFunctions.SyncAfterConversion(convertedleads,convertedops,possiblecms);
        CampaignMemberFunctions.EmailErrorMessage('testmessage');     
        Test.StopTest();    
        } 
          //Checking for if Condition value Response_Status__c= Closed - Converted 
        Public static testMethod void TestCreationDate2() {
        
        Lead ld2 = [select ID, CreatedDate, IsConverted from LEAD where CreatedDate < :DateTime.Now().addHours(-7) and IsConverted=False  LIMIT 1];
        Campaign cam = new Campaign(Name='campname');      
        insert cam;       
        Account a = new Account();
        a.Name ='My Company';
        Insert a;                   
        
        Lead ld = new Lead();
        ld.Company='colead1';  
        ld.LastName ='colead1_'+String.valueOf(System.now());
        ld.status= 'Closed - Converted';        
        ld.admin_CMSourceId__c= cam.Id;
        ld.Disqaulified_Reason__c='Closed - Converted';              
        insert ld;
        
        Contact con = new Contact(LastName ='Test');        
        Insert con;               
        Test.StartTest();
        CampaignMember mc1 = new CampaignMember(CampaignId = cam.Id,Product_Interest__c='Services',Response_Status__c='Closed - Converted',status= 'Closed - Converted', LeadId=ld.Id);
        CampaignMember mc2 = new CampaignMember(CampaignId = cam.Id, LeadId=ld2.Id);
        insert mc1;
        insert mc2; 
        Opportunity opp =new Opportunity();
        opp.Product_Interest__c=mc1.Product_Interest__c;
       
        opp.PMM_stage__c = mc1.PMM_Stage__c;
        opp.Buyer__c = mc1.Buyer__c;
        opp.New_to_EnterpriseDB__c =mc1.New_to_EnterpriseDB__c;
        opp.Problem_to_Solve__c = mc1.Problem_to_Solve__c;
        opp.Any_OSS_in_current_stack__c = mc1.Any_OSS_in_current_stack__c;
        opp.Total_of_Databases_in_your_Org__c = mc1.Total_of_Databases_in_your_Org__c;
        opp.Primary_Database__c =mc1.Primary_Database__c;
        opp.of_Postgres_Database_Servers__c = mc1.of_Postgres_Database_Servers__c;
        opp.Just_learning_about_EnterpriseDB__c = mc1.Just_learning_about_EnterpriseDB__c;
        opp.Project_Requires_a_Net_New_DB__c = mc1.Project_Requires_a_Net_New_DB__c;
        opp.Timeframe_To_Production__c = mc1.Timeframe_To_Production__c;
        opp.Budget__c = mc1.Budget__c;
        opp.User__c = mc1.User__c;
        opp.Champion__c = mc1.Champion__c;
        opp.Decision_Maker__c =mc1.Decision_Maker__c;
                
        opp.Name='Testing';
        opp.StageName='Closed Lost';
        opp.CloseDate=System.today(); 
        Insert opp;       
        CampaignMember mc1res = [Select Id, New_to_EnterpriseDB__c,Response_Status__c from CampaignMember where Id = :mc1.id ];
        CampaignMember mc2res = [Select Id, New_to_EnterpriseDB__c from CampaignMember where Id = :mc2.id ];        
        System.assert(mc1res.New_to_EnterpriseDB__c);
        System.assert(! mc2res.New_to_EnterpriseDB__c);
        
        Map<String, CMStatusSettings__c> statusmap = new Map<String, CMStatusSettings__c>();
        //statusmap.put(mc1res.Response_Status__c, custSetting);
                  
        Map<Id,Lead> convertedleads = new Map<Id,Lead>();                   
        convertedleads.put(ld.Id,ld);
        
        Map<Id, Opportunity> convertedops= new Map<Id, Opportunity>();        
        convertedops.put(opp.Id,opp);
          
        Map<Id, CampaignMember> possiblecms= new Map<Id, CampaignMember>();        
        possiblecms.put(mc1.Id,mc1);                                 
        CampaignMemberFunctions  cmf = new CampaignMemberFunctions();
        CampaignMemberFunctions.SyncStatus( mc1res,ld,con,statusmap);
        System.debug('@@@@@convertedleads'+convertedleads);
        System.debug('@@@@@possiblecms'+possiblecms);
        System.debug('@@@@@convertedops'+convertedops);
                
        CampaignMemberFunctions.SyncAfterConversion(convertedleads,convertedops,possiblecms);
        CampaignMemberFunctions.EmailErrorMessage('testmessage');     
        Test.StopTest();    
        } 
        
        //Checking for if Condition value CMStatusSettings__c 
       Public static testMethod void TestCreationDate3() {
        
        Lead ld2 = [select ID, CreatedDate, IsConverted from LEAD where CreatedDate < :DateTime.Now().addHours(-7) and IsConverted=False  LIMIT 1];
        Campaign cam = new Campaign(Name='campname');      
        insert cam;       
        Account a = new Account();
        a.Name ='My Company';
        Insert a;                   
        
        Lead ld = new Lead();
        ld.Company='colead1';  
        ld.LastName ='colead1_'+String.valueOf(System.now());
        ld.status= 'newvalue';        
        ld.admin_CMSourceId__c= cam.Id;
        ld.Disqaulified_Reason__c='Junk';
        ld.ConvertedOpportunityId=ld.Id; 
        insert ld;
        
        Contact con = new Contact(LastName ='Test');        
        Insert con;               
        Test.StartTest();
        CampaignMember mc1 = new CampaignMember(CampaignId = cam.Id,Product_Interest__c='Services',Response_Status__c='Disqualified',status= 'Junk',PMM_Stage__c='Learns of Postgres', LeadId=ld.Id);
        CampaignMember mc2 = new CampaignMember(CampaignId = cam.Id, LeadId=ld2.Id);
        insert mc1;
        insert mc2; 
        Opportunity opp =new Opportunity();
        opp.Product_Interest__c=mc1.Product_Interest__c;
       
        opp.PMM_stage__c = mc1.PMM_Stage__c;
        opp.Buyer__c = mc1.Buyer__c;
        opp.New_to_EnterpriseDB__c =mc1.New_to_EnterpriseDB__c;
        opp.Problem_to_Solve__c = mc1.Problem_to_Solve__c;
        opp.Any_OSS_in_current_stack__c = mc1.Any_OSS_in_current_stack__c;
        opp.Total_of_Databases_in_your_Org__c = mc1.Total_of_Databases_in_your_Org__c;
        opp.Primary_Database__c =mc1.Primary_Database__c;
        opp.of_Postgres_Database_Servers__c = mc1.of_Postgres_Database_Servers__c;
        opp.Just_learning_about_EnterpriseDB__c = mc1.Just_learning_about_EnterpriseDB__c;
        opp.Project_Requires_a_Net_New_DB__c = mc1.Project_Requires_a_Net_New_DB__c;
        opp.Timeframe_To_Production__c = mc1.Timeframe_To_Production__c;
        opp.Budget__c = mc1.Budget__c;
        opp.User__c = mc1.User__c;
        opp.Champion__c = mc1.Champion__c;
        opp.Decision_Maker__c =mc1.Decision_Maker__c;
                
        opp.Name='Testing';
        opp.StageName='Closed Lost';
        opp.CloseDate=System.today(); 
        Insert opp;       
        CampaignMember mc1res = [Select Id, New_to_EnterpriseDB__c,Response_Status__c from CampaignMember where Id = :mc1.id ];
        CampaignMember mc2res = [Select Id, New_to_EnterpriseDB__c from CampaignMember where Id = :mc2.id ];        
        System.assert(mc1res.New_to_EnterpriseDB__c);
        System.assert(! mc2res.New_to_EnterpriseDB__c);
        
        CMStatusSettings__c custSetting =new CMStatusSettings__c();
        custSetting.Name= 'Test';
        insert custSetting;
       // statusmap.put(mc1res.Response_Status__c, custSetting);
        
        Map<String, CMStatusSettings__c> statusmap = new Map<String, CMStatusSettings__c>();
        statusmap.put(mc1res.Response_Status__c, custSetting);
                  
        Map<Id,Lead> convertedleads = new Map<Id,Lead>();                   
        convertedleads.put(ld.Id,ld);
        
        Map<Id, Opportunity> convertedops= new Map<Id, Opportunity>();        
        convertedops.put(opp.Id,opp);
          
        Map<Id, CampaignMember> possiblecms= new Map<Id, CampaignMember>();        
        possiblecms.put(mc1.Id,mc1);                                 
        CampaignMemberFunctions  cmf = new CampaignMemberFunctions();
        CampaignMemberFunctions.SyncStatus( mc1res,ld,con,statusmap);
        System.debug('@@@@@convertedleads'+convertedleads);
        System.debug('@@@@@possiblecms'+possiblecms);
        System.debug('@@@@@convertedops'+convertedops);
                
        CampaignMemberFunctions.SyncAfterConversion(convertedleads,convertedops,possiblecms);
        CampaignMemberFunctions.EmailErrorMessage('testmessage');     
        Test.StopTest();    
        } 
           //Checking for if Condition value LeadConvertion.
         Public static testMethod void TestCreationDate4() {
        
        Lead ld2 = [select ID, CreatedDate, IsConverted from LEAD where CreatedDate < :DateTime.Now().addHours(-7) and IsConverted=False  LIMIT 1];
        Campaign cam = new Campaign(Name='campname');      
        insert cam;       
        Account a = new Account();
        a.Name ='My Company';
        Insert a;                   
        
        Lead ld = new Lead();
        ld.Company='colead1';  
        ld.LastName ='colead1_'+String.valueOf(System.now());
       // ld.status= ' Qualified - Legacy';        
        ld.admin_CMSourceId__c= cam.Id;
        ld.Disqaulified_Reason__c='Junk';
        ld.ConvertedOpportunityId=ld.Id; 
        insert ld;
        
        Contact con = new Contact(LastName ='Test');        
        Insert con;               
        Test.StartTest();
        CampaignMember mc1 = new CampaignMember(CampaignId = cam.Id,Product_Interest__c='Services',Response_Status__c='Disqualified',status= 'Junk',PMM_Stage__c='Learns of Postgres', LeadId=ld.Id);
        CampaignMember mc2 = new CampaignMember(CampaignId = cam.Id, LeadId=ld2.Id);
        insert mc1;
        insert mc2; 
        Opportunity opp =new Opportunity();
        opp.Product_Interest__c=mc1.Product_Interest__c;
       
        opp.PMM_stage__c = mc1.PMM_Stage__c;
        opp.Buyer__c = mc1.Buyer__c;
        opp.New_to_EnterpriseDB__c =mc1.New_to_EnterpriseDB__c;
        opp.Problem_to_Solve__c = mc1.Problem_to_Solve__c;
        opp.Any_OSS_in_current_stack__c = mc1.Any_OSS_in_current_stack__c;
        opp.Total_of_Databases_in_your_Org__c = mc1.Total_of_Databases_in_your_Org__c;
        opp.Primary_Database__c =mc1.Primary_Database__c;
        opp.of_Postgres_Database_Servers__c = mc1.of_Postgres_Database_Servers__c;
        opp.Just_learning_about_EnterpriseDB__c = mc1.Just_learning_about_EnterpriseDB__c;
        opp.Project_Requires_a_Net_New_DB__c = mc1.Project_Requires_a_Net_New_DB__c;
        opp.Timeframe_To_Production__c = mc1.Timeframe_To_Production__c;
        opp.Budget__c = mc1.Budget__c;
        opp.User__c = mc1.User__c;
        opp.Champion__c = mc1.Champion__c;
        opp.Decision_Maker__c =mc1.Decision_Maker__c;
                
        opp.Name='Testing';
        opp.StageName='Closed Lost';
        opp.CloseDate=System.today(); 
        Insert opp;       
        CampaignMember mc1res = [Select Id, New_to_EnterpriseDB__c,Response_Status__c from CampaignMember where Id = :mc1.id ];
        CampaignMember mc2res = [Select Id, New_to_EnterpriseDB__c from CampaignMember where Id = :mc2.id ];        
        System.assert(mc1res.New_to_EnterpriseDB__c);
        System.assert(! mc2res.New_to_EnterpriseDB__c);
        
        Map<String, CMStatusSettings__c> statusmap = new Map<String, CMStatusSettings__c>();
       // statusmap.put(mc1res.Response_Status__c, custSetting);
                  
        Map<Id,Lead> convertedleads = new Map<Id,Lead>(); 
         // START Convert the Lead into Test Class
        Database.LeadConvert lc = new Database.LeadConvert();
        lc.setLeadId(ld.Id);
        lc.setOpportunityName('Testing'); 
        LeadStatus convertStatus = [SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1];
        lc.setConvertedStatus(convertStatus.MasterLabel);
        Database.LeadConvertResult lcr = Database.convertLead(lc); 
        System.assert(lcr.isSuccess()); 
        convertedleads.put(ld.Id,ld);                  
        //convertedleads.put(ld.Id,ld);
        
        Map<Id, Opportunity> convertedops= new Map<Id, Opportunity>();        
        convertedops.put(opp.Id,opp);
          
        Map<Id, CampaignMember> possiblecms= new Map<Id, CampaignMember>();        
        possiblecms.put(mc1.Id,mc1);                                 
        CampaignMemberFunctions  cmf = new CampaignMemberFunctions();
        CampaignMemberFunctions.SyncStatus( mc1res,ld,con,statusmap);
        System.debug('@@@@@convertedleads'+convertedleads);
        System.debug('@@@@@possiblecms'+possiblecms);
        System.debug('@@@@@convertedops'+convertedops);
                
        CampaignMemberFunctions.SyncAfterConversion(convertedleads,convertedops,possiblecms);
        CampaignMemberFunctions.EmailErrorMessage('testmessage');     
        Test.StopTest();    
        } 
                        
}
The System throws an Error when i use Lead Convert.
The method is getting failed when i use the lead conversion.Im not setting the values manually,the system is throwing the error 

System.DmlException: ConvertLead failed. First exception on row 0; first error: INVALID_STATUS, invalid convertedStatus: QualifiedLegacy[Status],

Class.TestCampaignMemberFunctions.TestCreationDate4: line 392, column 1,the line is Database.LeadConvertResult lcr = Database.convertLead(lc);
The opportunity fields are not getting covered.Any help very much appreciated.


 
SalesforceCrm AccountCRMSalesforceCrm AccountCRM
@Prolay :Thanks for the response.

When i just Query in Developer console :
SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1
it gives the output with the Id and Master Label value as "Qualified -Legacy"

When Checked for the Status field in the lead , there are few picklist value which are converted such as Qualified - Legacy ,Qualified- New Opportunity ,Qualified - Ecommerce Opportunity etc

Any help very much appreciated.
ProlayProlay
Have checked the "Converted" checkbox with Picklist Value "Closed - Converted". I ran the same query in my developer org and getting the correct result. Please see the screen shot.
User-added image
ProlayProlay
Make sure you unchecked other picklist values as converted excepting the "Closed - Converted".
SalesforceCrm AccountCRMSalesforceCrm AccountCRM
@Prolay :Thanks for the response.In Status picklist field i dont have the value as 'Closed-Converted',their are other values and few are converted.
When i Query in DC
SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1
it gives the output with the Id and Master Label value as "Qualified -Legacy"
Any help very much appreciated.


PFA ScreenShot.

User-added image
 
ProlayProlay
Lead-Picklist-Value
Add the "Qualified" and the "Closed-Converted' and check the Converted Checkbox for both of them.
 
ProlayProlay
Let me know how to paste bigger screen shot also :)
ProlayProlay
Does it resolve your issue? Please change the status to resolve so that the other community members can take advantage of it.
SalesforceCrm AccountCRMSalesforceCrm AccountCRM
@Prolay : I tried adding the picklist value ,but still the system throws the same error.
System.DmlException: ConvertLead failed. First exception on row 0; first error: INVALID_STATUS, invalid convertedStatus: Qualified - Legacy: [Status]
When i querid again in DC ,it displays the o/p as
SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1
it gives the output with the Id and Master Label value as "Qualified -Legacy"
User-added image
Any help very much appreciated.

 
ProlayProlay
Do one thing, uncheck all the other "convert" checkboxes  and keep them for "Qualified" and "Closed - Converted". Make sure you put the label correctly. It is "Closed - Converted". copy and paste it in your Lead Status picklist value. And then test. Let me know quickly. :) 
SalesforceCrm AccountCRMSalesforceCrm AccountCRM
@Prolay :I have unchecked the other convert boxes and when i query the masterlabel is displaying as Qualified
ProlayProlay
Even uncheck the Qualified also.
ProlayProlay
And let me know.
ProlayProlay
ld.status= 'Closed - Converted';

Make sure the Picklist Label matched. In line 165.
SalesforceCrm AccountCRMSalesforceCrm AccountCRM
@Prolay :As Suggested , i have unchecked all the converted picklist field , checked only for the Closed - Converted value.When i query in DC ,
Now the System gives the value.
SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1
it gives the output with the Id and Master Label value as "Closed - Converted"
But when i run the test class ,the system throws an Error as :
line -1, column -1: Previous load of class failed: deletedownloadhitolderayearschedular
for the test method TestCreationDate4() rest of the methods gets pass.Any help very much appreciated.


 
ProlayProlay
In line 320 of your test class, you have the following statement
// ld.status= ' Qualified - Legacy';

Change it to 
 
ld.status = 'Closed - Converted';

Hope it will resolve your issue
ProlayProlay
Secondly, check all the other "convert" checkbox as per our previous state for all the picklist values of the Lead Status Field. Now, it should not give you any error further.
ProlayProlay
And please make sure all the Picklist Value Labels are copied from the Lead Status field in all your test classes to avoid any mismatch.
SalesforceCrm AccountCRMSalesforceCrm AccountCRM
@Prolay :I have checked the other values and queried the o/p was
SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1
it gives the output with the Id and Master Label value as "Closed - Converted"
When i run the test class ,the system started throwing the same error as previous it used to throw
System.DmlException: ConvertLead failed. First exception on row 0; first error: INVALID_STATUS, invalid convertedStatus: QualifiedLegacy[Status],

Class.TestCampaignMemberFunctions.TestCreationDate4: line 394, column 1,the line is Database.LeadConvertResult lcr = Database.convertLead(lc);
Any help very much appreciated.

 
ProlayProlay
Then revert it back to only "Closed - Converted". Uncheck other "convert" checkbox. Did you test the method you specified? Keep only the one Lead Status "Closed - Converted" Picklist Value with "convert" checkbox checked. 
ProlayProlay
And please make sure all the Picklist Value Labels are copied from the Lead Status field in all your test classes to avoid any mismatch
SalesforceCrm AccountCRMSalesforceCrm AccountCRM
@Prolay :As suggested , i have un checked all the values except the closed converted .When queried the system gives the o/p as closed converted for master label.But code coverage is very less it showing only 40%.Now the system throws another type of error ,if i uncomment the line ,the system throws an error :
System.assert(mc1res.New_to_EnterpriseDB__c);
Error :
 
System.AssertException: Assertion Failed
 
Class.TestCampaignMemberFunctions.TestCreationDate: line 77, column 1
If comment the above line ,then the method gets passed .
Any help very much appreciated.
 
ProlayProlay
@Sir, I need your code once again. And please tell me New_to_EnterpriseDB__c is a boolean field or not. Paste your modified code once again.

What is this code, man?
 
Lead ld = new Lead();
        ld.Company='colead1';  
        ld.LastName ='colead1_'+String.valueOf(System.now());
        ld.status= 'newvalue';        
        ld.admin_CMSourceId__c= cam.Id;
        ld.Disqaulified_Reason__c='Junk';
        ld.ConvertedOpportunityId=ld.Id; 
        insert ld;

Check the ld.status field please in all your test methods. And make sure they are exactly same as Lead Status Picklist Values.
ProlayProlay
What is your business logic?
Lead are converted from which states?
ProlayProlay
What happens to lead data when I convert it?

When you convert leads, Salesforce creates new accounts, contacts, and, opportunities using information from the leads you’re converting.
Salesforce moves any campaign members to the new contacts, and the leads become read-only records. If existing accounts and contacts
share the same names as those specified on the leads, you can choose to update the existing accounts and contacts. Salesforce adds
information from the lead into empty fields; Salesforce does not overwrite existing account and contact data.
All open and closed activities from the leads are attached to the accounts, contacts, and opportunities. You can assign the owner of the
records, and schedule follow-up tasks. When you assign new owners, only the open activities are assigned to the new owner. If you have
custom lead fields, that information can be inserted into custom account, contact, or opportunity fields. You can’t view converted leads,
but they appear in lead reports. Salesforce updates the Last Modified Date and Last Modified By system fields on
converted leads when picklist values included on converted leads are changed.
SalesforceCrm AccountCRMSalesforceCrm AccountCRM
@Prolay :In the org this codes were written by other man and left the org its been written 7 years back and i'm writing  on the test class.As per the comment given the code the logic
Sets the CampaignMember New_to_Enterprise_Db field if lead was created in lsat 6 hours
   Call during CampaignMember before create trigger 
Updates the lead or contact status based on sync logic. Returns True if update occurred
    ld or ct must be valid. If ct is valid, ct.Account.Customer_Status__c must be valid.
New_to_EnterpriseDB__c field is a check box.
Trigger :
/* 
This class contains various campaign member functions to be called by triggers and
Visual Force pages 
*/

public class CampaignMemberFunctions {

    // Sets the CampaignMember New_to_Enterprise_Db field if lead was created in lsat 6 hours
    // Call during CampaignMember before create trigger 
    public static void UpdateNewToEnterpriseDB(CampaignMember cm, Lead ld)
    {
         if(ld.CreatedDate.addHours(6) > DateTime.Now()) cm.New_to_EnterpriseDB__c = true;
    }
    
     
    // Updates the lead or contact status based on sync logic. Returns True if update occurred
    // ld or ct must be valid. If ct is valid, ct.Account.Customer_Status__c must be valid.
    // Note for developers - yes, it's not the most efficient possible code, but is clear, and leaves flexibility
    // for more complex mappings later.
    public static Boolean SyncStatus(CampaignMember cm, Lead ld, Contact ct, Map<String, CMStatusSettings__c> statusmap)
    {
        Boolean result = true;
        String newvalue;
        
        if(ct!= null)
        {
            if(statusmap.containsKey(cm.Response_Status__c))
            {
                newvalue = statusmap.get(cm.Response_Status__c).StatusMapping__c;
                if(newvalue == ct.Status__c)
                {
                    result = false;
                }
                else
                {
                    ct.Status__c = newvalue;
                }
            } else if(cm.Response_Status__c == 'Disqualified' || 
                        cm.Response_Status__c == 'Qualified - New Opportunity' ||
                        cm.Response_Status__c == 'Closed - Converted' )
            {
                newvalue = 'Closed - ' + ct.Account.Customer_Status__c + ' Account';
                if(ct.Status__c == newvalue)
                {
                    result = false;
                }
                else
                {
                    ct.Status__c = newvalue;
                }
                if(cm.Response_Status__c == 'Disqualified')
                {   // Set nuture time on disqualified status
                    Date newtimeout = Date.today().addDays((CMScoreEngine__c.getInstance('Default').NurtureTimeoutDays__c).intValue());
                    if(ct.Admin_Nurture_Timeout__c != newtimeout || ct.Lead_Score__c !=0 || ct.Campaign_Score__c !=0) result = true;
                    ct.Admin_Nurture_Timeout__c = newtimeout;
                    ct.Lead_Score__c = 0; 
                    ct.Campaign_Score__c = 0;   // Probably aren't using this one
                }
            } else
            {
                result = false;
            }       
            /*if(cm.Response_Status__c=='Contacted-Warm' && cm.Do_not_reassign_to_Landings__c) 
            {
                ct.Do_not_reassign_to_Landings__c = true;
                result = true;
            }*/
            
            
        }
        
        else if(ld!=null)
        {
            if(statusmap.containsKey(cm.Response_Status__c))
            {
                newvalue = statusmap.get(cm.Response_Status__c).StatusMapping__c;
                if(newvalue==ld.Status)
                {
                    result = false;
                }
                else
                {
                    ld.Status = newvalue;
                }
            } else if(cm.Response_Status__c == 'Disqualified')
            {
                if(ld.Status=='Disqualified' && ld.Disqaulified_Reason__c == cm.Disqualified_Reason__c)
                {
                    result = false;
                }
                else
                {
                    ld.Status = 'Disqualified';
                    ld.Disqaulified_Reason__c = cm.Disqualified_Reason__c;
                    System.Debug('Disqualified reason being set to: ' + cm.Disqualified_Reason__c);
                }
            } else
            {
                result = false;
            }
            /*if(cm.Response_Status__c=='Contacted-Warm' && cm.Do_not_reassign_to_Landings__c) 
            {
                ld.Do_not_reassign_to_Landings__c = true;
                result = true;
            }*/
        } 
        return(result);
    
    }
    
    // Search through the converted leads, opportunities and campaignmembers to sync if necessary
    public static void SyncAfterConversion(Map<Id,Lead> convertedleads, Map<Id, Opportunity>convertedops, Map<Id, CampaignMember> possiblecms) 
    {
        for(Lead ld: convertedleads.values())
        {
            // Grab the campaign member - this must be correct by original query
             CampaignMember cm = new CampaignMember();
             
             System.debug('@@@@@possiblecms.get(ld.admin_CMSourceId__c)'+possiblecms.get(ld.admin_CMSourceId__c));
             cm = possiblecms.get(ld.admin_CMSourceId__c);
             System.debug('@@@@@cm '+cm );
           if(cm!=null)
           {  
            // We know this lead is converted. Let's get the opportunity.             
            if(ld.ConvertedOpportunityId != null)
            {
                Opportunity opp = convertedops.get(ld.ConvertedOpportunityId);
                opp.PMM_stage__c = cm.PMM_Stage__c;
                opp.Product_Interest__c = cm.Product_Interest__c;
                opp.Buyer__c = cm.Buyer__c;
                opp.New_to_EnterpriseDB__c = cm.New_to_EnterpriseDB__c;
                opp.Problem_to_Solve__c = cm.Problem_to_Solve__c;
                opp.Any_OSS_in_current_stack__c = cm.Any_OSS_in_current_stack__c;
                opp.Total_of_Databases_in_your_Org__c = cm.Total_of_Databases_in_your_Org__c;
                opp.Primary_Database__c = cm.Primary_Database__c;
                opp.of_Postgres_Database_Servers__c = cm.of_Postgres_Database_Servers__c;
                opp.Just_learning_about_EnterpriseDB__c = cm.Just_learning_about_EnterpriseDB__c;
                opp.Project_Requires_a_Net_New_DB__c = cm.Project_Requires_a_Net_New_DB__c;
                opp.Timeframe_To_Production__c = cm.Timeframe_To_Production__c;
                opp.Budget__c = cm.Budget__c;
                opp.User__c = cm.User__c;
                opp.Champion__c = cm.Champion__c;
                opp.Decision_Maker__c = cm.Decision_Maker__c;
                cm.Response_Status__c = 'Qualified - New Opportunity';
                cm.Opportunity_Name__c = opp.Id;
                cm.Opportunity_Create_Date__c = Date.Today();
            }
            
            else
            {                          
                if(cm.lead.status!=null)
                 {
                    cm.Response_Status__c = cm.lead.status;
                 }
            }
            cm.admin_IsConverted__c = true; 
          }           
        }   
    
    }
    
    public static void EmailErrorMessage(String message)
    {
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        mail.setToAddresses(new String[] {'edbnotify@bearcavern.com', 'roanbear@gmail.com'});
        mail.setSenderDisplayName('APEX notifier');
        mail.setSubject('SFDC/Eloqua Data Creation Error');
        mail.setPlainTextBody(message);
        List<Messaging.SendEmailResult> results = Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
        for(Messaging.SendEmailResult r: results)
        {
            System.debug('Result of Email sent ' + r.isSuccess());
            if(!r.isSuccess())
            {
                for(Messaging.SendEmailError sme: r.getErrors())
                {
                    for(String s: sme.getFields())  System.Debug('Error for field ' + s );      
                    System.Debug('Error message ' + sme.getMessage());
                    System.Debug('StatusCode ' + sme.getStatusCode());
                }
            }
        }
        
    }

}
Test Class :
@isTest
Public class TestCampaignMemberFunctions {

   //Checking for if Condition value Response_Status__c= Disqualified 
    Public static testMethod void TestCreationDate() {
      
       Test.StartTest();
        
        Lead ld2 = [select ID, CreatedDate, IsConverted from LEAD where CreatedDate < :DateTime.Now().addHours(-7) and IsConverted=False  LIMIT 1];
        Campaign cam = new Campaign(Name='campname');      
        insert cam;       
        Account a = new Account();
        a.Name ='My Company';
        Insert a;                   
        
        Lead ld = new Lead();
        ld.Company='colead1';  
        ld.LastName ='colead1_'+String.valueOf(System.now());
        ld.status= 'Disqualified';        
        ld.admin_CMSourceId__c= cam.Id;
        ld.Disqaulified_Reason__c='Disqualified';              
        insert ld;
        
        Contact con = new Contact(LastName ='Test');        
        Insert con;               
       // Test.StartTest();
        CampaignMember mc1 = new CampaignMember(CampaignId = cam.Id,Product_Interest__c='Services',Response_Status__c='Disqualified',status= 'Disqualified',PMM_Stage__c='Learns of Postgres', LeadId=ld.Id);
        CampaignMember mc2 = new CampaignMember(CampaignId = cam.Id, LeadId=ld2.Id);
        insert mc1;
        insert mc2; 
        Opportunity opp =new Opportunity();
        opp.Product_Interest__c='Services';
       
        opp.PMM_stage__c ='Deployment';
        opp.Buyer__c = 'xyz';
        opp.New_to_EnterpriseDB__c =True;
        opp.Problem_to_Solve__c ='Performance' ;
        opp.Any_OSS_in_current_stack__c ='OS' ;
        opp.Total_of_Databases_in_your_Org__c ='500';
        opp.Primary_Database__c =mc1.Primary_Database__c;
        opp.of_Postgres_Database_Servers__c = mc1.of_Postgres_Database_Servers__c;
        opp.Just_learning_about_EnterpriseDB__c = mc1.Just_learning_about_EnterpriseDB__c;
        opp.Project_Requires_a_Net_New_DB__c = mc1.Project_Requires_a_Net_New_DB__c;
        opp.Timeframe_To_Production__c = mc1.Timeframe_To_Production__c;
        opp.Budget__c = mc1.Budget__c;
        opp.User__c = mc1.User__c;
        opp.Champion__c = mc1.Champion__c;
        opp.Decision_Maker__c =mc1.Decision_Maker__c;
                
        opp.Name='Testing';
        opp.StageName='Closed Lost';
        opp.CloseDate=System.today(); 
        Insert opp;       
        CampaignMember mc1res = [Select Id, New_to_EnterpriseDB__c,Response_Status__c from CampaignMember where Id = :mc1.id ];
        CampaignMember mc2res = [Select Id, New_to_EnterpriseDB__c from CampaignMember where Id = :mc2.id ];        
        System.assert(mc1res.New_to_EnterpriseDB__c);
        System.assert(! mc2res.New_to_EnterpriseDB__c);
        
        Map<String, CMStatusSettings__c> statusmap = new Map<String, CMStatusSettings__c>();
       // statusmap.put(mc1res.Response_Status__c, custSetting);
                  
        Map<Id,Lead> convertedleads = new Map<Id,Lead>();                   
        convertedleads.put(ld.Id,ld);
        
        Map<Id, Opportunity> convertedops= new Map<Id, Opportunity>();        
        convertedops.put(opp.Id,opp);
          
        Map<Id, CampaignMember> possiblecms= new Map<Id, CampaignMember>();        
        possiblecms.put(mc1.Id,mc1);                                 
        CampaignMemberFunctions  cmf = new CampaignMemberFunctions();
        CampaignMemberFunctions.SyncStatus( mc1res,ld,con,statusmap);
        System.debug('@@@@@convertedleads'+convertedleads);
        System.debug('@@@@@possiblecms'+possiblecms);
        System.debug('@@@@@convertedops'+convertedops);
                
       // CampaignMemberFunctions.UpdateNewToEnterpriseDB(CampaignMember cm, Lead ld); 
        CampaignMemberFunctions.SyncAfterConversion(convertedleads,convertedops,possiblecms);
        CampaignMemberFunctions.EmailErrorMessage('testmessage');
           
        Test.StopTest();    
        }
        //Checking for if Condition value Response_Status__c= Qualified - New Opportunity
        Public static testMethod void TestCreationDate1() {
        
        Lead ld2 = [select ID, CreatedDate, IsConverted from LEAD where CreatedDate < :DateTime.Now().addHours(-7) and IsConverted=False  LIMIT 1];
        Campaign cam = new Campaign(Name='campname');      
        insert cam;       
        Account a = new Account();
        a.Name ='My Company';
        Insert a;                   
        
        Lead ld = new Lead();
        ld.Company='colead1';  
        ld.LastName ='colead1_'+String.valueOf(System.now());
        ld.status= 'Qualified - New Opportunity';        
        ld.admin_CMSourceId__c= cam.Id; 
        ld.Disqaulified_Reason__c='Qualified - New Opportunity';               
        insert ld;
        
        Contact con = new Contact(LastName ='Test');        
        Insert con;               
        Test.StartTest();
        CampaignMember mc1 = new CampaignMember(CampaignId = cam.Id,Product_Interest__c='Services',Response_Status__c='Qualified - New Opportunity',status= 'Qualified - New Opportunity', LeadId=ld.Id);
        CampaignMember mc2 = new CampaignMember(CampaignId = cam.Id, LeadId=ld2.Id);
        insert mc1;
        insert mc2; 
        Opportunity opp =new Opportunity();
        opp.Product_Interest__c=mc1.Product_Interest__c;
       
        opp.PMM_stage__c = mc1.PMM_Stage__c;
        opp.Buyer__c = mc1.Buyer__c;
        opp.New_to_EnterpriseDB__c =mc1.New_to_EnterpriseDB__c;
        opp.Problem_to_Solve__c = mc1.Problem_to_Solve__c;
        opp.Any_OSS_in_current_stack__c = mc1.Any_OSS_in_current_stack__c;
        opp.Total_of_Databases_in_your_Org__c = mc1.Total_of_Databases_in_your_Org__c;
        opp.Primary_Database__c =mc1.Primary_Database__c;
        opp.of_Postgres_Database_Servers__c = mc1.of_Postgres_Database_Servers__c;
        opp.Just_learning_about_EnterpriseDB__c = mc1.Just_learning_about_EnterpriseDB__c;
        opp.Project_Requires_a_Net_New_DB__c = mc1.Project_Requires_a_Net_New_DB__c;
        opp.Timeframe_To_Production__c = mc1.Timeframe_To_Production__c;
        opp.Budget__c = mc1.Budget__c;
        opp.User__c = mc1.User__c;
        opp.Champion__c = mc1.Champion__c;
        opp.Decision_Maker__c =mc1.Decision_Maker__c;
                
        opp.Name='Testing';
        opp.StageName='Closed Lost';
        opp.CloseDate=System.today(); 
        Insert opp;       
        CampaignMember mc1res = [Select Id, New_to_EnterpriseDB__c,Response_Status__c from CampaignMember where Id = :mc1.id ];
        CampaignMember mc2res = [Select Id, New_to_EnterpriseDB__c from CampaignMember where Id = :mc2.id ];        
        /*System.assert(mc1res.New_to_EnterpriseDB__c);
        System.assert(! mc2res.New_to_EnterpriseDB__c);*/
        
        Map<String, CMStatusSettings__c> statusmap = new Map<String, CMStatusSettings__c>();
        //statusmap.put(mc1res.Response_Status__c, custSetting);
                  
        Map<Id,Lead> convertedleads = new Map<Id,Lead>();                   
        convertedleads.put(ld.Id,ld);
        
        Map<Id, Opportunity> convertedops= new Map<Id, Opportunity>();        
        convertedops.put(opp.Id,opp);
          
        Map<Id, CampaignMember> possiblecms= new Map<Id, CampaignMember>();        
        possiblecms.put(mc1.Id,mc1);                                 
        CampaignMemberFunctions  cmf = new CampaignMemberFunctions();
        CampaignMemberFunctions.SyncStatus( mc1res,ld,con,statusmap);
        System.debug('@@@@@convertedleads'+convertedleads);
        System.debug('@@@@@possiblecms'+possiblecms);
        System.debug('@@@@@convertedops'+convertedops);
                
        CampaignMemberFunctions.SyncAfterConversion(convertedleads,convertedops,possiblecms);
        CampaignMemberFunctions.EmailErrorMessage('testmessage');     
        Test.StopTest();    
        } 
          //Checking for if Condition value Response_Status__c= Closed - Converted 
        Public static testMethod void TestCreationDate2() {
        
        Lead ld2 = [select ID, CreatedDate, IsConverted from LEAD where CreatedDate < :DateTime.Now().addHours(-7) and IsConverted=False  LIMIT 1];
        Campaign cam = new Campaign(Name='campname');      
        insert cam;       
        Account a = new Account();
        a.Name ='My Company';
        Insert a;                   
        
        Lead ld = new Lead();
        ld.Company='colead1';  
        ld.LastName ='colead1_'+String.valueOf(System.now());
        ld.status= 'Closed - Converted';        
        ld.admin_CMSourceId__c= cam.Id;
        ld.Disqaulified_Reason__c='Closed - Converted';              
        insert ld;
        
        Contact con = new Contact(LastName ='Test');        
        Insert con;               
        Test.StartTest();
        CampaignMember mc1 = new CampaignMember(CampaignId = cam.Id,Product_Interest__c='Services',Response_Status__c='Closed - Converted',status= 'Closed - Converted', LeadId=ld.Id);
        CampaignMember mc2 = new CampaignMember(CampaignId = cam.Id, LeadId=ld2.Id);
        insert mc1;
        insert mc2; 
        Opportunity opp =new Opportunity();
        opp.Product_Interest__c=mc1.Product_Interest__c;
       
        opp.PMM_stage__c = mc1.PMM_Stage__c;
        opp.Buyer__c = mc1.Buyer__c;
        opp.New_to_EnterpriseDB__c =mc1.New_to_EnterpriseDB__c;
        opp.Problem_to_Solve__c = mc1.Problem_to_Solve__c;
        opp.Any_OSS_in_current_stack__c = mc1.Any_OSS_in_current_stack__c;
        opp.Total_of_Databases_in_your_Org__c = mc1.Total_of_Databases_in_your_Org__c;
        opp.Primary_Database__c =mc1.Primary_Database__c;
        opp.of_Postgres_Database_Servers__c = mc1.of_Postgres_Database_Servers__c;
        opp.Just_learning_about_EnterpriseDB__c = mc1.Just_learning_about_EnterpriseDB__c;
        opp.Project_Requires_a_Net_New_DB__c = mc1.Project_Requires_a_Net_New_DB__c;
        opp.Timeframe_To_Production__c = mc1.Timeframe_To_Production__c;
        opp.Budget__c = mc1.Budget__c;
        opp.User__c = mc1.User__c;
        opp.Champion__c = mc1.Champion__c;
        opp.Decision_Maker__c =mc1.Decision_Maker__c;
                
        opp.Name='Testing';
        opp.StageName='Closed Lost';
        opp.CloseDate=System.today(); 
        Insert opp;       
        CampaignMember mc1res = [Select Id, New_to_EnterpriseDB__c,Response_Status__c from CampaignMember where Id = :mc1.id ];
        CampaignMember mc2res = [Select Id, New_to_EnterpriseDB__c from CampaignMember where Id = :mc2.id ];        
        /*System.assert(mc1res.New_to_EnterpriseDB__c);
        System.assert(! mc2res.New_to_EnterpriseDB__c);*/
        
        Map<String, CMStatusSettings__c> statusmap = new Map<String, CMStatusSettings__c>();
        //statusmap.put(mc1res.Response_Status__c, custSetting);
                  
        Map<Id,Lead> convertedleads = new Map<Id,Lead>();                   
        convertedleads.put(ld.Id,ld);
        
        Map<Id, Opportunity> convertedops= new Map<Id, Opportunity>();        
        convertedops.put(opp.Id,opp);
          
        Map<Id, CampaignMember> possiblecms= new Map<Id, CampaignMember>();        
        possiblecms.put(mc1.Id,mc1);                                 
        CampaignMemberFunctions  cmf = new CampaignMemberFunctions();
        CampaignMemberFunctions.SyncStatus( mc1res,ld,con,statusmap);
        System.debug('@@@@@convertedleads'+convertedleads);
        System.debug('@@@@@possiblecms'+possiblecms);
        System.debug('@@@@@convertedops'+convertedops);
                
        CampaignMemberFunctions.SyncAfterConversion(convertedleads,convertedops,possiblecms);
        CampaignMemberFunctions.EmailErrorMessage('testmessage');     
        Test.StopTest();    
        } 
        
        //Checking for if Condition value CMStatusSettings__c 
       Public static testMethod void TestCreationDate3() {
        
        Lead ld2 = [select ID, CreatedDate, IsConverted from LEAD where CreatedDate < :DateTime.Now().addHours(-7) and IsConverted=False  LIMIT 1];
        Campaign cam = new Campaign(Name='campname');      
        insert cam;       
        Account a = new Account();
        a.Name ='My Company';
        Insert a;                   
        
        Lead ld = new Lead();
        ld.Company='colead1';  
        ld.LastName ='colead1_'+String.valueOf(System.now());
        ld.status= 'newvalue';        
        ld.admin_CMSourceId__c= cam.Id;
        ld.Disqaulified_Reason__c='newvalue';
        ld.ConvertedOpportunityId=ld.Id; 
        insert ld;
        
        Contact con = new Contact(LastName ='Test');        
        Insert con;               
        Test.StartTest();
        CampaignMember mc1 = new CampaignMember(CampaignId = cam.Id,Product_Interest__c='Services',Response_Status__c='Disqualified',status= 'newvalue',PMM_Stage__c='Learns of Postgres', LeadId=ld.Id);
        CampaignMember mc2 = new CampaignMember(CampaignId = cam.Id, LeadId=ld2.Id);
        insert mc1;
        insert mc2; 
        Opportunity opp =new Opportunity();
        opp.Product_Interest__c=mc1.Product_Interest__c;
       
        opp.PMM_stage__c = mc1.PMM_Stage__c;
        opp.Buyer__c = mc1.Buyer__c;
        opp.New_to_EnterpriseDB__c =mc1.New_to_EnterpriseDB__c;
        opp.Problem_to_Solve__c = mc1.Problem_to_Solve__c;
        opp.Any_OSS_in_current_stack__c = mc1.Any_OSS_in_current_stack__c;
        opp.Total_of_Databases_in_your_Org__c = mc1.Total_of_Databases_in_your_Org__c;
        opp.Primary_Database__c =mc1.Primary_Database__c;
        opp.of_Postgres_Database_Servers__c = mc1.of_Postgres_Database_Servers__c;
        opp.Just_learning_about_EnterpriseDB__c = mc1.Just_learning_about_EnterpriseDB__c;
        opp.Project_Requires_a_Net_New_DB__c = mc1.Project_Requires_a_Net_New_DB__c;
        opp.Timeframe_To_Production__c = mc1.Timeframe_To_Production__c;
        opp.Budget__c = mc1.Budget__c;
        opp.User__c = mc1.User__c;
        opp.Champion__c = mc1.Champion__c;
        opp.Decision_Maker__c =mc1.Decision_Maker__c;
                
        opp.Name='Testing';
        opp.StageName='Closed Lost';
        opp.CloseDate=System.today(); 
        Insert opp;       
        CampaignMember mc1res = [Select Id, New_to_EnterpriseDB__c,Response_Status__c from CampaignMember where Id = :mc1.id ];
        CampaignMember mc2res = [Select Id, New_to_EnterpriseDB__c from CampaignMember where Id = :mc2.id ];        
        /*System.assert(mc1res.New_to_EnterpriseDB__c);
        System.assert(! mc2res.New_to_EnterpriseDB__c);*/
        
        CMStatusSettings__c custSetting =new CMStatusSettings__c();
        custSetting.Name= 'Test';
        insert custSetting;
       // statusmap.put(mc1res.Response_Status__c, custSetting);
        
        Map<String, CMStatusSettings__c> statusmap = new Map<String, CMStatusSettings__c>();
        statusmap.put(mc1res.Response_Status__c, custSetting);
                  
        Map<Id,Lead> convertedleads = new Map<Id,Lead>();                   
        convertedleads.put(ld.Id,ld);
        
        Map<Id, Opportunity> convertedops= new Map<Id, Opportunity>();        
        convertedops.put(opp.Id,opp);
          
        Map<Id, CampaignMember> possiblecms= new Map<Id, CampaignMember>();        
        possiblecms.put(mc1.Id,mc1);                                 
        CampaignMemberFunctions  cmf = new CampaignMemberFunctions();
        CampaignMemberFunctions.SyncStatus( mc1res,ld,con,statusmap);
        System.debug('@@@@@convertedleads'+convertedleads);
        System.debug('@@@@@possiblecms'+possiblecms);
        System.debug('@@@@@convertedops'+convertedops);
                
        CampaignMemberFunctions.SyncAfterConversion(convertedleads,convertedops,possiblecms);
        CampaignMemberFunctions.EmailErrorMessage('testmessage');     
        Test.StopTest();    
        } 
           //Checking for if Condition value LeadConvertion.
         Public static testMethod void TestCreationDate4() {
        
        Lead ld2 = [select ID, CreatedDate, IsConverted from LEAD where CreatedDate < :DateTime.Now().addHours(-7) and IsConverted=False  LIMIT 1];
        Campaign cam = new Campaign(Name='campname');      
        insert cam;       
        Account a = new Account();
        a.Name ='My Company';
        Insert a;                   
        
        Lead ld = new Lead();
        ld.Company='colead1';  
        ld.LastName ='colead1_'+String.valueOf(System.now());
        ld.status='Closed - Converted';        
        ld.admin_CMSourceId__c= cam.Id;
        ld.Disqaulified_Reason__c='Closed - Converted';
        ld.ConvertedOpportunityId=ld.Id; 
        insert ld;
        
        Contact con = new Contact(LastName ='Test');        
        Insert con;               
        Test.StartTest();
        CampaignMember mc1 = new CampaignMember(CampaignId = cam.Id,Product_Interest__c='Services',Response_Status__c='Closed - Converted',status= 'Closed - Converted',PMM_Stage__c='Learns of Postgres', LeadId=ld.Id);
        CampaignMember mc2 = new CampaignMember(CampaignId = cam.Id, LeadId=ld2.Id);
        insert mc1;
        insert mc2; 
        Opportunity opp =new Opportunity();
        opp.Product_Interest__c=mc1.Product_Interest__c;
       
        opp.PMM_stage__c = mc1.PMM_Stage__c;
        opp.Buyer__c = mc1.Buyer__c;
        opp.New_to_EnterpriseDB__c =mc1.New_to_EnterpriseDB__c;
        opp.Problem_to_Solve__c = mc1.Problem_to_Solve__c;
        opp.Any_OSS_in_current_stack__c = mc1.Any_OSS_in_current_stack__c;
        opp.Total_of_Databases_in_your_Org__c = mc1.Total_of_Databases_in_your_Org__c;
        opp.Primary_Database__c =mc1.Primary_Database__c;
        opp.of_Postgres_Database_Servers__c = mc1.of_Postgres_Database_Servers__c;
        opp.Just_learning_about_EnterpriseDB__c = mc1.Just_learning_about_EnterpriseDB__c;
        opp.Project_Requires_a_Net_New_DB__c = mc1.Project_Requires_a_Net_New_DB__c;
        opp.Timeframe_To_Production__c = mc1.Timeframe_To_Production__c;
        opp.Budget__c = mc1.Budget__c;
        opp.User__c = mc1.User__c;
        opp.Champion__c = mc1.Champion__c;
        opp.Decision_Maker__c =mc1.Decision_Maker__c;
                
        opp.Name='Testing';
        opp.StageName='Closed Lost';
        opp.CloseDate=System.today(); 
        Insert opp;       
        CampaignMember mc1res = [Select Id, New_to_EnterpriseDB__c,Response_Status__c from CampaignMember where Id = :mc1.id ];
        CampaignMember mc2res = [Select Id, New_to_EnterpriseDB__c from CampaignMember where Id = :mc2.id ];        
       /* System.assert(mc1res.New_to_EnterpriseDB__c);
        System.assert(! mc2res.New_to_EnterpriseDB__c);*/
        
        Map<String, CMStatusSettings__c> statusmap = new Map<String, CMStatusSettings__c>();
       // statusmap.put(mc1res.Response_Status__c, custSetting);
                  
        Map<Id,Lead> convertedleads = new Map<Id,Lead>(); 
         // START Convert the Lead into Test Class
        Database.LeadConvert lc = new Database.LeadConvert();
        lc.setLeadId(ld.Id);
       // lc.setOpportunityName('Testing'); 
        LeadStatus convertStatus = [SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1];
        lc.setConvertedStatus(convertStatus.MasterLabel);
        Database.LeadConvertResult lcr = Database.convertLead(lc); 
        System.assert(lcr.isSuccess()); 
        convertedleads.put(ld.Id,ld);                  
        //convertedleads.put(ld.Id,ld);
        
        Map<Id, Opportunity> convertedops= new Map<Id, Opportunity>();        
        convertedops.put(opp.Id,opp);
          
        Map<Id, CampaignMember> possiblecms= new Map<Id, CampaignMember>();        
        possiblecms.put(mc1.Id,mc1);                                 
        CampaignMemberFunctions  cmf = new CampaignMemberFunctions();
        CampaignMemberFunctions.SyncStatus( mc1res,ld,con,statusmap);
        System.debug('@@@@@convertedleads'+convertedleads);
        System.debug('@@@@@possiblecms'+possiblecms);
        System.debug('@@@@@convertedops'+convertedops);
                
        CampaignMemberFunctions.SyncAfterConversion(convertedleads,convertedops,possiblecms);
        CampaignMemberFunctions.EmailErrorMessage('testmessage');     
        Test.StopTest();    
        } 
                        
}
Any help very much appreciated.


 
ProlayProlay
Quickly, the Trigger code is working fine in development environment?
SalesforceCrm AccountCRMSalesforceCrm AccountCRM
@Prolay :The Status picklist field values which are checked as converted is must bcoz their are other test classes which are dependent .Today when i tried running the All the test classes the system throwed the error for 'n' of test class.After checking the status field value which was converted.

Now the system throws the error for this class.It fails for two methods and the error thrown are
1)TestCreationDate()
The line  #77 :System.assert(mc1res.New_to_EnterpriseDB__c);
System.AssertException: Assertion Failed
Class.TestCampaignMemberFunctions.TestCreationDate: line 77, column 1
2)TestCreationDate4()
System.DmlException: ConvertLead failed. First exception on row 0; first error: INVALID_STATUS, invalid convertedStatus: Qualified - Legacy: [Status]

Class.TestCampaignMemberFunctions.TestCreationDate4: line 396, column 1
The line  #396 : Database.LeadConvertResult lcr = Database.convertLead(lc);

Any help very much appreciated.

 
ProlayProlay
Try to Test these two test methods and let me know the percentage coverage. Please see my remarks in first test method for passing the ststus Map. Please make the necessary changes before running the test.
 
@isTest (seeAllData=true)

Public class TestCampaignMemberFunctions {

   
    
    Public static testMethod void TestUpdateToEnterpriseDBandSyncStatusExistingRecord() {  
       Test.StartTest();
	   
	   List<Lead> ld2 = new List <Lead>([SELECT IsConverted, ConvertedDate, CreatedById, (SELECT Id FROM CampaignMembers) FROM Lead WHERE CreatedDate < : DateTime.Now().addHours(-7) 									AND IsConverted = False  LIMIT 1]);
	   
       List<CampaignMember> campmember = new List<CampaignMember>();

	   Map <Integer, Boolean> mapbool = new Map<Integer,Boolean>();
	   Map<Integer, Boolean> mapsyncstatus = new Map<Integer,Boolean>();
	   Integer i =1;
	   
	   for (Lead ld : ld2)
		{
			for (CampaignMember c :ld.CampaignMembers)
			{
				campmember.add(c); 
			}
		}
		for (Lead ld : ld2)
		{
			for(CampaignMember c :ld.CampaignMembers){
				mapbool.add(i, CampaignMemberFunctions.UpdateNewToEnterpriseDB(c,ld));
				i++;
			}
		}
		
		
		
		//Testing the CampaignMemberFunctions.UpdateNewToEnterpriseDB function
		
	   
	   for (Lead ld : ld2)
		{
			for(CampaignMember c :ld.CampaignMembers){
				System.assert(CampaignMemberFunctions.UpdateNewToEnterpriseDB(c,ld)), 'Testing UpdateNewToEnterpriseDB ' );
			}
		}
	   
	   for (Integer i : mapbool.ketset())
	   {
		   Boolean valuecheck = mapbool.get(i);
		   if (valuecheck == true){
			   
			   for (Lead ld : ld2)
				{
					for(CampaignMember c :ld.CampaignMembers){
						
						//I do not know the Map<String, CMStatusSettings__c> statusmap value. Please get the MAP 
						//initiated above and pass the map below while calling the StatusSync function
						
						System.assert(CampaignMemberFunctions.SyncStatus(c,ld,c.ContactId,statusmap),'SyncStatus Check');
					}
				}
			   
			   
		   }
	   }
	   Test.StopTest();
	}
	
	Public static testMethod void TestSyncAfterConversion(){
		
		Test.StartTest();
		
		List<Lead> ld2 = new List <Lead>([SELECT Id, IsConverted, ConvertedDate, CreatedById, (SELECT Id , ContactId FROM CampaignMembers) 
											FROM Lead WHERE CreatedDate < : DateTime.Now().addHours(-7) AND IsConverted = True  LIMIT 1]);
											
		List<CampaignMember> campmember = new List<CampaignMember>();
		
		Set<Id> cammembercontactids = new Set<Id>();
		
		
		
		for (Lead ld : ld2)
		{
			for (CampaignMember c :ld.CampaignMembers)
			{
				campmember.add(c); 
			}
		}
		
		for (CampaignMember c : campmember){
			cammembercontactids.add(c.ContactId);
		}


		List<Contact> contactlist = new List<Contact>([SELECT Id, Name FROM Contact WHERE ID IN : cammembercontactids]);
		Map<Id,Lead> maplead = new Map<Id,Lead> (ld2);
		Map<Id,CampaignMember> mapcampaignmember = new Map<Id,CampaignMember>(campmember);
		

		List<Account> acctlist = new List<Account>([SELECT ID FROM ACCOUNT WHERE ID IN (SELECT AccountId FROM CONTACT WHERE ID IN : cammembercontactids)]);
		Set<Id> accountidset = new Set<Id>();
		for (Account a: acctlist){
			accountidset.add(a.Id);
		}
		List<Opportunity> opportunitylist = new List<Opportunity>([SELECT Id FROM Opportunity WHERE AccountId IN : accountidset]);
		Map<Id,Opportunity> mapopportunity = new Map<Id,Opportunity>(opportunitylist);

		for (Lead ld : ld2){
			System.assert(CampaignMemberFunctions.SyncAfterConversion(maplead,mapopportunity,mapcampaignmember), 'Sync Function Checking');
		}
		
		 Test.StopTest();
		
	}
}