• srikanth yeturu 5
  • NEWBIE
  • 30 Points
  • Member since 2020

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 26
    Questions
  • 19
    Replies
I have given all required field values but still throwing that error


@isTest
private class UpdatingAccountRelatedContactsCount_Test {    
 static Testmethod void accountRelatedContacts()
    {
    List<Contact> conList =  new List<Contact>();
    Account Acc = New Account();
    Acc.Name = 'Sai';
    insert Acc;    
           
    Contact con = new Contact();
    con.LastName = 'Test1';
    con.AccountId = Acc.Id;
    con.Sum__c = 100;
    conList.add(con);       
        
    Contact con1 = new Contact();
    con.LastName = 'Test2';
    con1.AccountId = Acc.Id;
    con1.Sum__c = 200;
    conList.add(con1);            
    insert conList;
        
    System.debug('aaaaaaaaaaaaaaa'+conList);
   // delete con1;    
    Test.StartTest();           
    TriggerHelperClass obj = new TriggerHelperClass();
    update conList;
    Test.StopTest();
    }
}
 
 Highlighed part is not covering in the test class--- Helper class 

public  class  TriggerHelperClass {
   public Set <Id> accountIds = new Set <Id>();
   public List <Account> lstAccountsToUpdate = new List<Account>();
    // for insertion and deletion
   public void insertAndUndelete(List<Contact> newAcc)
       {
         for(Contact con:newAcc)
              {
                 accountIds.add(con.accountID);
             }
        this.updatingContactsCount();
    }   
    // for delete operation
   public void deleteOperation(List<Contact> newAcc)
      {
           for(Contact con:newAcc)
                {
                   accountIds.add(con.accountID);
             } 
         this.updatingContactsCount();
      }              

    public void updateOperation(List<Contact> newAcc,Map<Id,Contact>oldMap)
       {
           for(Contact con : newAcc)
               {
                      if(con.AccountId != null)
                           {
                              if(oldMap.get(con.Id).AccountId != con.AccountId)
                                  {
                                    accountIds.add(con.AccountId);     
                               }
                          } 
                     accountIds.add(oldMap.get(con.Id).AccountId);    
               }     
           this.updatingContactsCount();
       }          

    Public void updatingContactsCount()
        {
           for(Account acc:[SELECT Id,Name,Count_Contacts__c,Total_Sum__c,(Select Id,Sum__c from Contacts) from Account where Id IN: accountIds])
                   {
                       acc.Count_Contacts__c = acc.Contacts.size();
                     acc.Total_Sum__c = 0;  
                     for(Contact con : acc.Contacts)
                         {
                            if(con.Sum__c != NULL)
                               {
                                   acc.Total_Sum__c = acc.Total_Sum__c + con.Sum__c;  
                             }   
                       }
                     lstAccountsToUpdate.add(acc);
                      }   
         UPDATE lstAccountsToUpdate;    
      }
}




test class


@isTest
private class UpdatingAccountRelatedContactsCount_Test {
   
 static Testmethod void accountRelatedContacts()
    {
    List<Contact> conList =  new List<Contact>();
    Account Acc = New Account();
    Acc.Name = 'srikanth';
    insert Acc;    
           
    Contact con = new Contact();
    con.LastName = 'Test';
    con.AccountId = Acc.Id;
    con.Sum__c = 100;
    conList.add(con);       
        
    Contact con1 = new Contact();
    con.LastName = 'Test1';
    con1.AccountId = Acc.Id;
    con1.Sum__c = 100;
    conList.add(con1);       
     
    insert conList;
    delete con1;      
    Test.StartTest();
    TriggerHelperClass obj = new TriggerHelperClass(); 
    
    update conList ;
    undelete con1;
    Test.StopTest();
   
    }
}
 
How to cover that email sending in salesforce ...?



apex class 

public class NewWrapperClass {
    public List<wrapperTask> wrapperTaskList {get;set;}
   // public List<Challenge__c> existingRecords {get;set;}
    public List<challenge__c> selectedRecords {get;set;}
    public List<challenge__c> selectedRecords1 {get;set;}

    public NewWrapperClass()    
    {
         wrapperTaskList = new List<wrapperTask>();
     //   existingRecords = [SELECT Phone__c, Name,OwnerId FROM Challenge__c WHERE Account__c = NULL];
        
        for(Challenge__c c : [SELECT Name,Phone__c,OwnerId,Account__c FROM Challenge__c WHERE Account__c = NULL]) 
          {
             wrapperTaskList.add(new wrapperTask(c));
          }
   }
    public void processedRecords() 
        {
            selectedRecords = new List<challenge__c>();
            selectedRecords1 = new List<challenge__c>();
            for (wrapperTask obj : wrapperTaskList)
                {
                    if(obj.selected == true) 
                        {
                         obj.chg.Account__c = ApexPages.currentPage().getParameters().get('id');
                         selectedRecords.add(obj.chg);

                         }
                   // selectedRecords.add(obj.chg);
                }            
    update selectedRecords;         
 //existingRecords = [SELECT Phone__c, Name,OwnerId FROM Challenge__c WHERE Account__c =: ApexPages.currentPage().getParameters().get('id')];

}
public void sendEmail()
    
