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
Varun AnnadataVarun Annadata 

What the cause of too many soql query errors while inserting data in a test class?

I am inserting data in test class.It is giving error in main class at a line where it is querying data the using a soql.So what is causing the too many soql query 101 error?
Shruti SShruti S
Could you please post the main class here? It is most likely that you have a SOQL Query inside a for loop which is causing this error.
Varun AnnadataVarun Annadata
  public void handle() { 
        
       try {
        List<Program_Member_MVN__c> programMembers = (List<Program_Member_MVN__c>) Trigger.new;         
       
        pmIsUSMap = new Map<Id,Boolean>();
        pmIsONCMap = new Map<Id,Boolean>();
        pmIsPAPElIncomeMap = new Map<Id,Boolean>();
        List<String> lstPrimary = new List<String>();
        List<String> lstSecondary = new List<String>();
        /* Get all policys for provided Program Members */
       List<Benefits_Coverage_MVN__c> policys = [select Id, Name, Coverage_Type_MVN__c,Program_Member_MVN__c  from Benefits_Coverage_MVN__c
                                                 WHERE Coverage_Type_MVN__c = 'Primary' and Insurance_Type_C1__c = 'Private'
                                                 and Coverage_Status_MVN__c = 'Active' and Program_Member_MVN__c IN :programMembers];
        /* To get the list of Policy have Drug Covered */
       List<Benefits_Coverage_MVN__c> policysForDrugYes = [select Id, Name, Program_Member_MVN__c, Is_Drug_Covered_C1__c 
                                                                    from Benefits_Coverage_MVN__c
                                                                    where Program_Member_MVN__c IN :programMembers
                                                                    and Is_Drug_Covered_C1__c = 'Yes' 
                                                                    and Coverage_Type_MVN__c = 'Primary'
                                                                    and Coverage_Status_MVN__c = 'Active'];
      /* To get the list of Policy have Null Drug Covered */
       List<Benefits_Coverage_MVN__c> policysForDrugNull = [select Id, Name, Program_Member_MVN__c, Is_Drug_Covered_C1__c 
                                                                    from Benefits_Coverage_MVN__c
                                                                    where Program_Member_MVN__c IN :programMembers
                                                                    and Is_Drug_Covered_C1__c = '' 
                                                                    and Coverage_Type_MVN__c = 'Primary'
                                                                    and Coverage_Status_MVN__c = 'Active'];

I am getting error at  List<Benefits_Coverage_MVN__c> policysForDrugYes = [select Id, Name, Program_Member_MVN__c, Is_Drug_Covered_C1__c 
                                                                    from Benefits_Coverage_MVN__c
                                                                    where Program_Member_MVN__c IN :programMembers
                                                                    and Is_Drug_Covered_C1__c = 'Yes' 
                                                                    and Coverage_Type_MVN__c = 'Primary'
                                                                    and Coverage_Status_MVN__c = 'Active'];
Varun AnnadataVarun Annadata
My test class:
@isTest
public class ProgramMemberPAPCalculationMVNTest{
static testMethod void constructorTest(){
   
    ProgramMemberPAPCalculationMVN PPM =new ProgramMemberPAPCalculationMVN();
    
    PPM.IsUS =true;
    PPM.IsDiagnosis=false; 
    Map<Id,Boolean> pmIsUSMap;
    //PPM.IsPAPEligibleIncome=false; 
   // PPM.IsONC=false; 
    PPM.IsPAPEligible='No';
   
    PPM.handle();
   
        Profile p = [select id from profile where name='System Administrator'];
        Profile p2 = [select id from profile where name='EMDS CoverOne'];

        User u = new User(alias = 'test123', email='test123@noemail.com',
            emailencodingkey='UTF-8', lastname='Testing', languagelocalekey='en_US',
            localesidkey='en_US', profileid = p.Id, country='United States',
            timezonesidkey='America/Los_Angeles', username='test123@noemail.com',MUID__c='tEST');
        insert u;
        
        User u1=new User(alias = 'test13', email='test13@noemail.com',
            emailencodingkey='UTF-8', lastname='Tesing', languagelocalekey='en_US',
            localesidkey='en_US', profileid = p2.Id, country='United States',
            timezonesidkey='America/Los_Angeles', username='test13@noemail.com',MUID__c='T1');
            insert u1;
             test.starttest();
     Account Ac=new Account(Primary_Country_IBND__c='BR',LastName='sai');
    insert Ac;
    Program_MVN__c Pm2=new Program_MVN__c(Name='MSLL Program',Therapeutic_Area_IBND__c='NDD');
     insert Pm2;
    Program_Member_MVN__c Pm=new Program_Member_MVN__c(Member_MVN__c = Ac.id,New_Start_IBND__c=true,/*Program_MVN__c=Pm2.id,*/Country_IBND__c ='BR',CoPay_Status_C1__c='Approved',Legal_US_Resident_IBND__c='Yes',CoPay_Start_Date_C1__c=Date.newInstance(2016, 12, 9),PAP_Status_C1__c ='Active',PAP_Status_Override_C1__c=true/*,Insurance_Type_C1__c='private'*/,PAP_Type_C1__c='PAP',PAP_Proof_Of_Income_C1__c='Yes');
   
    Program_Member_MVN__c Pm1=new Program_Member_MVN__c(Member_MVN__c=Ac.id,New_Start_IBND__c=true,/*Program_MVN__c=Pm2.id,*/Country_IBND__c ='BR',CoPay_Status_C1__c='Approved',Legal_US_Resident_IBND__c='Yes',CoPay_Start_Date_C1__c=Date.newInstance(2016, 12, 9),PAP_Status_C1__c ='Active',PAP_Status_Override_C1__c=true,Insurance_Type_C1__c='None',PAP_Type_C1__c='PAP',PAP_Proof_Of_Income_C1__c='Yes');
    
    Program_Member_MVN__c Pm7=new Program_Member_MVN__c(Member_MVN__c=Ac.id,New_Start_IBND__c=true,/*Program_MVN__c=Pm2.id,*/Country_IBND__c ='BR',CoPay_Status_C1__c='Approved',Legal_US_Resident_IBND__c='Yes',CoPay_Start_Date_C1__c=Date.newInstance(2016, 12, 9),PAP_Status_C1__c ='Active',PAP_Status_Override_C1__c=true,Insurance_Type_C1__c='Government',PAP_Type_C1__c='PAP',PAP_Proof_Of_Income_C1__c='No');
    
    ICD10_Codes_C1__c Icd= new ICD10_Codes_C1__c(TA__c='NOC',Name=pm.Primary_ICDCode_C1__c);
    insert Icd;
    List<Program_Member_MVN__c> Pm3=new List<Program_Member_MVN__c>();
    List<Benefits_Coverage_MVN__c> BCM1=new List<Benefits_Coverage_MVN__c>();
    List<ICD10_Codes_C1__c> Icd1 = new List<ICD10_Codes_C1__c>();
    
    Benefits_Coverage_MVN__c BCM = new Benefits_Coverage_MVN__c(Program_Member_MVN__c = pm.id,Coverage_Type_MVN__c='Primary',Coverage_Status_MVN__c='Active',Plan_Type_MVN__c='Employer',Is_Drug_Covered_C1__c='Yes');

    
    System.runAs(u)
    {
     //test.starttest();
     insert pm;
     insert BCM;
    //
   // insert pm7;
   // PPM.IsPAPEligible='Yes';
     PPM.PAPStatus='Active';
        // test.stoptest();

     
    }
    //Benefits_Coverage_MVN__c BCM2 = new Benefits_Coverage_MVN__c(Program_Member_MVN__c=pm.id,Coverage_Type_MVN__c='Primary',Coverage_Status_MVN__c='Active',Plan_Type_MVN__c='Employer',Is_Drug_Covered_C1__c='');

   
    
   // Benefits_Coverage_MVN__c BCM = new Benefits_Coverage_MVN__c(Program_Member_MVN__c=pm.id,Coverage_Type_MVN__c='Primary',Coverage_Status_MVN__c='Active',Plan_Type_MVN__c='Employer',Is_Drug_Covered_C1__c='Yes');
    
      //insert BCM;
      Pm3.add(pm);
    //insert Pm3;
    BCM1.add(BCM);
   // insert BCM1;
    Icd1.add(Icd);
    Benefits_Coverage_MVN__c BCM2 = new Benefits_Coverage_MVN__c(Program_Member_MVN__c=pm.id,Coverage_Type_MVN__c='Primary',Coverage_Status_MVN__c='Active'/*,Plan_Type_MVN__c='Employer'*/,Is_Drug_Covered_C1__c='No');
     System.runAs(u1){
     //test.starttest();
     insert pm1;
    insert BCM2;
    //test.stoptest();
    }
    //insert Icd1;
    PPM.updatePM(Pm3,BCM1);
    PPM.CheckUS(pm);
    PPM.CheckONCICD(Icd1,pm);
    //PPM.updatePM(pm,BCM);
    //PPM.CheckUS(pm);
    test.stoptest();
    //PPM.CheckPersonalIncome(Pm1);
    }
    }