• Amit_Trivedi
  • NEWBIE
  • 10 Points
  • Member since 2015
  • Salesforce Developer
  • Technomile

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 7
    Questions
  • 12
    Replies
Hi all,
I need to implement opportunity team functionality for custom junction object 'A' which is lookup to user and custom object 'B'. how can i achieve this using visualforce and apex controller
Hi all,
While writing test class for controller i am geting error list index out of bounds though i have satisfied criteria. please help me to get full code coverage. here is my test class
@isTest
public with sharing class SResponseTest
{
    public static testMethod void surveyRes()
    {
         Account acc1 = TestDataGenerator.createAccount('Acme');
        insert acc1;
        Opportunity opp1 = TestDataGenerator.createOpportunity('TM',acc1,Date.today(),'Closed Won');
        insert opp1;
        Profile p = [SELECT Id FROM Profile WHERE Name='Standard User']; 
        User u = new User(Alias = 'standt', Email='A.trivedi@demoorg.com', 
        EmailEncodingKey='UTF-8', LastName='devindrop', LanguageLocaleKey='en_US', 
        LocaleSidKey='en_US', ProfileId = p.Id, 
        TimeZoneSidKey='America/Los_Angeles', UserName='KFCempress31@Nagpurorg.com');
        insert u;
        System.runAs(u)
        {
            System.debug('Current User: ' + UserInfo.getUserName());
            System.debug('Current Profile: ' + UserInfo.getProfileId()); 
        }
        Survey__c sur1 = TestDataGenerator.createSurvey('Test','For testing',Date.today(),opp1);
        insert sur1;
        Question__c que1 = TestDataGenerator.createQuestion('Who',false,'Test','Test','Test','Test','Test','Test','Test','Test','Test','Test','Test','Test','Radio',sur1);
        insert que1;
        Feedback__c fb1 = TestDataGenerator.createFedback('Ans',que1,'Test','Test','Test','Test','Test','Test','Test','Test','Test','Test',u);
        insert fb1;
        Test.startTest();
        ApexPages.CurrentPage().getparameters().put('sid', sur1.id);
        ApexPages.StandardController controller = new  ApexPages.StandardController(sur1);
        SResponse st = new SResponse(controller);
        SResponse st1 = new SResponse();
        st.index = 1;
       
       // st.queWraList[0].question.id = que1.id;
        st.queWraList[0].question.Question_Type__c ='Radio';
        st.queWraList[0].question.Is_Mandatory__c = true;
        st.queWraList[0].question.Option_1__c = 'test';
        st.queWraList[0].question.Option_2__c = 'test';
   
        st.recordCount =  st.queWraList.size();
        st.qw = st.queWraList[0];
        st.index =st.index+ 1;
        st.init();
        st.getNext();
        st.getPrevious();
        st.finish();
        st.saveFeedback();
        st.restrictMand();
        Test.stopTest();
    }
}
Hi,

I have arrayList and i want to display each element of list on different visualforce page.

For e.g accList[0] on one page and on click of next button accList[1] on another page and so on till the list get finish and also i want to implement previous button fuctionality.Like in below imageUser-added image
 
I want to insert contact using batch apex contact have account name if account does not exist create and insert it for that perticular contact.