   {
        String subject='Test Subject';
        String body='Test Body';
       List<Messaging.SingleEmailMessage> listmails = new List<Messaging.SingleEmailMessage>();
        for(Account acc :[SELECT Owner.Email FROM Account WHERE Id=:ApexPages.currentPage().getParameters().get('id')])
            
        {
            Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
            List<String> sendTo = new List<String>();
            sendTo.add(acc.Owner.Email );
            email.setToAddresses(sendTo);
            email.setSubject(subject);
            email.setPlainTextBody(body);
            listMails.add(email);
        }
            Messaging.sendEmail(listMails);
        
         ApexPages.addmessage(new ApexPages.message(ApexPages.severity.CONFIRM,'Mail has been sent Successfully'));  
    }
public class wrapperTask 
{
    public challenge__c chg {get;set;}
    public Boolean selected {get;set;}
    public wrapperTask(challenge__c c) 
    {
    chg = c;
    selected=false;
    }
}

}


test class 
@isTest
Private Class NewWrapperClass_Test
{
      static Testmethod void WrapperExampleUnitTest()
    {
         challenge__c Acc= new challenge__c();
        Acc.name='TestAccount';
        Acc.Account__c =NULL;
        insert Acc;

        challenge__c Acc1= new challenge__c();
            Acc1.name='TestAccount1';
           insert Acc1;        
        Test.StartTest();
            NewWrapperClass obj = new NewWrapperClass();
            
            for(NewWrapperClass.wrapperTask wrp : obj.wrapperTaskList )
            {
                wrp.selected = true;
            }
            obj.processedRecords();
          obj.sendEmail();
      Test.StopTest();

    }
}


Thanks in advance

 
what the wrong this code it is showing the above error please help in this 


global class LeadDays7 implements Database.Batchable<SObject>{
    List<Lead> listRecords = new List<Lead>();
    
    global Database.QueryLocator start(Database.BatchableContext BC)
    {
        String query = 'Select Id,Name,Email,CheckBox__c,Leadage__c From Lead Where Leadage__c > 7 LIMIT 10 ';
        return Database.getQueryLocator(query);
    }
     
     global void execute(Database.BatchableContext BC, List<Lead> scope){
           System.debug('aaaaaaaaaaaaaaaaaaaa'+scope);
        
                     for(Lead leads : scope)
                    {
               if(leads.Email != NULL)
               {
                   leads.CheckBox__c = TRUE;
               }
            listRecords.add(leads);          
        }
         update listRecords;
     

        List<String> emailList = new List<String>();
        System.debug('aaaaaaaaaaaaaaaaaaaa'+scope);
        for(Lead ld: scope) {
            if(ld.Email != NULL) {
                emailList.add(ld.Email);
            }
        }
        System.debug('bbbbbbbbbbbbbbbbbbbbb'+emailList);
         Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
            email.setToAddresses(emailList);
            email.setSaveAsActivity(false);
            email.setSubject('Age is 7 days');
            email.setPlainTextBody('Batch Update for Opportunity Close Date has been completed');
            Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email});
            
     }    
    global void finish(Database.BatchableContext BC){
 
}
}
controller

public class searchClass
{
    public List<Contact> contacts { get; set; }
    public String name { get; set; }
    
    public searchClass()
{
contacts = new List<Contact>();
}
    public pageReference searchcontacts()
    {
        contacts = [select Id
                    ,Name 
                    from Contact
                    where Name = :name];
        
        if(contacts.size() == 0) {    
               ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.ERROR,'Error: Invalid Input.');
                ApexPages.addMessage(myMsg);
            //ApexPages.addMessage(new ApexPages.message(ApexPages.Severity.ERROR,'No Records Found'));
                  }
        if(contacts.size() == 1) 
        {
            for(Contact con :contacts ){
// In this This section my problem not redirecting

                PageReference pageRef = new PageReference('con.Id');       
            
     
        return pageRef;
            }
        }
        return null;

        }       
        
}


page 



<apex:page controller="searchClass">
    <apex:form >
        <apex:pageMessages />
        <apex:pageBlock >
            <apex:pageBlockSection id="contact-table" columns="1">
                <apex:pageBlockSectionItem >
                    <apex:outputLabel value="Name"/>
                    <apex:inputText value="{!name}" />
                </apex:pageBlockSectionItem>          
                <apex:commandButton value="Search" action="{!searchcontacts}" reRender="contact-table" >
                </apex:commandButton>
                <apex:pageBlockTable value="{!contacts}" var="c" >
                    <apex:column >
                        <apex:outputlink value="/{!c.Id}"> {!c.Name}</apex:outputlink>
                    </apex:column>                 
                </apex:pageBlockTable>
                
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:form>
</apex:page>




 
In the Second If-condition i am confued how to write the code can anyone help me in this how to write the code .

I am getting Account servicing records which are linked to account



