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
ansari betasoftansari betasoft 

Related number of Contacts through vf page How to write Test Class for this

My Vf page and controller code here:

*********************************************************************************************
vfpage:


<apex:page controller="account1234" showHeader="false" sidebar="false" standardStylesheets="false">
 <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css" rel="stylesheet" media="screen"/>
 <div class="container" style="background:#666699">
 <div class="col-sm-3" style="background:#00b359;">
 
 <h1>Account</h1>
 <apex:form >
 
 <apex:pageBlock >
  <APEX:panelgrid columns="1" style="background:#00b3b3;">
  
<apex:pageBlockTable value="{!Acclst}" var="A">
   
            
           
            <apex:column > 
            <apex:commandLink value="{!A.Name}" action="{!setupContacts}" rerender="con">
              <apex:param value="{!A.Id}" name="idForConts" assignTo="{!recid}"/>
            </apex:commandLink>
            </apex:column> 
           
          
            </apex:pageBlockTable>
             </APEX:panelgrid>
        </apex:pageBlock>
        
    </apex:form>
    </div>

  <div class="col-sm-1">
  </div>
 
 
  <apex:form >
  
 <apex:pageBlock rendered="{!contacts.size!=0}">
  

  <div class="col-sm-3" style="background:#00b359;">
  <apex:outputText value="Related Contact"></apex:outputText>
      <apex:pageBlockTable value="{!contacts}" var="c" id="con" style="background:#00b3b3;">
        
        
      <apex:column > 
            <apex:commandLink value="{!c.LastName}" action="{!contactdetail}" rerender="detail">
              <apex:param value="{!c.Id}" name="detail" assignTo="{!detid}"/>
            </apex:commandLink>
            </apex:column>  
      </apex:pageBlockTable>
       </div>
     
     
    </apex:pageBlock>
  </apex:form>
  
 <div class="col-sm-1">
  </div>
  <div class="col-sm-3" style="background:#00b359">
  <apex:outputText value="Contact Details" ></apex:outputText>
  <apex:outputpanel id="detail" rendered="{!contactlist.size!=0}">
 
  <apex:form >


      <apex:repeat value="{!contactlist}" var="d" id="detail" >
      
      
      
        
      
        <div class="row">
        <div class="col-sm-12">
                  <apex:outputLabel value="FirstName:" />
                    <apex:outputText value="{!d.FirstName}" />
                    </div>
                    </div>
       <div class="row">
       <div class="col-sm-12">
                  <apex:outputLabel value="Last Name:" />
                    <apex:outputText value="{!d.LastName}" />
                    </div>
                    </div>
      </apex:repeat>
     
  
  </apex:form>
  </apex:outputPanel>
  
  </div>
  
 </div>
 
</apex:page>




****************************************************************************

Controller code:


public class account1234 {

    public void contactdetail() {
        Contactlist=[select id, FirstName, LastName from Contact where Id=:detid];
    }


    public list<contact> Contactlist{get;set;}
        


public string recid{get;set;}
public string detid{get;set;}

  
   public list<Account> Acclst{get;set;}
   Public Account A;

   public List<Contact> contacts {get; set;}

   public account1234(){

   Acclst = [select Id,Name from Account ];
   contacts=null;
   }

  

  public void setupContacts()
  {
     contacts=[select id, FirstName, LastName from Contact where AccountId=:recId];
      }
   }


 
Rohit K SethiRohit K Sethi
Hi ansari betasoft,


Write Below code for code coverage : 
@isTest 
private class testClasss{
  public static testMethod void unitTest1(){
        List<Account> lstAccount = new List<Account>();
        lstAccount.add(new Account(name='axz1'));
        lstAccount.add(new Account(name='axz2'));
        lstAccount.add(new Account(name='axz3'));
        lstAccount.add(new Account(name='axz4'));
        lstAccount.add(new Account(name='axz5'));
        lstAccount.add(new Account(name='axz6'));
        insert lstAccount;
                
        List<Contact> lstContact = new List<Contact>();
        lstContact.add(new Contact(lastname='abc1',email='test2@gmail.com'));
        lstContact.add(new Contact(lastname='abc2',email='test1@gmail.com'));
        lstContact.add(new Contact(lastname='abc3',accountId=lstAccount[1].id,email='test2@gmail.com'));
        lstContact.add(new Contact(lastname='abc4',accountId=lstAccount[0].id,email='test3@gmail.com'));
        lstContact.add(new Contact(lastname='abc5',accountId=lstAccount[0].id,email='test4@gmail.com'));
        lstContact.add(new Contact(lastname='abc6',accountId=lstAccount[0].id ,email='test6@gmail.com'));
        

        insert lstContact;
        

        account1234 sc = new account1234();
        
        PageReference pageRef = Page.account1234Page;
        Test.setCurrentPage(pageRef);
        sc.recid = lstAccount[0].id;
        sc.setupContacts();
        sc.detid = lstContact[5].id;
        sc.contactdetail();
  }
}

Thanks
Srinivas SSrinivas S
Please follow as mentioned below -
@isTest
private class Testaccount1234 {
	static testMethod void testAccSearch() {
		Account acc = new Account(Name='TestAcc');
		insert acc;
		Contact con = new contact(LastName = 'TestCon', AccountId = acc);
		insert con;
		account1234 acc1 = new account1234();
		acc1.detid = String.valueOf(con.Id);
		acc1.recId = String.valueOf(acc.Id);
		acc1.contactdetail();
		acc1.setupContacts();
	}
}

------------
Thanks,
Srinivas
- Please mark as solution if your problem is resolved.