Please help me to solve this problem.
public class SurveyCntrl
{
    public Id oppId{get;set;}
    public Opportunity opp{get;set;}
    public Survey__c survey{get;set;}
    public List<QuestionWrapper> queWraList{get;set;}
  // public List<QuestionWrapper> optWraList{get;set;}
    public List<String> optWraList{get;set;}
   public integer srN {get; set;}
    Public Question__c que{get;set;}
    public Integer rowIndex { get; set; } 
    public boolean showAddQuestion {get; set;}
    public boolean showAddQues {get; set;}
    public List<AddOptWrapper> listValueOfTextBox{get;set;}                                      
    public SurveyCntrl(ApexPages.StandardController controller)
    {
           optWraList = new List<String>();
          oppId =  ApexPages.CurrentPage().getParameters().get('id');
          opp = [ Select Id,Name,StageName From Opportunity Where Id=:oppId]; 
          queWraList= new List<QuestionWrapper>();
        //  optWraList = new List<QuestionWrapper>();
          que = new Question__c();
          survey = new Survey__c(); 
          showAddQuestion = true;
          showAddQues = true;
          AddQuestion();
          listvalueOfTextBox = new List<AddOptWrapper>();  
             
         
           
    }
     public PageReference addTextBox()   
     {  
        
             listvalueOfTextBox.add(new  AddOptWrapper('TextBox' + (listvalueOfTextBox.size() +  1)));
             System.debug('####'+listvalueOfTextBox);  
      
     
         return ApexPages.currentPage();  
    } 
       public PageReference removeTextBox()   
            {  
               
                        listvalueOfTextBox.remove(listvalueOfTextBox.size()-1);  
                  
             
                return ApexPages.currentPage();  
            }   
    
    public PageReference oppDetail()
    {
        PageReference pg = new Pagereference('/apex/OpportunityDetail?id='+oppId);
        return pg; 
    }
   /* public Pagereference AddOption()
    { 
          QuestionWrapper qWra = new QuestionWrapper();
      
            qWra.question = new question__c();
            
           qWra.sr = optWraList.size() + 3;
           qWra.sr =  qWra.optWraList.size() + 3;
         // optWraList.add(qWra);
           return null;
      
     }
    public Pagereference RemoveOption()
    {
        //Integer rowNum = Integer.valueOf(ApexPages.currentPage().getParameters().get('rowIndex'));
        //System.debug('######'+rowIndex );
        Integer i=0;
      // i = optWraList.size()-1;
    // optWraList.remove(i);
        return null;
        
    }*/
    public Pagereference save()
    {
        List<question__c> queList = new List<question__c>();
        if(survey.name != null && survey.name != '')
        {
        
           survey.Opportunity__c = OppId;
           insert Survey;
           for(QuestionWrapper queWra : queWraList){
               question__c qs = new question__c();
               if(queWra.question.Question__c != null && queWra.question.Question__c != '')
               {
                  
                       qs.Question__c = queWra.Question.Question__c;
                       qs.Option_1__c = queWra.question.Option_1__c;
                       qs.Option_2__c = queWra.question.Option_2__c;
                      
                       //qs.Option_3__c = queWra.optWraList.get(0);
                       qs.Option_4__c = queWra.question.Option_4__c;
                       qs.Option_5__c = queWra.question.Option_5__c;
                       qs.Option_6__c = queWra.question.Option_6__c;
                       qs.Option_7__c = queWra.question.Option_7__c;
                       qs.Option_8__c = queWra.question.Option_8__c;
                       qs.Option_9__c = queWra.question.Option_9__c;
                       qs.Option_10__c = queWra.question.Option_10__c; 
                       qs.Is_Mandatory__c = queWra.question.Is_Mandatory__c;
                         System.debug('@@@@@'+queWra.question.Is_Mandatory__c) ;  
                       qs.Question_Type__c = queWra.question.Question_Type__c;
                           System.debug('@@@@@'+queWra.question.Question_Type__c); 
                       qs.Survey__c = Survey.id;
                       queList.add(qs);   
                  
                 }
           } 
           if(queList.size() > 0){
               insert queList;
           }   
          }else{
           ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Please enter survey name'));  
        }
        return null;
    }
      