public class Account_Related_Account_Servicing {
    List<Account_Servicing__c> Accountservicing_records = new List<Account_Servicing__c>();   
    Map<Id,Map<Id,List<Account_Servicing__c>>> Account_RelatedRecords = new Map<Id,Map<Id,List<Account_Servicing__c>>>();
    Map<Id,List<Account_Servicing__c>> listrecords = new Map<Id,List<Account_Servicing__c>>();
    Public void Account_Linked_Account_Servicing_Records()
        {
              Accountservicing_records = [select Id,Account__r.Id,Name from Account_Servicing__c where Account__c != Null ]; 
            for(Account_Servicing__c abc:Accountservicing_records)
                 {
                     if(listrecords.containsKey(abc.Id) )
                         {
                                 listrecords.get(abc.Id).add(abc);
                         }
                     else
                         {
                                listrecords.put(abc.Id,new List<Account_Servicing__c>{abc}) ;
                        }
                     
                     
         //   In this how to write the code        
                    if(Account_RelatedRecords.containsKey(Account__r.Id) )
                         {
                                 Account_RelatedRecords.get(Account__r.Id).add(abc);
                         }
                    else
                         {
                                Account_RelatedRecords.put(Account__r.Id,Map<Id,List<Account_Servicing__c>>) ;
                        }                     
                    
                     

                           }
            System.debug(Account_RelatedRecords);
            
           
          }    
}
when open the visualforce page using the second user ,then throw an error message (stored second user id in custom label) , but it is not coming 
 
apex class :

public class Differentiating_Vfpages_Based_on_User
{
    List<ApexPage> vfPageId {get;set;}
    public String Userid {get;set;}
    public  Differentiating_Vfpages_Based_on_User()
    {
             Userid = UserInfo.getUserId();        
             if(Userid == System.Label.UserId )
                 
                   {
                   ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING,'You have no access'));
                   }  
        
        System.debug(System.Label.UserId);
    }   
}


apex page


<apex:page controller ="Differentiating_Vfpages_Based_on_User">
    <apex:form>
    <apex:pageblock>
        
    </apex:pageblock>
    </apex:form>
</apex:page>
My code


<apex:page StandardController="Account" >
<apex:form >
<apex:pageBlock >
<apex:pageBlockSection >
<apex:inputField value="{! account.name }"/>

<apex:inputField value="{! account.label__c}"/>
<apex:inputField value="{! account.Rating}"/>
  <apex:inputField value="{! account.check_box__c}" />
   
 <apex:outputText value="{!$Label.Error_when_checkbox_is_disabled}" rendered="{!if(account.check_box__c = 'TRUE',true,false)}" />

</apex:pageBlockSection>
</apex:pageBlock>

<apex:commandButton value="save" action="{!save}"/>
</apex:form>

</apex:page>


 
global class Account_Add_Opportunities implements Database.Batchable<sObject>{
    
    List<Account> conlist = new List<Account>();
        
    List<Opportunity> updateList = new List<Opportunity>();
    
    
    global Account_Add_Opportunities (){
        // Batch Constructor
    }
    // Start Methode
    global Database.QueryLocator start(Database.BatchableContext BC){
        
        return Database.getQueryLocator([SELECT id,Name,CloseDate,Type from Opportunity WHERE Type = 'New Business' AND StageName = 'New Opportunity' ]); 
        
    }
    // Execute Logic
    global void execute(Database.BatchableContext BC, List<Opportunity>scope){
            conlist  = [SELECT Id,Name,BillingAddress from Account where Name = 'Closed Lost Opportunities'];
 
             System.debug('aaaaaaaaaaaaa'+conlist);    
        for(Opportunity opp :scope )
        {   
            opp.StageName = 'Closed Lost' ;
               for (Account acct :conlist)
               { 
                            opp.AccountID = acct.Id;


            
            }
            
            updateList.add(opp);
            
        }
        
                update updateList ;
 

        }
    
    global void finish(Database.BatchableContext BC){
        // Logic to  be Executed at finish
    }
}
i wrote below code can anyone help me in this plzz., it is  ot working


global class Live_Date_Batch_Class implements Database.Batchable<sObject>{
            
            public List<Contact> conList {get;set;}
    
    global Live_Date_Batch_Class()
        {
           
        }
        global Database.QueryLocator start(Database.BatchableContext BC)
        {
            string query = 'select id,LastName from Contact WHERE Live_Date__c = TODAY';
            System.debug('aaaaaaaaaaaaaaaaaaaaaaaa'+query) ; 
            return Database.getQueryLocator(query);
        }
       global void execute(Database.BatchableContext BC, List<Contact>scope)
       {
            Set<Id> convertedIdSet = new Set<Id>();
            List<messaging.SingleEmailMessage>  emails = new List<messaging.SingleEmailMessage>();
            for(Contact contact : scope) 
       {
            convertedIdSet.add(contact.Id);
       }    
       
                   for(Contact contact : scope) 
       {
            conList = ([SELECT FirstName, LastName, Email, Phone, Account.Id
                        FROM Contact 
                        WHERE Id IN :convertedIdSet] );
  
       }    

           String userName = UserInfo.getUserName();

            User activeUser = [Select Email From User where Username = : userName limit 1];

            String userEmail = activeUser.Email;
           
           
       System.debug('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'+convertedIdSet) ; 
       Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
       email.setToAddresses(new String[] {userEmail});
       email.setSubject('+convertedIdSet+'); 
       email.setPlainTextBody('details');
       emails.add(email);
       String body = 'Contact Details : ' +conList+ ' ';
       Messaging.sendEmail(emails);    
       }
            
       global void finish(Database.BatchableContext BC){
       }
    }
