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
shivangi shailesh 8shivangi shailesh 8 

How to write the test class for the below controller ?. please anyone help me out with this as i am new to this.

Vf page:
<apex:page controller="HSMPartnerTermsControllerISV" showHeader="false">
 <apex:includeScript value="{!$Resource.PDFObject}"/> 
  <apex:form >
   <html>
        <head>
            <title>Honeywell Scanning and Mobility</title>
            <meta name="description" content="Don't forget to add a 1-2 sentence description here."/>
            <meta name="keywords" content="Don't forget to add 20-30 important keywords here."/>
            <script src="{!URLFOR($Resource.HSM_Resource, '/js/jquery-1.11.1.min.js')}" type="text/javascript"></script>
            <script src="{!URLFOR($Resource.HSM_Resource, '/js/jquery-1.9.1.js')}" type="text/javascript"></script>
            <script src="{!URLFOR($Resource.HSM_Resource, '/js/custom.js')}" type="text/javascript"></script>
            <link href="{!URLFOR($Resource.HSM_Resource, '/css/style.css')}" rel="stylesheet" type="text/css"/>
         </head>  

   <body>
   <div id="wrapper">
      <header class="overflow">
      <div id="logo"><a href="#">
      <img border="0" src="{!$Resource.ISV_logo}" width="750px" height="60px" alt="Honeywell Scanning and Mobility" title="Honeywell Scanning and Mobility"/>
      
      </a></div>
      <nav>
        <ul class="Customul Pad24 FRgt">
        <li><a href="#" class="linkR">Contact Us</a></li>
        <li>l</li>
        <li><a href="#" class="linkR">Help</a></li>
        </ul>
      </nav>
  </header>

   <apex:pageBlock title=""> 
   <div >
    <!-- <object data="/servlet/servlet.FileDownload?file=015A0000004jP1f#toolbar=1&#38;navpanes=0&#38;scrollbar=1&#38;page=1&#38;view=FitH" 
     type="application/pdf" 
     width="900px" 
     height="500px"/> 
     <apex:iframe src="/servlet/servlet.FileDownload?file=015A0000005pZW0" scrolling="true" height="500" width="900"/> -->
     <p > Please download and review the Independent Software Vendor Program Agreement, then return to this page and sign.</p>
     <br/>
     <a href="https://honeywellsps.my.salesforce.com/sfc/p/00000000SK3U/a/A0000000HuOn/DWxp_TvODlu2E6.JK7eSV19qSHYtyBo_uzlpAs6qz.0" target="_blank">
     <p >Independent Software Vendor Program Agreement</p>
     </a>
     <br/>
     <a href="https://honeywellsps.my.salesforce.com/sfc/p/00000000SK3U/a/2K0000008lBu/IsMIOGxj0DTtpLq1RLrTzikUWZavR4bXvbNZSTKerTM" target="_blank">
     <p >APAC ISV Partner agreement (Terms and Conditions)</p>
     </a>
                   
    </div>

    <br/>
    <br/>

    <div id="firtTableDiv">
  
     <table id="firstTable" class="gridview" >

       <tr>
       <th></th>
       <th></th>
       </tr>
     
       <tr>
          <th style="background-color:#3B87DE" colspan="4"><font color="white">PARTNER INFORMATION</font></th>
       </tr>

      <tr>
         <td width="40%"><apex:outputText value="First Name"/></td>
        <td width="40%"><apex:inputField value="{!cont.FirstName}"/></td>
         <td width="50%"><apex:outputText value="Last Name"/></td>
        <td width="50%"><apex:inputField required="true"  value="{!cont.LastName}"/></td>
      </tr>
      
      <tr>
         <td width="40%"><apex:outputText value="Email"/></td>
        <td width="40%"><apex:inputField required="true"  value="{!cont.Email}"/></td>
         <td width="50%"><apex:outputText value="Title"/></td>
        <td width="50%"><apex:inputField required="true"  value="{!cont.title}"/></td>
      </tr>
     
      </table>
   </div>

    <br/>
    <br/>

    <div align="center"> 
     <apex:commandButton action="{!save}" value="I Accept" /> &nbsp;
     <apex:commandButton onClick="window.top.close();"  value="Decline" />
    </div>
   
  </apex:pageBlock>
  </div>

   </body>
   </html>
 </apex:form>