   public Pagereference SaveAndSend()
    {
        
         List<question__c> queList = new List<question__c>();
        if(survey.name  != '' && survey.name != null)
        {
           survey.Opportunity__c = OppId;
           insert Survey;
           for(QuestionWrapper queWra : queWraList){
               question__c qs = new question__c();
               if(queWra.question.Question__c != null && queWra.question.Question__c != ''){
                   qs.Question__c = queWra.Question.Question__c;
                   qs.Option_1__c = queWra.question.Option_1__c;
                   qs.Option_2__c = queWra.question.Option_2__c;
                  // qs.Option_3__c = queWra.optWraList.get(0);
                   qs.Option_4__c = queWra.question.Option_4__c;
                   qs.Option_5__c = queWra.question.Option_5__c;
                   qs.Option_6__c = queWra.question.Option_6__c;
                   qs.Option_7__c = queWra.question.Option_7__c;
                   qs.Option_8__c = queWra.question.Option_8__c;
                   qs.Option_9__c = queWra.question.Option_9__c;
                   qs.Option_10__c = queWra.question.Option_10__c; 
                   System.debug('@@@@@'+queWra.question.Is_Mandatory__c) ;                       
                   qs.Is_Mandatory__c = queWra.question.Is_Mandatory__c;
                   qs.Question_Type__c = queWra.question.Question_Type__c;
                    System.debug('@@@@@'+queWra.question.Question_Type__c);  
                   qs.Survey__c = Survey.id;
                   queList.add(qs);
               }
           } 
           if(queList.size() > 0)
           {
              
               insert queList;
           }  
          
          }
          else
          {
             ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Please enter survey name'));  
          }
       PageReference pg = new Pagereference('/apex/SurveySecondPage?SurveyId='+survey.Id);
            pg.setRedirect(true); 
            return pg;  
    }
     public Pagereference AddQuestion()
    {
        QuestionWrapper qw = new QuestionWrapper();
      
            qw.question = new question__c();
            qw.question.Question_Type__c='Radio';
            qw.srNo = queWraList.size() + 1;
           
            queWraList.add(qw);
        
      
        
        return null;
    }
     public Pagereference RemoveQuestion()
    {
     
       
        Integer i=0;
        i = queWraList.size() - 1;
        queWraList.remove(i);
        return null;
    }
    public class AddOptWrapper
    {  
        public string textBoxLabel{get;set;}  
        public string textBoxValue{get;set;}  
        public AddOptWrapper(String textBoxLabel)  
        {  
            this.textBoxLabel = textBoxLabel;  
        }  
    }  
    public class QuestionWrapper
    {
       public Question__c question {get;set;}
       public List<String> optWraList {get;set;}
       public integer srNo {get; set;}
       public integer sr {get; set;}
     
       public boolean showMand {get; set;}
       public QuestionWrapper()
       {
         
           showMand = false;
          
       }
    }
}


This is my test controller
@isTest
public class SurveyCntrlTest
{
    public static testMethod void surveyC()
    {
        Account acc1 = TestDataGenerator.createAccount('Acme');
        insert acc1;
        Opportunity opp1 = TestDataGenerator.createOpportunity('TM',acc1,Date.today(),'Closed Won');
        insert opp1;
        Profile p = [SELECT Id FROM Profile WHERE Name='Standard User']; 
        User u = new User(Alias = 'standt', Email='A.trivedi@demoorg.com', 
        EmailEncodingKey='UTF-8', LastName='devindrop', LanguageLocaleKey='en_US', 
        LocaleSidKey='en_US', ProfileId = p.Id, 
        TimeZoneSidKey='America/Los_Angeles', UserName='KFCempress31@Nagpurorg.com');
        insert u;
        System.runAs(u)
        {
            System.debug('Current User: ' + UserInfo.getUserName());
            System.debug('Current Profile: ' + UserInfo.getProfileId()); 
        }
        Survey__c sur1 = TestDataGenerator.createSurvey('Test','For testing',Date.today(),opp1,2);
        insert sur1;
        Question__c que1 = TestDataGenerator.createQuestion('Who',false,'Test','Test','Test','Test','Test','Test','Test','Test','Test','Test','Test',sur1);
        insert que1;
        Test.startTest();
       
        ApexPages.CurrentPage().getparameters().put('id', opp1.id);
        ApexPages.StandardController controller = new  ApexPages.StandardController(opp1);
        SurveyCntrl sc = new SurveyCntrl(controller);
        sc.addTextBox();
        sc.removeTextBox();
        sc.oppDetail();
       
        sc.save();
       
       
        sc.SaveAndSend();
        sc.AddQuestion();
        sc.RemoveQuestion();
    }
}