Below code is not working can anyone help me in this...?

global class Date_Batch_Class implements Database.Batchable<sObject>{

        global Date_Batch_Class(){
                   // Batch Constructor
        }
       
        // Start Method
        global Database.QueryLocator start(Database.BatchableContext BC){
        
            string query = 'select id,LastName from Contact where OldDate__c = LAST_N_DAYS:5';
               System.debug('aaaaaaaaaaaaaaaaaaaaaaaa'+query) ; 
            return Database.getQueryLocator(query);

        }

      
      // Execute Logic
       global void execute(Database.BatchableContext BC, List<Contact>scope){
             
        delete scope;
     
       }
     
       global void finish(Database.BatchableContext BC){
            // Logic to be Executed at finish
       }
    }
code 
public class AddPrimaryContact implements Queueable {
    
    private Contact s;
    private String State;
    
    public AddPrimaryContact(Contact s, String State) {
        this.s = s;
        this.state = State;
    }
    public void execute(QueueableContext context) {
                   List<Account> ListAccount = [SELECT ID, Name ,(Select id,FirstName,LastName from contacts ) FROM ACCOUNT WHERE BillingState = :state LIMIT 200];
             List<contact> con = new List<Contact>();
          for(Account acc: ListAccount)
          {
          
          Contact cont = s.clone(false,false,false,false);

               cont.AccountId =  acc.id;

                 con.add( cont );
          
          }
        insert con;
   
    }
}







what to wrire here in anonymous block ..?

AddPrimaryContact obi = new AddPrimaryContact(s,usa);

Database.executeBatch(obj);




 
How  to stop the page from refreshing continuously...?

apex page :

<apex:page controller="searchClass">
    <script>
    
    window.onload = function()
    {
        some();
        }
    
    </script>
    
    <apex:form >
        <apex:pageBlock>
            <apex:pageBlockSection >
               <apex:actionfunction action="{!searchContact}" name="some">            

            <apex:pageBlockTable value="{!Listcontacts}" var="con" id="abc">
                <apex:column value="{!con.Name}"/>
                
            </apex:pageBlockTable>
              </apex:actionfunction>

            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:form>
</apex:page>

apex class :

 public class searchClass
{
   
    public List<Contact> result{get;set;}
    public List<Contact> Listcontacts {get;set;}
    public searchClass()
    {
        
           Listcontacts = new List<Contact>();
    }
               

    public void searchContact()
    {
      
        Listcontacts = [ SELECT Name from Contact];
            System.debug('aaaaaaaaaaaaaaaaaaaaa'+Listcontacts);

    }
    
     }





 
 Right side block should display Account name as a heading and its related contacts under that account make those changes.
 page block 2 is not working ...?

// class

public class AccountSelectClassController {

    public list<wrapaccount> wrapaccountList { get; set; }
    public list<account> selectedAccounts{get;set;}     
    public list<id> selectedrecordsIds{get;set;}
    public list<Contact> records{get;set;}
    public list<Account> names{get;set;}

    public AccountSelectClassController ()
    {
      
       if(wrapaccountList ==null)
            {
                 wrapaccountList =new list<wrapaccount>();
                 for(account a:[select id,name from account limit 10])
                 {
                 wrapaccountlist.add(new wrapaccount(a));
        
                  }
            }
     }
    
     public void ProcessSelected()
     {
       selectedAccounts=new list<account>();
       selectedrecordsIds =new list<id>();
       records =new List<Contact>();
       names =new List<Account>();
       for(wrapaccount wrapobj:wrapaccountlist)
          {
              if(wrapobj.isSelected==true)
                {
                   selectedAccounts.add(wrapobj.accn);
                }   
          }
          
          for(Account abc:selectedAccounts)
          {
            selectedrecordsIds.add(abc.id);   
          }
                names = [SELECT Name,label__c FROM ACCOUNT WHERE Id IN :selectedrecordsIds];
         
             records = [SELECT Name FROM Contact WHERE AccountId IN : selectedrecordsIds];
               
             System.debug('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'+records);

          System.debug('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'+selectedrecordsIds);
            System.debug('ccccccccccccccccccccccccccccccccccccccc'+names);

      }
      
  
   
   public class wrapaccount
   {
    
    public account accn{get;set;}
    public boolean isSelected{get;set;}
     
       public wrapaccount(account a)
       {
     
         accn=a;
         isselected=false;
       }
   }
}