</apex:page>

Controller:
public without sharing class HSMPartnerTermsControllerISV{
  
  public Contact cont { get; set; }
    
  public Id accId;
    
  public HSMPartnerTermsControllerISV() {
      cont = new Contact();
      accId= apexpages.currentpage().getparameters().get('accid');
  }

  public PageReference save() 
  {
    try 
    {
           if(cont.Email==null){
            ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Please enter register email'));
            return null;
            }
            
            if(cont.FirstName==null){
            ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Please FirstName'));
            return null;
            }
            
         if(cont.LastName==null){
            ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Please LastName'));
            return null;
            }
            
         if(cont.Title==null){
            ApexPages.AddMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Please enter Title'));
            return null;
            }
            
        System.debug('Email '+cont.Email +'Account Id' +accId);
            
        List<Contact> checkCont = [SELECT Id, AccountId,Account.Name, Email FROM Contact where email=:cont.Email and AccountId=:accId limit 1];
        
        List<Account> acc        =[Select Id, Partner_Type__c,ISV_T_C_Accepted_Date__c,ISV_T_C_Accepted_By__c from account where Id=:accId limit 1];
    
       if(checkCont.isEmpty())
        {
          cont.AccountId=accId;
          insert cont;
          
          if(acc[0].Partner_Type__c =='ISV'){
              // ISV T&C Acceptance Section Fields
              acc[0].ISV_T_C_Accepted_By__c   = cont.Id;
              acc[0].ISV_T_C_Accepted_Date__c = System.Today();
              acc[0].ISV_T_C_Accepted__c=true;
              acc[0].ISV_T_C_Transition_Status__c='Accepted';
              update acc;
          }
          // T&C Acceptance Section Fields
          else{
              acc[0].T_C_Accepted_By__c   = cont.Id;
              acc[0].T_C_Accepted_Date__c = System.Today();
              acc[0].T_C_Accepted__c=true;
              acc[0].T_C_Transition_Status__c='Accepted';
              update acc;
          }
        } 
        
        else {
         if(acc[0].Partner_Type__c =='ISV'){  
           acc[0].ISV_T_C_Accepted_By__c   = checkCont[0].Id;
           acc[0].ISV_T_C_Accepted_Date__c = System.Today();
           acc[0].ISV_T_C_Transition_Status__c='Accepted';
           acc[0].ISV_T_C_Accepted__c=true;
           update acc;
          }
          else{ 
           // T&C Acceptance Section Fields
           acc[0].T_C_Accepted_By__c   = checkCont[0].Id;
           acc[0].T_C_Accepted_Date__c = System.Today();
           acc[0].T_C_Accepted__c=true;
           acc[0].T_C_Transition_Status__c='Accepted';
           update acc;
          } 
        }
        
        PageReference newocp = new PageReference('/HSMPartnerThank');
        newocp.setRedirect(true);
        return newocp;
    } catch (DMLException e) {
        ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR, 'Error.'));
        return null;
    }

    return null;
  }
  
  public PageReference cancel() {
    try {
        
        System.debug('Email '+cont.Email +'Account Id' +accId);
        
        List<Contact> checkCont = [SELECT Id, AccountId,Account.Name, Email FROM Contact where email=:cont.Email and AccountId=:accId limit 1];
        
        List<Account> acc        =[Select Id,Partner_Type__c,ISV_T_C_Accepted_Date__c,ISV_T_C_Accepted_By__c from account where Id=:accId limit 1];
    
       if(checkCont.isEmpty())
        {
          cont.AccountId=accId;
          insert cont;
          if(acc[0].Partner_Type__c =='ISV'){
          //ISV T&C Acceptance Section Fields
          acc[0].ISV_T_C_Accepted_By__c   = cont.Id;
          acc[0].ISV_T_C_Accepted_Date__c = System.Today();
          acc[0].ISV_T_C_Transition_Status__c='Declined';
          acc[0].ISV_T_C_Accepted__c=false;
          update acc;
          }
          else{
          // T&C Acceptance Section Fields
          acc[0].T_C_Accepted_By__c   = cont.Id;
          acc[0].T_C_Accepted_Date__c = System.Today();
          acc[0].T_C_Accepted__c=false;
          acc[0].T_C_Transition_Status__c='Declined';            
          update acc;
          }
        } else{
            if(acc[0].Partner_Type__c =='ISV'){
          //ISV T&C Acceptance Section Fields
           acc[0].ISV_T_C_Accepted_By__c   = checkCont[0].Id;
           acc[0].ISV_T_C_Accepted_Date__c = System.Today();
           acc[0].ISV_T_C_Transition_Status__c='Declined';
           acc[0].ISV_T_C_Accepted__c=false;
            update acc;
            }
           else{
           // T&C Acceptance Section Fields
           acc[0].T_C_Accepted_By__c   = checkCont[0].Id;
           acc[0].T_C_Accepted_Date__c = System.Today();
           acc[0].T_C_Accepted__c=false;
           acc[0].T_C_Transition_Status__c='Declined';
           update acc;
           }
        }
        
        PageReference newocp = new PageReference('/HSMPartnerThank');
        newocp.setRedirect(true);
        return newocp;
    } catch (DMLException e) {
        ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR, 'Error.'));
        return null;
    }

    return null;
  }
}
 