I am not getting coverage for save and save and send functionality
 
User-added image
In the above image i would like to add 3rd, 4th and so on upto 10 option on click of add option and implement reove link to remove perticular option(textarea) and if question type is descriptive i would like to hide all options
Hi all,
While writing test class for controller i am geting error list index out of bounds though i have satisfied criteria. please help me to get full code coverage. here is my test class
@isTest
public with sharing class SResponseTest
{
    public static testMethod void surveyRes()
    {
         Account acc1 = TestDataGenerator.createAccount('Acme');
        insert acc1;
        Opportunity opp1 = TestDataGenerator.createOpportunity('TM',acc1,Date.today(),'Closed Won');
        insert opp1;
        Profile p = [SELECT Id FROM Profile WHERE Name='Standard User']; 
        User u = new User(Alias = 'standt', Email='A.trivedi@demoorg.com', 
        EmailEncodingKey='UTF-8', LastName='devindrop', LanguageLocaleKey='en_US', 
        LocaleSidKey='en_US', ProfileId = p.Id, 
        TimeZoneSidKey='America/Los_Angeles', UserName='KFCempress31@Nagpurorg.com');
        insert u;
        System.runAs(u)
        {
            System.debug('Current User: ' + UserInfo.getUserName());
            System.debug('Current Profile: ' + UserInfo.getProfileId()); 
        }
        Survey__c sur1 = TestDataGenerator.createSurvey('Test','For testing',Date.today(),opp1);
        insert sur1;
        Question__c que1 = TestDataGenerator.createQuestion('Who',false,'Test','Test','Test','Test','Test','Test','Test','Test','Test','Test','Test','Test','Radio',sur1);
        insert que1;
        Feedback__c fb1 = TestDataGenerator.createFedback('Ans',que1,'Test','Test','Test','Test','Test','Test','Test','Test','Test','Test',u);
        insert fb1;
        Test.startTest();
        ApexPages.CurrentPage().getparameters().put('sid', sur1.id);
        ApexPages.StandardController controller = new  ApexPages.StandardController(sur1);
        SResponse st = new SResponse(controller);
        SResponse st1 = new SResponse();
        st.index = 1;
       
       // st.queWraList[0].question.id = que1.id;
        st.queWraList[0].question.Question_Type__c ='Radio';
        st.queWraList[0].question.Is_Mandatory__c = true;
        st.queWraList[0].question.Option_1__c = 'test';
        st.queWraList[0].question.Option_2__c = 'test';
   
        st.recordCount =  st.queWraList.size();
        st.qw = st.queWraList[0];
        st.index =st.index+ 1;
        st.init();
        st.getNext();
        st.getPrevious();
        st.finish();
        st.saveFeedback();
        st.restrictMand();
        Test.stopTest();
    }
}
Hi,

I have arrayList and i want to display each element of list on different visualforce page.

For e.g accList[0] on one page and on click of next button accList[1] on another page and so on till the list get finish and also i want to implement previous button fuctionality.Like in below imageUser-added image
 
public class SurveyCntrl
{
    public Id oppId{get;set;}
    public Opportunity opp{get;set;}
    public Survey__c survey{get;set;}
    public List<QuestionWrapper> queWraList{get;set;}
  // public List<QuestionWrapper> optWraList{get;set;}
    public List<String> optWraList{get;set;}
   public integer srN {get; set;}
    Public Question__c que{get;set;}
    public Integer rowIndex { get; set; } 
    public boolean showAddQuestion {get; set;}
    public boolean showAddQues {get; set;}
    public List<AddOptWrapper> listValueOfTextBox{get;set;}                                      
    public SurveyCntrl(ApexPages.StandardController controller)
    {
           optWraList = new List<String>();
          oppId =  ApexPages.CurrentPage().getParameters().get('id');
          opp = [ Select Id,Name,StageName From Opportunity Where Id=:oppId]; 
          queWraList= new List<QuestionWrapper>();
        //  optWraList = new List<QuestionWrapper>();
          que = new Question__c();
          survey = new Survey__c(); 
          showAddQuestion = true;
          showAddQues = true;
          AddQuestion();
          listvalueOfTextBox = new List<AddOptWrapper>();  
             
         
           
    }
     public PageReference addTextBox()   
     {  
        
             listvalueOfTextBox.add(new  AddOptWrapper('TextBox' + (listvalueOfTextBox.size() +  1)));
             System.debug('####'+listvalueOfTextBox);  
      
     
         return ApexPages.currentPage();  
    } 
       public PageReference removeTextBox()   
            {  
               
                        listvalueOfTextBox.remove(listvalueOfTextBox.size()-1);  
                  
             
                return ApexPages.currentPage();  
            }   
    