vf pafe :-
<apex:page sidebar="false" controller="AccountSelectClassController">
    
    
    <script type="text/javascript">
        function selectAllCheckboxes(obj,receivedInputID){
            var inputCheckBox = document.getElementsByTagName("input");
            for(var i=0; i<inputCheckBox.length; i++){
                if(inputCheckBox[i].id.indexOf(receivedInputID)!=-1){
                    inputCheckBox[i].checked = obj.checked;
                }
            }
        }
    
    </script>
 <apex:form >
    
     <apex:pageBlock id="block2">
       
       <apex:pageBlockSection columns="2">
         <apex:pageBlockTable value="{!wrapaccountList}" var="waccl">
            
           <apex:column >
              <apex:facet name="header">
                            <apex:inputCheckbox onclick="selectAllCheckboxes(this,'inputId')"/>
                        </apex:facet>
            <apex:inputCheckbox value="{!waccl.isSelected}" id="InputId"/>
           </apex:column>
            
            <apex:column value="{!waccl.accn.name}"/>
         </apex:pageBlockTable>
           <apex:pageBlock >
           
   
          <apex:pageBlockTable value="{!names}" var="aaa">
             <apex:column value="{!aaa.Name}" headerValue="name"/>

                                
               
              <apex:pageBlockTable value="{!records}" var="qqq">
                  <apex:column value="{!qqq.name}"/>
              </apex:pageBlockTable>
              </apex:pageBlockTable>

           </apex:pageBlock>
       </apex:pageBlockSection>
         
         <apex:pageBlockButtons location="bottom">
          <apex:commandButton action="{!ProcessSelected}" value="Show Selected Contacts" reRender="block2"/>
        </apex:pageBlockButtons>
         
     </apex:pageBlock>
    
   </apex:form>
</apex:page>


 
//apex class

public class AccountSelectClassController {

//CONTROLLER CLASS

    public list<wrapaccount> wrapaccountList { get; set; }
    public list<account> selectedAccounts{get;set;}     
    public list<id> selectedrecordsIds{get;set;}
    
      public AccountSelectClassController (){
      
     //if(wrapaccountList ==null){
          wrapaccountList =new list<wrapaccount>();
          for(account a:[select id,name from account limit 10]){
           wrapaccountlist.add(new wrapaccount(a));
        
           }
        // }
      }

    //### SELECTED ACCOUNT SHOWN BY THIS METHOD
      public void ProcessSelected(){
     selectedAccounts=new list<account>();
     selectedrecordsIds =new list<id>();
      
      for(wrapaccount wrapobj:wrapaccountlist){
           if(wrapobj.isSelected==true){
           selectedAccounts.add(wrapobj.accn);
           }
            
         }
          
          for(Account abc:selectedAccounts)
          {
            selectedrecordsIds.add(abc.id);    
          }
              List<Contact> records = [SELECT Name FROM Contact WHERE AccountId IN : selectedrecordsIds ];

          System.debug('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'+selectedrecordsIds);
      }
      
  //##THIS IS WRAPPER CLASS
   // account and checkbox taken in wrapper class
   
   public class wrapaccount{
    
    public account accn{get;set;}
    public boolean isSelected{get;set;}
     
       public wrapaccount(account a){
     
         accn=a;
         isselected=false;
       }
  }
}


//apex page

<apex:page sidebar="false" controller="AccountSelectClassController">
   
 <!--VF PAGE BLOCK-->

 <apex:form >
     <apex:pageBlock >
        <apex:pageBlockButtons >
          <apex:commandButton action="{!ProcessSelected}" value="Show Selected accounts" reRender="block2"/>
        </apex:pageBlockButtons>
       <apex:pageBlockSection columns="2">
         <apex:pageBlockTable value="{!wrapaccountList}" var="waccl">
            
           <apex:column >
             <apex:facet name="header">
               <apex:inputCheckbox />
             </apex:facet>
            <apex:inputCheckbox value="{!waccl.isSelected}" id="InputId"/>
           </apex:column>
            
            <apex:column value="{!waccl.accn.name}"/>
         </apex:pageBlockTable>
         
          <apex:pageBlockTable value="{!records}" var="sa" id="block2">
            <apex:column value="{!sa.name}"/>
           </apex:pageBlockTable>
       
       </apex:pageBlockSection>
     </apex:pageBlock>
   </apex:form>
</apex:page>



 
I have given all required field values but still throwing that error


@isTest
private class UpdatingAccountRelatedContactsCount_Test {    
 static Testmethod void accountRelatedContacts()
    {
    List<Contact> conList =  new List<Contact>();
    Account Acc = New Account();
    Acc.Name = 'Sai';
    insert Acc;    
           
    Contact con = new Contact();
    con.LastName = 'Test1';
    con.AccountId = Acc.Id;
    con.Sum__c = 100;
    conList.add(con);       
        
    Contact con1 = new Contact();
    con.LastName = 'Test2';
    con1.AccountId = Acc.Id;
    con1.Sum__c = 200;
    conList.add(con1);            
    insert conList;
        
    System.debug('aaaaaaaaaaaaaaa'+conList);
   // delete con1;    
    Test.StartTest();           
    TriggerHelperClass obj = new TriggerHelperClass();
    update conList;
    Test.StopTest();
    }
}
 
 Highlighed part is not covering in the test class--- Helper class 

