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
Chandu007Chandu007 

getting '0' code coverage, not sure where it went wrong. Please point me in correct direction.

here is my class:-
public class CloneXmittal {
public ID transmittalid = ApexPages.currentPage().getParameters().get('transmittalid');
public ID ClonedTXid;
  public CloneXmittal(){}
  public void CloneXmittal1(){
        Transmittal__c TXOriginal = [Select id, Name,Addcontact__c,Bid_Due_Date__c,Change_Update_Sent__c,Contacts__c,Delivery_Method__c,Emaillist__c,FTP_Link__c,Opportunity__c,Requested_By__c,RFP_Sent_to_Vendor__c,Rownumber__c,Sales_Admin_Instructions__c,Structural_Fab_Misc_Vendor__c,Transmittal_Request_Date__c,Vendor_Instructions__c,Vendor_Proposal_Deadline__c,Vendor_Type__c from Transmittal__c where id =: transmittalid ];
        Transmittal__c TX = new Transmittal__c(
                                Addcontact__c=TXOriginal.Addcontact__c,
                                Contacts__c=TXOriginal.Contacts__c,
                         Delivery_Method__c=TXOriginal.Delivery_Method__c,
                                Emaillist__c=TXOriginal.Emaillist__c,
                                FTP_Link__c=TXOriginal.FTP_Link__c,
                                Opportunity__c=TXOriginal.Opportunity__c,
                                Requested_By__c=TXOriginal.Requested_By__c,
                                Rownumber__c=TXOriginal.Rownumber__c,                     Structural_Fab_Misc_Vendor__c=TXOriginal.Structural_Fab_Misc_Vendor__c,

 Vendor_Type__c=TXOriginal.Vendor_Type__c
                                );
                                insert TX;
                                ClonedTXid = TX.id;
        List<StructuralFab_Vendors__c> SFABLIST= new List<StructuralFab_Vendors__c>([Select ContactList__c, Transmittal__c, Account__c from StructuralFab_Vendors__c where Transmittal__c =:transmittalid  ]);
        List<StructuralFab_Vendors__c> SFABCLONE= new List<StructuralFab_Vendors__c>();
        for(StructuralFab_Vendors__c SFAB: SFABLIST){
             StructuralFab_Vendors__c SFABCOPY = SFAB.clone(false,true,false);
             SFABCOPY.Transmittal__c = TX.id;
            SFABCLONE.add(SFABCOPY );       
        }
        insert SFABCLONE;
        CloneXmittalDML();
}
public pagereference CloneXmittalDML(){
 PageReference home = new PageReference('/' + ClonedTXid );
        home.setRedirect(true);
return home;
}
}

test class:-

@isTest
public class CloneXmittalTest {
    
    static testMethod void test1(){
       Transmittal__c tr = new Transmittal__c();
        tr.Addcontact__c=false;
        tr.Delivery_Method__c='Email / Web';
        insert tr; 
        
        List<StructuralFab_Vendors__c> SFABCLONE= new List<StructuralFab_Vendors__c>();
        SFABCLONE[0].Transmittal__c = tr.Id;
        
        insert SFABCLONE;

        CloneXmittal cx = new CloneXmittal();
        cx.CloneXmittal1();
       
    }
}
Best Answer chosen by Chandu007
Chandu007Chandu007
Thanks for replying "About Me". i have modified my test class and added required fields on Transmittal__c object & created required objects(Account, Contact & Opportunity) and got 100% code coverage with 'X' factor cx.transmittalid=tr.Id;.

Here is my test class:-

@isTest
public class CloneXmittalTest {
    