    public PageReference oppDetail()
    {
        PageReference pg = new Pagereference('/apex/OpportunityDetail?id='+oppId);
        return pg; 
    }
   /* public Pagereference AddOption()
    { 
          QuestionWrapper qWra = new QuestionWrapper();
      
            qWra.question = new question__c();
            
           qWra.sr = optWraList.size() + 3;
           qWra.sr =  qWra.optWraList.size() + 3;
         // optWraList.add(qWra);
           return null;
      
     }
    public Pagereference RemoveOption()
    {
        //Integer rowNum = Integer.valueOf(ApexPages.currentPage().getParameters().get('rowIndex'));
        //System.debug('######'+rowIndex );
        Integer i=0;
      // i = optWraList.size()-1;
    // optWraList.remove(i);
        return null;
        
    }*/
    public Pagereference save()
    {
        List<question__c> queList = new List<question__c>();
        if(survey.name != null && survey.name != '')
        {
        
           survey.Opportunity__c = OppId;
           insert Survey;
           for(QuestionWrapper queWra : queWraList){
               question__c qs = new question__c();
               if(queWra.question.Question__c != null && queWra.question.Question__c != '')
               {
                  
                       qs.Question__c = queWra.Question.Question__c;
                       qs.Option_1__c = queWra.question.Option_1__c;
                       qs.Option_2__c = queWra.question.Option_2__c;
                      
                       //qs.Option_3__c = queWra.optWraList.get(0);
                       qs.Option_4__c = queWra.question.Option_4__c;
                       qs.Option_5__c = queWra.question.Option_5__c;
                       qs.Option_6__c = queWra.question.Option_6__c;
                       qs.Option_7__c = queWra.question.Option_7__c;
                       qs.Option_8__c = queWra.question.Option_8__c;
                       qs.Option_9__c = queWra.question.Option_9__c;
                       qs.Option_10__c = queWra.question.Option_10__c; 
                       qs.Is_Mandatory__c = queWra.question.Is_Mandatory__c;
                         System.debug('@@@@@'+queWra.question.Is_Mandatory__c) ;  
                       qs.Question_Type__c = queWra.question.Question_Type__c;
                           System.debug('@@@@@'+queWra.question.Question_Type__c); 
                       qs.Survey__c = Survey.id;
                       queList.add(qs);   
                  
                 }
           } 
           if(queList.size() > 0){
               insert queList;
           }   
          }else{
           ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Please enter survey name'));  
        }
        return null;
    }
      