public  class  TriggerHelperClass {
   public Set <Id> accountIds = new Set <Id>();
   public List <Account> lstAccountsToUpdate = new List<Account>();
    // for insertion and deletion
   public void insertAndUndelete(List<Contact> newAcc)
       {
         for(Contact con:newAcc)
              {
                 accountIds.add(con.accountID);
             }
        this.updatingContactsCount();
    }   
    // for delete operation
   public void deleteOperation(List<Contact> newAcc)
      {
           for(Contact con:newAcc)
                {
                   accountIds.add(con.accountID);
             } 
         this.updatingContactsCount();
      }              

    public void updateOperation(List<Contact> newAcc,Map<Id,Contact>oldMap)
       {
           for(Contact con : newAcc)
               {
                      if(con.AccountId != null)
                           {
                              if(oldMap.get(con.Id).AccountId != con.AccountId)
                                  {
                                    accountIds.add(con.AccountId);     
                               }
                          } 
                     accountIds.add(oldMap.get(con.Id).AccountId);    
               }     
           this.updatingContactsCount();
       }          

    Public void updatingContactsCount()
        {
           for(Account acc:[SELECT Id,Name,Count_Contacts__c,Total_Sum__c,(Select Id,Sum__c from Contacts) from Account where Id IN: accountIds])
                   {
                       acc.Count_Contacts__c = acc.Contacts.size();
                     acc.Total_Sum__c = 0;  
                     for(Contact con : acc.Contacts)
                         {
                            if(con.Sum__c != NULL)
                               {
                                   acc.Total_Sum__c = acc.Total_Sum__c + con.Sum__c;  
                             }   
                       }
                     lstAccountsToUpdate.add(acc);
                      }   
         UPDATE lstAccountsToUpdate;    
      }
}




test class


@isTest
private class UpdatingAccountRelatedContactsCount_Test {
   
 static Testmethod void accountRelatedContacts()
    {
    List<Contact> conList =  new List<Contact>();
    Account Acc = New Account();
    Acc.Name = 'srikanth';
    insert Acc;    
           
    Contact con = new Contact();
    con.LastName = 'Test';
    con.AccountId = Acc.Id;
    con.Sum__c = 100;
    conList.add(con);       
        
    Contact con1 = new Contact();
    con.LastName = 'Test1';
    con1.AccountId = Acc.Id;
    con1.Sum__c = 100;
    conList.add(con1);       
     
    insert conList;
    delete con1;      
    Test.StartTest();
    TriggerHelperClass obj = new TriggerHelperClass(); 
    
    update conList ;
    undelete con1;
    Test.StopTest();
   
    }
}
 
what the wrong this code it is showing the above error please help in this 


global class LeadDays7 implements Database.Batchable<SObject>{
    List<Lead> listRecords = new List<Lead>();
    
    global Database.QueryLocator start(Database.BatchableContext BC)
    {
        String query = 'Select Id,Name,Email,CheckBox__c,Leadage__c From Lead Where Leadage__c > 7 LIMIT 10 ';
        return Database.getQueryLocator(query);
    }
     
     global void execute(Database.BatchableContext BC, List<Lead> scope){
           System.debug('aaaaaaaaaaaaaaaaaaaa'+scope);
        
                     for(Lead leads : scope)
                    {
               if(leads.Email != NULL)
               {
                   leads.CheckBox__c = TRUE;
               }
            listRecords.add(leads);          
        }
         update listRecords;
     

        List<String> emailList = new List<String>();
        System.debug('aaaaaaaaaaaaaaaaaaaa'+scope);
        for(Lead ld: scope) {
            if(ld.Email != NULL) {
                emailList.add(ld.Email);
            }
        }
        System.debug('bbbbbbbbbbbbbbbbbbbbb'+emailList);
         Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
            email.setToAddresses(emailList);
            email.setSaveAsActivity(false);
            email.setSubject('Age is 7 days');
            email.setPlainTextBody('Batch Update for Opportunity Close Date has been completed');
            Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email});
            
     }    
    global void finish(Database.BatchableContext BC){
 
}
}
In the Second If-condition i am confued how to write the code can anyone help me in this how to write the code .

I am getting Account servicing records which are linked to account



public class Account_Related_Account_Servicing {
    List<Account_Servicing__c> Accountservicing_records = new List<Account_Servicing__c>();   
    Map<Id,Map<Id,List<Account_Servicing__c>>> Account_RelatedRecords = new Map<Id,Map<Id,List<Account_Servicing__c>>>();
    Map<Id,List<Account_Servicing__c>> listrecords = new Map<Id,List<Account_Servicing__c>>();
    Public void Account_Linked_Account_Servicing_Records()
        {
              Accountservicing_records = [select Id,Account__r.Id,Name from Account_Servicing__c where Account__c != Null ]; 
            for(Account_Servicing__c abc:Accountservicing_records)
                 {
                     if(listrecords.containsKey(abc.Id) )
                         {
                                 listrecords.get(abc.Id).add(abc);
                         }
                     else
                         {
                                listrecords.put(abc.Id,new List<Account_Servicing__c>{abc}) ;
                        }
                     
                     
         //   In this how to write the code        
                    if(Account_RelatedRecords.containsKey(Account__r.Id) )
                         {
                                 Account_RelatedRecords.get(Account__r.Id).add(abc);
                         }
                    else
                         {
                                Account_RelatedRecords.put(Account__r.Id,Map<Id,List<Account_Servicing__c>>) ;
                        }                     
                    
                     

                           }
            System.debug(Account_RelatedRecords);
            
           
          }    
}
My code