    static testMethod void CloneXmittalmethod(){
      
        Account act = new Account(Name='Test Account',Structural_Fab_Misc_Vendor__c=true);
        insert act;
        MHC2__Project__c proj = new MHC2__Project__c(Name='Test Project');
        insert proj;
        
        Contact c = new Contact(LastName='Test Contact');
        insert c;
        
        Opportunity op = new Opportunity(Name='My Test Opportunity');
        op.Bid_Date_Time__c = System.Now().addDays(30);
        op.CloseDate = System.Now().addDays(45).date();
        op.StageName = 'Bidding';
        op.AccountId = act.Id;
        op.Bid_Type__c = 'Lump Sum';
        op.Project__c = proj.Id;
        insert op;
        
        test.startTest();
        Transmittal__c tr = new Transmittal__c();
        //tr.Name='test';
        tr.Addcontact__c=false;
        tr.Bid_Due_Date__c=date.today();
        tr.Change_Update_Sent__c=datetime.now();
        tr.Contacts__c=c.Id;
       tr.Delivery_Method__c='Email / Web';
        tr.Emaillist__c='Test';
        tr.FTP_Link__c='www.google.com';
        tr.Opportunity__c=op.Id;
        tr.Requested_By__c=op.OwnerId;
        tr.RFP_Sent_to_Vendor__c=datetime.now();
        tr.Rownumber__c=3;
        tr.Sales_Admin_Instructions__c='test';
        tr.Structural_Fab_Misc_Vendor__c=act.Id;
        tr.Transmittal_Request_Date__c=date.today();
        tr.Vendor_Instructions__c='test';
        tr.Vendor_Proposal_Deadline__c=datetime.now();
        tr.Vendor_Type__c='Erector';
       
        insert tr; 
        
        List<StructuralFab_Vendors__c> SFABCLONE= new List<StructuralFab_Vendors__c>();
        StructuralFab_Vendors__c s= new StructuralFab_Vendors__c();
        s.Transmittal__c = tr.Id;
        s.Account__c = act.Id;
        SFABCLONE.add(s);
        insert SFABCLONE;
    
        
        CloneXmittal cx = new CloneXmittal();
        cx.transmittalid=tr.Id;
        
        cx.CloneXmittal1();
        cx.CloneXmittalDML();
        test.stopTest();
       
    }
}

All Answers

About MeAbout Me
Try below:

public class CloneXmittalTest {
    
    static testMethod void test1(){
       Transmittal__c tr = new Transmittal__c();
        tr.Addcontact__c=false;
        tr.Delivery_Method__c='Email / Web';
        insert tr;
       /*
        List<StructuralFab_Vendors__c> SFABCLONE= new List<StructuralFab_Vendors__c>();
        SFABCLONE[0].Transmittal__c = tr.Id;
        
        insert SFABCLONE;
*/
        StructuralFab_Vendors__c sFab = new StructuralFab_Vendors__c();
        sFab.Transmittal__c = tr.Id;
      //insert any other required fields
        insert sFAB;

        CloneXmittal cx = new CloneXmittal();
        cx.CloneXmittal1();
        cx.CloneXmittalDML();
       
    }
Chandu007Chandu007
Thanks for replying "About Me". i have modified my test class and added required fields on Transmittal__c object & created required objects(Account, Contact & Opportunity) and got 100% code coverage with 'X' factor cx.transmittalid=tr.Id;.

Here is my test class:-

@isTest
public class CloneXmittalTest {
    
    static testMethod void CloneXmittalmethod(){
      
        Account act = new Account(Name='Test Account',Structural_Fab_Misc_Vendor__c=true);
        insert act;
        MHC2__Project__c proj = new MHC2__Project__c(Name='Test Project');
        insert proj;
        
        Contact c = new Contact(LastName='Test Contact');
        insert c;
        
        Opportunity op = new Opportunity(Name='My Test Opportunity');
        op.Bid_Date_Time__c = System.Now().addDays(30);
        op.CloseDate = System.Now().addDays(45).date();
        op.StageName = 'Bidding';
        op.AccountId = act.Id;
        op.Bid_Type__c = 'Lump Sum';
        op.Project__c = proj.Id;
        insert op;
        
        test.startTest();
        Transmittal__c tr = new Transmittal__c();
        //tr.Name='test';
        tr.Addcontact__c=false;
        tr.Bid_Due_Date__c=date.today();
        tr.Change_Update_Sent__c=datetime.now();
        tr.Contacts__c=c.Id;
       tr.Delivery_Method__c='Email / Web';
        tr.Emaillist__c='Test';
        tr.FTP_Link__c='www.google.com';
        tr.Opportunity__c=op.Id;
        tr.Requested_By__c=op.OwnerId;
        tr.RFP_Sent_to_Vendor__c=datetime.now();
        tr.Rownumber__c=3;
        tr.Sales_Admin_Instructions__c='test';
        tr.Structural_Fab_Misc_Vendor__c=act.Id;
        tr.Transmittal_Request_Date__c=date.today();
        tr.Vendor_Instructions__c='test';
        tr.Vendor_Proposal_Deadline__c=datetime.now();
        tr.Vendor_Type__c='Erector';
       
        insert tr; 
        
        List<StructuralFab_Vendors__c> SFABCLONE= new List<StructuralFab_Vendors__c>();
        StructuralFab_Vendors__c s= new StructuralFab_Vendors__c();
        s.Transmittal__c = tr.Id;
        s.Account__c = act.Id;
        SFABCLONE.add(s);
        insert SFABCLONE;
    
        
        CloneXmittal cx = new CloneXmittal();
        cx.transmittalid=tr.Id;
        
        cx.CloneXmittal1();
        cx.CloneXmittalDML();
        test.stopTest();
       
    }
}
This was selected as the best answer