   public Pagereference SaveAndSend()
    {
        
         List<question__c> queList = new List<question__c>();
        if(survey.name  != '' && survey.name != null)
        {
           survey.Opportunity__c = OppId;
           insert Survey;
           for(QuestionWrapper queWra : queWraList){
               question__c qs = new question__c();
               if(queWra.question.Question__c != null && queWra.question.Question__c != ''){
                   qs.Question__c = queWra.Question.Question__c;
                   qs.Option_1__c = queWra.question.Option_1__c;
                   qs.Option_2__c = queWra.question.Option_2__c;
                  // qs.Option_3__c = queWra.optWraList.get(0);
                   qs.Option_4__c = queWra.question.Option_4__c;
                   qs.Option_5__c = queWra.question.Option_5__c;
                   qs.Option_6__c = queWra.question.Option_6__c;
                   qs.Option_7__c = queWra.question.Option_7__c;
                   qs.Option_8__c = queWra.question.Option_8__c;
                   qs.Option_9__c = queWra.question.Option_9__c;
                   qs.Option_10__c = queWra.question.Option_10__c; 
                   System.debug('@@@@@'+queWra.question.Is_Mandatory__c) ;                       
                   qs.Is_Mandatory__c = queWra.question.Is_Mandatory__c;
                   qs.Question_Type__c = queWra.question.Question_Type__c;
                    System.debug('@@@@@'+queWra.question.Question_Type__c);  
                   qs.Survey__c = Survey.id;
                   queList.add(qs);
               }
           } 
           if(queList.size() > 0)
           {
              
               insert queList;
           }  
          
          }
          else
          {
             ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Please enter survey name'));  
          }
       PageReference pg = new Pagereference('/apex/SurveySecondPage?SurveyId='+survey.Id);
            pg.setRedirect(true); 
            return pg;  
    }
     public Pagereference AddQuestion()
    {
        QuestionWrapper qw = new QuestionWrapper();
      
            qw.question = new question__c();
            qw.question.Question_Type__c='Radio';
            qw.srNo = queWraList.size() + 1;
           
            queWraList.add(qw);
        
      
        
        return null;
    }
     public Pagereference RemoveQuestion()
    {
     
       
        Integer i=0;
        i = queWraList.size() - 1;
        queWraList.remove(i);
        return null;
    }
    public class AddOptWrapper
    {  
        public string textBoxLabel{get;set;}  
        public string textBoxValue{get;set;}  
        public AddOptWrapper(String textBoxLabel)  
        {  
            this.textBoxLabel = textBoxLabel;  
        }  
    }  
    public class QuestionWrapper
    {
       public Question__c question {get;set;}
       public List<String> optWraList {get;set;}
       public integer srNo {get; set;}
       public integer sr {get; set;}
     
       public boolean showMand {get; set;}
       public QuestionWrapper()
       {
         
           showMand = false;
          
       }
    }
}


This is my test controller
@isTest
public class SurveyCntrlTest
{
    public static testMethod void surveyC()
    {
        Account acc1 = TestDataGenerator.createAccount('Acme');
        insert acc1;
        Opportunity opp1 = TestDataGenerator.createOpportunity('TM',acc1,Date.today(),'Closed Won');
        insert opp1;
        Profile p = [SELECT Id FROM Profile WHERE Name='Standard User']; 
        User u = new User(Alias = 'standt', Email='A.trivedi@demoorg.com', 
        EmailEncodingKey='UTF-8', LastName='devindrop', LanguageLocaleKey='en_US', 
        LocaleSidKey='en_US', ProfileId = p.Id, 
        TimeZoneSidKey='America/Los_Angeles', UserName='KFCempress31@Nagpurorg.com');
        insert u;
        System.runAs(u)
        {
            System.debug('Current User: ' + UserInfo.getUserName());
            System.debug('Current Profile: ' + UserInfo.getProfileId()); 
        }
        Survey__c sur1 = TestDataGenerator.createSurvey('Test','For testing',Date.today(),opp1,2);
        insert sur1;
        Question__c que1 = TestDataGenerator.createQuestion('Who',false,'Test','Test','Test','Test','Test','Test','Test','Test','Test','Test','Test',sur1);
        insert que1;
        Test.startTest();
       
        ApexPages.CurrentPage().getparameters().put('id', opp1.id);
        ApexPages.StandardController controller = new  ApexPages.StandardController(opp1);
        SurveyCntrl sc = new SurveyCntrl(controller);
        sc.addTextBox();
        sc.removeTextBox();
        sc.oppDetail();
       
        sc.save();
       
       
        sc.SaveAndSend();
        sc.AddQuestion();
        sc.RemoveQuestion();
    }
}

I am not getting coverage for save and save and send functionality
 
User-added image
In the above image i would like to add 3rd, 4th and so on upto 10 option on click of add option and implement reove link to remove perticular option(textarea) and if question type is descriptive i would like to hide all options