<apex:page StandardController="Account" >
<apex:form >
<apex:pageBlock >
<apex:pageBlockSection >
<apex:inputField value="{! account.name }"/>

<apex:inputField value="{! account.label__c}"/>
<apex:inputField value="{! account.Rating}"/>
  <apex:inputField value="{! account.check_box__c}" />
   
 <apex:outputText value="{!$Label.Error_when_checkbox_is_disabled}" rendered="{!if(account.check_box__c = 'TRUE',true,false)}" />

</apex:pageBlockSection>
</apex:pageBlock>

<apex:commandButton value="save" action="{!save}"/>
</apex:form>

</apex:page>


 
global class Account_Add_Opportunities implements Database.Batchable<sObject>{
    
    List<Account> conlist = new List<Account>();
        
    List<Opportunity> updateList = new List<Opportunity>();
    
    
    global Account_Add_Opportunities (){
        // Batch Constructor
    }
    // Start Methode
    global Database.QueryLocator start(Database.BatchableContext BC){
        
        return Database.getQueryLocator([SELECT id,Name,CloseDate,Type from Opportunity WHERE Type = 'New Business' AND StageName = 'New Opportunity' ]); 
        
    }
    // Execute Logic
    global void execute(Database.BatchableContext BC, List<Opportunity>scope){
            conlist  = [SELECT Id,Name,BillingAddress from Account where Name = 'Closed Lost Opportunities'];
 
             System.debug('aaaaaaaaaaaaa'+conlist);    
        for(Opportunity opp :scope )
        {   
            opp.StageName = 'Closed Lost' ;
               for (Account acct :conlist)
               { 
                            opp.AccountID = acct.Id;


            
            }
            
            updateList.add(opp);
            
        }
        
                update updateList ;
 

        }
    
    global void finish(Database.BatchableContext BC){
        // Logic to  be Executed at finish
    }
}
code 
public class AddPrimaryContact implements Queueable {
    
    private Contact s;
    private String State;
    
    public AddPrimaryContact(Contact s, String State) {
        this.s = s;
        this.state = State;
    }
    public void execute(QueueableContext context) {
                   List<Account> ListAccount = [SELECT ID, Name ,(Select id,FirstName,LastName from contacts ) FROM ACCOUNT WHERE BillingState = :state LIMIT 200];
             List<contact> con = new List<Contact>();
          for(Account acc: ListAccount)
          {
          
          Contact cont = s.clone(false,false,false,false);

               cont.AccountId =  acc.id;

                 con.add( cont );
          
          }
        insert con;
   
    }
}







what to wrire here in anonymous block ..?

AddPrimaryContact obi = new AddPrimaryContact(s,usa);

Database.executeBatch(obj);




 
How  to stop the page from refreshing continuously...?

apex page :

<apex:page controller="searchClass">
    <script>
    
    window.onload = function()
    {
        some();
        }
    
    </script>
    
    <apex:form >
        <apex:pageBlock>
            <apex:pageBlockSection >
               <apex:actionfunction action="{!searchContact}" name="some">            

            <apex:pageBlockTable value="{!Listcontacts}" var="con" id="abc">
                <apex:column value="{!con.Name}"/>
                
            </apex:pageBlockTable>
              </apex:actionfunction>

            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:form>
</apex:page>

apex class :

 public class searchClass
{
   
    public List<Contact> result{get;set;}
    public List<Contact> Listcontacts {get;set;}
    public searchClass()
    {
        
           Listcontacts = new List<Contact>();
    }
               

    public void searchContact()
    {
      
        Listcontacts = [ SELECT Name from Contact];
            System.debug('aaaaaaaaaaaaaaaaaaaaa'+Listcontacts);

    }
    
     }





 
 Right side block should display Account name as a heading and its related contacts under that account make those changes.
 page block 2 is not working ...?

// class

public class AccountSelectClassController {

    public list<wrapaccount> wrapaccountList { get; set; }
    public list<account> selectedAccounts{get;set;}     
    public list<id> selectedrecordsIds{get;set;}
    public list<Contact> records{get;set;}
    public list<Account> names{get;set;}

    public AccountSelectClassController ()
    {
      
       if(wrapaccountList ==null)
            {
                 wrapaccountList =new list<wrapaccount>();
                 for(account a:[select id,name from account limit 10])
                 {
                 wrapaccountlist.add(new wrapaccount(a));
        
                  }
            }
     }
    
