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
Sandesh Vishwakarma 9Sandesh Vishwakarma 9 

Can anyone please help me with the test class for this apex code. Thanks in advance

public class OpportunityFetchField {
    
    @AuraEnabled
    public static list<Opportunity> insertOpportunity(list<Opportunity> oplist, ID ContactId){
        Contact rec = [SELECT ID ,Name from Contact where ID =: ContactId];
        system.debug('rec '+rec);
        system.debug('oplist '+oplist);
        for(Opportunity op :oplist){
            op.ContactId = rec.Id;
            op.StageName='Needs Analysis';
        }
        System.debug('ContactId' + ContactId);
        insert oplist;
        system.debug('oplist '+oplist);
        return oplist;
    }    
}
Best Answer chosen by Sandesh Vishwakarma 9
Sai PraveenSai Praveen (Salesforce Developers) 
Hi Sandesh,

The test class can be as below. It covers 100% of the code. We have to use System.AssertEquals to check if the opportunity is inserted succesfully or not.
 
@isTest
public class CreateNewOpportunityTest
{
    @isTest
    public static void CreateOpportunityTestMethod()
    {
        Account objAccount = new Account();
        objAccount.Name = 'Test Acc';
        insert objAccount;
        contact objcontact = new Contact();
        objcontact.lastname='sample';
        insert objcontact;
        Opportunity objOpportunity = new Opportunity();
        objOpportunity.Name = 'Test Opp';
        objOpportunity.Accountid = objAccount.id;
        objOpportunity.CloseDate = system.Today()+3;
       // insert objOpportunity;
        List<Opportunity> insertoppy= new List<Opportunity>();
        insertoppy.add(objOpportunity);
        //OpportunityFetchField opf= new OpportunityFetchField();
        List<Opportunity> opp= OpportunityFetchField.insertOpportunity(insertoppy,objcontact.id);
        System.AssertEquals(opp.size(), 1);
    }
}

If this solution helps, Please mark it as best answer.

Thanks,
 

All Answers

CharuDuttCharuDutt
Hii Sandesh
Try Below Test Class 100%Coverage
@isTest
public class OpportunityFetchFieldTEst {
@isTest
    public static void unitTest(){
        Account Acc =new Account();
        Acc.Name = 'Test Account';
        Insert Acc;
        
        Contact Con = new Contact ();
        Con.FirstName = 'Test';
        Con.LastName = 'Contact';
        Con.AccountId = Acc.id;
        Insert Con;
        Opportunity opp = new Opportunity();
        Opp.Name = 'Test Opportunity';
        opp.CloseDate =  System.today();
        Opp.StageName = 'Closed Won';
        Opp.AccountId = Acc.Id;
        
        
        OpportunityFetchField.insertOpportunity(new list<Opportunity>{opp}, Con.Id);
    }
}
Please Mark It As best Answer If It Helps
Thank You!
Sai PraveenSai Praveen (Salesforce Developers) 
Hi Sandesh,

The test class can be as below. It covers 100% of the code. We have to use System.AssertEquals to check if the opportunity is inserted succesfully or not.
 
@isTest
public class CreateNewOpportunityTest
{
    @isTest
    public static void CreateOpportunityTestMethod()
    {
        Account objAccount = new Account();
        objAccount.Name = 'Test Acc';
        insert objAccount;
        contact objcontact = new Contact();
        objcontact.lastname='sample';
        insert objcontact;
        Opportunity objOpportunity = new Opportunity();
        objOpportunity.Name = 'Test Opp';
        objOpportunity.Accountid = objAccount.id;
        objOpportunity.CloseDate = system.Today()+3;
       // insert objOpportunity;
        List<Opportunity> insertoppy= new List<Opportunity>();
        insertoppy.add(objOpportunity);
        //OpportunityFetchField opf= new OpportunityFetchField();
        List<Opportunity> opp= OpportunityFetchField.insertOpportunity(insertoppy,objcontact.id);
        System.AssertEquals(opp.size(), 1);
    }
}

If this solution helps, Please mark it as best answer.

Thanks,
 
This was selected as the best answer
Suraj Tripathi 47Suraj Tripathi 47
Hii Sandesh
Try this test class (100%Coverage)

@isTest
Private class TestClassForOpportunityFetchField {
  @Testsetup  
    public static void setUp(){
        Account accInstance = new Account();
        accInstance.Name = 'acctest';
        insert accInstance;
        Contact conInstance = new Contact();
        conInstance.LastName = 'contest';
        insert conInstance;
    }
    @isTest
    public static void opportunityFetchMethod(){
        Test.startTest();
        Contact con = [SELECT id,Name from Contact];
        ID contactId= con.Id;
        Account acc = [SELECT id From Account];
          List<Opportunity>oppList = new List<Opportunity>();
        Opportunity oppInstance = new Opportunity();
        oppInstance.Name = 'opptest';
        oppInstance.CloseDate = system.today();
        oppInstance.StageName = 'Closed Won';
        oppInstance.AccountId = acc.Id;
        oppList.add(oppInstance);
        
       List<Opportunity>returnedOppList= OpportunityFetchField.insertOpportunity(oppList,contactId); 
        system.debug(returnedOppList);
        Test.stopTest();
       system.assertEquals(1,returnedOppList.size());
         system.assertEquals('Needs Analysis',returnedOppList[0].StageName);
        system.assertEquals(contactId,returnedOppList[0].ContactId);
    }
}

If this solution helps, Please mark it as best answer.

Thanks