shivangi shailesh 8shivangi shailesh 8
This is the test classs for this which is not working :
@IsTest
Public Class  HSMPartnerTermsControllerISV_Test
{
    public static TestMethod void HSMPartnerTermsControllerISV_TM()
    {
         Test.startTest();
         if(Test.isRunningTest()) {
         Account Acc = new Account();
         Acc.Name = 'TEST_ACC';
         Acc.Global_Region_of_Account__c = 'EMEA';   
         Acc.BillingStreet = '3 Lloyd\'s Avenue';
         Acc.BillingCity  = 'London';
         Acc.BillingState = 'UK';
         Acc.BillingPostalCode = 'EC3N 3DS';
         Acc.BillingCountry = 'UK';  
         Acc.CurrencyIsoCode = 'USD'; 
         Acc.Partner_Type__c='ISV';
         Acc.Type='Partner - Silver';
         insert Acc;
        
         Contact con = new Contact();
         con.Title = 'Mr.';
         con.FirstName = 'TestName';
         con.LastName = 'TestLastName';
         con.accountId = Acc.Id;
         con.phone ='0123456789';
         con.email='test@test.com';
         Con.Sub_Region__c = 'Undefined'; 
         Con.Last_SFDC_Campaign_ID__c = '701A0000000MkPrIAK';
         insert con;
         
         acc.ISV_T_C_Accepted_By__c   = con.Id;
         acc.ISV_T_C_Accepted_Date__c = System.Today();
         acc.ISV_T_C_Accepted__c=true;
         acc.ISV_T_C_Transition_Status__c='Accepted';
         Update Acc;
        
            
        //Set Page
        PageReference pg = new PageReference('/HSMPartnerThank?id=066A0000001yEWp');   // '/apex/HSMPartnerThank?id=ABCDEFGHIJKL'
        Test.setCurrentPage(pg);
        ApexPages.CurrentPage().getparameters().put('accid', acc.id);
        HSMPartnerTermsControllerISV partApp = new HSMPartnerTermsControllerISV();
                
        partApp.Save();
        PartApp.cancel();
        ApexPages.Message[] msgs=ApexPages.getMessages();
        Boolean found=false;
        for (ApexPages.Message msg : msgs) {
           if (ApexPages.Severity.ERROR == msg.getSeverity()) {
           //if(message.getSeverity() == ApexPages.Severity.ERROR_MSG) {
              found=true;
           }
        }
        System.assert(found);
       }       
      Test.stopTest(); 
      } 
       // Method 2
     public static TestMethod void HSMPartnerTermsControllerISV_TM2()
    {
        
         Account Acc = new Account();
         Acc.Name = 'TEST_ACC';
         Acc.Global_Region_of_Account__c = 'EMEA';   
         Acc.BillingStreet = '3 Lloyd\'s Avenue';
         Acc.BillingCity  = 'London';
         Acc.BillingState = 'UK';
         Acc.BillingPostalCode = 'EC3N 3DS';
         Acc.BillingCountry = 'UK';  
         Acc.CurrencyIsoCode = 'USD'; 
         Acc.Partner_Type__c='ISV';
         Acc.Type='Partner - Silver';
         insert Acc;
        
         Contact con = new Contact();
         con.Title = 'Mr.';
         con.FirstName = 'TestNamee';
         con.LastName = 'TestLastNamee';
         con.accountId = Acc.Id;
         con.phone ='0123456789';
         con.email='test@test.com';
         Con.Sub_Region__c = 'Undefined'; 
         Con.Last_SFDC_Campaign_ID__c = '701A0000000MkPrIAK';
         insert con;
         
         acc.ISV_T_C_Accepted_By__c   = con.Id;
         acc.ISV_T_C_Accepted_Date__c = System.Today();
         acc.ISV_T_C_Accepted__c= false;
         acc.ISV_T_C_Transition_Status__c='Denied';
         Update Acc;
        
            
        //Set Page
        PageReference pg = new PageReference('/apex/HSMPartnerThank?id=ABCDEFGHIJKL');
        Test.setCurrentPage(pg);
        ApexPages.CurrentPage().getparameters().put('acc.id',acc.id);
        HSMPartnerTermsControllerISV partApp = new HSMPartnerTermsControllerISV();
                
        partApp.Save();
        PartApp.cancel();
        
        ApexPages.Message[] msgs=ApexPages.getMessages();
        Boolean found=false;
        for (ApexPages.Message msg : msgs) {
           if (ApexPages.Severity.ERROR == msg.getSeverity()) {
           //if(message.getSeverity() == ApexPages.Severity.ERROR_MSG) {
              found=true;
           }
          }
        } 
    
     public static TestMethod void HSMPartnerTermsControllerISV_TM3()
    {
         if(Test.isRunningTest()) {
         Account Acc = new Account();
         Acc.Name = 'TEST_ACC';
         Acc.Global_Region_of_Account__c = 'EMEA';   
         Acc.BillingStreet = '3 Lloyd\'s Avenue';
         Acc.BillingCity  = 'London';
         Acc.BillingState = 'UK';
         Acc.BillingPostalCode = 'EC3N 3DS';
         Acc.BillingCountry = 'UK';  
         Acc.CurrencyIsoCode = 'USD'; 
         Acc.Partner_Type__c='ISV';
         Acc.Type='Partner - Silver';
         insert Acc;
        
         Contact con = new Contact();
         con.Title = '';
         con.FirstName = '';
         con.LastName = 'TestLastNamee';
         con.accountId = Acc.Id;
         con.phone ='0123456789';
         con.email='test@test.com';
         Con.Sub_Region__c = 'Undefined'; 
         Con.Last_SFDC_Campaign_ID__c = '701A0000000MkPrIAK';
         insert con;
         
         acc.ISV_T_C_Accepted_By__c   = con.Id;
         acc.ISV_T_C_Accepted_Date__c = System.Today();
         acc.ISV_T_C_Accepted__c=true;
         acc.ISV_T_C_Transition_Status__c='Accepted';
         Update Acc;
        
            
        //Set Page
        PageReference pg = new PageReference('/apex/HSMPartnerThank?id=ABCDEFGHIJKL');
        Test.setCurrentPage(pg);
        ApexPages.CurrentPage().getparameters().put('accid', acc.id);
        HSMPartnerTermsControllerISV partApp = new HSMPartnerTermsControllerISV();
                
        partApp.Save();
        PartApp.cancel();
        ApexPages.Message[] msgs=ApexPages.getMessages();
        Boolean found=false;
        for (ApexPages.Message msg : msgs) {
           if (ApexPages.Severity.ERROR == msg.getSeverity()) {
           //if(message.getSeverity() == ApexPages.Severity.ERROR_MSG) {
              found=true;
           }
          }
         } 
        }    
 }