     public void ProcessSelected()
     {
       selectedAccounts=new list<account>();
       selectedrecordsIds =new list<id>();
       records =new List<Contact>();
       names =new List<Account>();
       for(wrapaccount wrapobj:wrapaccountlist)
          {
              if(wrapobj.isSelected==true)
                {
                   selectedAccounts.add(wrapobj.accn);
                }   
          }
          
          for(Account abc:selectedAccounts)
          {
            selectedrecordsIds.add(abc.id);   
          }
                names = [SELECT Name,label__c FROM ACCOUNT WHERE Id IN :selectedrecordsIds];
         
             records = [SELECT Name FROM Contact WHERE AccountId IN : selectedrecordsIds];
               
             System.debug('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'+records);

          System.debug('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'+selectedrecordsIds);
            System.debug('ccccccccccccccccccccccccccccccccccccccc'+names);

      }
      
  
   
   public class wrapaccount
   {
    
    public account accn{get;set;}
    public boolean isSelected{get;set;}
     
       public wrapaccount(account a)
       {
     
         accn=a;
         isselected=false;
       }
   }
}


vf pafe :-
<apex:page sidebar="false" controller="AccountSelectClassController">
    
    
    <script type="text/javascript">
        function selectAllCheckboxes(obj,receivedInputID){
            var inputCheckBox = document.getElementsByTagName("input");
            for(var i=0; i<inputCheckBox.length; i++){
                if(inputCheckBox[i].id.indexOf(receivedInputID)!=-1){
                    inputCheckBox[i].checked = obj.checked;
                }
            }
        }
    
    </script>
 <apex:form >
    
     <apex:pageBlock id="block2">
       
       <apex:pageBlockSection columns="2">
         <apex:pageBlockTable value="{!wrapaccountList}" var="waccl">
            
           <apex:column >
              <apex:facet name="header">
                            <apex:inputCheckbox onclick="selectAllCheckboxes(this,'inputId')"/>
                        </apex:facet>
            <apex:inputCheckbox value="{!waccl.isSelected}" id="InputId"/>
           </apex:column>
            
            <apex:column value="{!waccl.accn.name}"/>
         </apex:pageBlockTable>
           <apex:pageBlock >
           
   
          <apex:pageBlockTable value="{!names}" var="aaa">
             <apex:column value="{!aaa.Name}" headerValue="name"/>

                                
               
              <apex:pageBlockTable value="{!records}" var="qqq">
                  <apex:column value="{!qqq.name}"/>
              </apex:pageBlockTable>
              </apex:pageBlockTable>

           </apex:pageBlock>
       </apex:pageBlockSection>
         
         <apex:pageBlockButtons location="bottom">
          <apex:commandButton action="{!ProcessSelected}" value="Show Selected Contacts" reRender="block2"/>
        </apex:pageBlockButtons>
         
     </apex:pageBlock>
    
   </apex:form>
</apex:page>


 
public class taskSelectClassController {
     public  Account acct{get; set;}
       public string currentRecordId {get;set;}
       public  List<Id> tasksIds{set;get;} 
       public List<task__c> updatedRecords {get;set;}

        public taskSelectClassController(ApexPages.StandardController stdController) {
           currentRecordId  = ApexPages.CurrentPage().getparameters().get('id');
                tasksIds =new List<Id>();
        
            wraptaskList = new List<wraptask>();
            //-- if task is custom object then, you need to change this query
            //for(task a: [select AccountId,task Name from task limit 10]) 
     
           for(Task__c  a: [select Lookup_Account__c,Name from Task__c Where Lookup_Account__c = null limit 10])  {               
                wraptaskList.add(new wraptask(a));
            }
        }
    
    public List<wraptask> wraptaskList {get; set;}
    public List<task__c> selectedtasks{get;set;}
  
    public void processSelected() {
    selectedtasks = new List<task__c>();
      
        for(wraptask wraptaskObj : wraptaskList) {
            if(wraptaskObj.selected == true) { 
                
                selectedtasks.add(wraptaskObj.acc);
            }
            for(task__c var : selectedtasks)
            {
                tasksIds.add(var.Id);
            }
            List<task__c>taskRecords = [SELECT Lookup_Account__c from task__c where ID IN: tasksIds];
                updatedRecords = new List<task__c>();
            for( task__c chl : taskRecords ) {
            chl.Lookup_Account__c = currentRecordId;
            updatedRecords.add(chl);
               
        }
             update updatedRecords; 
    }
 
    public class wraptask
                          {
        public task__c acc {get; set;}
        public Boolean selected {get; set;}      
        public wraptask(task__c a) {
            acc = a;
            selected = false;
        }
    }
}
public class taskSelectClassController {
 
     
    public List<wraptask> wraptaskList {get; set;}
    public List<task> selectedtasks{get;set;}
     
    public taskSelectClassController(){
        if(wraptaskList == null) {
            wraptaskList = new List<wraptask>();
            for(task a: [select AccountId,task Name from task limit 10]) {
               
                wraptaskList.add(new wraptask(a));
            }
        }
    }
 
    public void processSelected() {
    selectedtasks = new List<task>();
 
        for(wraptask wraptaskObj : wraptaskList) {
            if(wraptaskObj.selected == true) {
                selectedtasks.add(wraptaskObj.acc);
            }
        }
    }
 
 
    
    public class wraptask {
        public task acc {get; set;}
        public Boolean selected {get; set;}
 
      
        public wraptask(task a) {
            acc = a;
            selected = false;
        }
    }
}