You need to sign in to do that
Don't have an account?
dharmik thummar
Visualforce Page:
How to write testclass for below mentioned class.
public class AddDuplicateRuleEntryController { public list<Duplicate_Rule_Entries__c> listDuplicateRule{ get; set; } public String selectedVal{get;set;} public map <String,fieldwrapper> fieldmap{get;set;} public list<selectoption> fieldListOption {get;set;} public Duplicate_Rule__c rule{get;set;} public string recordid; public string objectName; public AddDuplicateRuleEntryController() { fieldmap = new map <String,fieldwrapper>(); rule = new Duplicate_Rule__c (); listDuplicateRule = new list<Duplicate_Rule_Entries__c>(); fieldListOption = new list<selectoption> (); recordid= ApexPages.currentPage().getParameters().get('id'); rule = [select Active__c, Object__c,Duplicate_Rule_Entry_Criteria__c,Name, On_Insert__c, On_Update__c from Duplicate_Rule__c where id =: recordid ]; listDuplicateRule = [SELECT Id, IsDeleted, Name, Entry_Number__c, Field_Name__c, Field_API_Name__c, Field_Data_Type__c, Match__c, Duplicate_Rule__c FROM Duplicate_Rule_Entries__c WHERE Duplicate_Rule__c =: recordid]; if(listDuplicateRule.size() ==0) { listDuplicateRule.add(new Duplicate_Rule_Entries__c(Duplicate_Rule__c=recordid,Entry_Number__c=1)); } if(rule != null) { objectName = rule.Object__c; } fetchObjectField(); system.debug(fieldmap); } Public void addDuplicateRuleEntryRow() { Duplicate_Rule_Entries__c acc = new Duplicate_Rule_Entries__c(Duplicate_Rule__c=recordid); acc.Entry_Number__c = listDuplicateRule.size() + 1; listDuplicateRule.add(acc); } public PageReference saveRule() { system.debug(fieldmap); system.debug(listDuplicateRule); list<Duplicate_Rule_Entries__c> duplicateRuleEntrylisttoInsert = new list<Duplicate_Rule_Entries__c> (); for(Duplicate_Rule_Entries__c dc : listDuplicateRule) { system.debug(dc.Field_API_Name__c); if(dc.Field_API_Name__c != '----None----') { dc.Field_Data_Type__c= fieldmap.get(dc.Field_API_Name__c).DataType; dc.Field_Name__c= fieldmap.get(dc.Field_API_Name__c).FieldName; duplicateRuleEntrylisttoInsert.add(dc); } } upsert duplicateRuleEntrylisttoInsert; update rule; PageReference reRend = new PageReference('/'+recordid); reRend.setRedirect(True); return reRend; } public class fieldwrapper { public String FieldName {get; set;} public string FieldAPI {get; set;} public string DataType {get; set;} //This is the contructor method. When we create a new cContact object we pass a Contact that is set to the con property. We also set the selected value to false public fieldwrapper(String FieldName, string FieldAPI, string DataType) { this.FieldName = FieldName; this.FieldAPI = FieldAPI; this.DataType = DataType; } } public void fetchObjectField(){ try { fieldListOption.add(new selectoption('----None----','----None----')); if(objectName != null) { for(SObjectField sField: Schema.getGlobalDescribe().get(objectName).getDescribe().fields.getMap().values()) { DescribeFieldResult res = sField.getDescribe(); fieldmap.put(res.getName(),new fieldwrapper(res.getLabel(), res.getName(),res.getType().name())); fieldListOption.add(new selectoption(res.getName(),res.getLabel())); System.debug(fieldmap); } } } catch(Exception ex) { System.debug(ex.getMessage()); System.debug(ex.getStackTraceString()); } } public PageReference redirect() { PageReference reRend = new PageReference('/'+recordid); reRend.setRedirect(True); return reRend; } }
Visualforce Page:
<apex:page Controller="AddDuplicateRuleEntryController"> <script type="text/javascript"> window.onload = function(){ var elems = document.querySelectorAll('[id$="setRequired"]'); for (var i = 0; i < elems.length; i++){ //elems[i].required = true; } function cancelJS () { alert (1); cancelAF(); } } </script> <apex:form > <apex:pageMessages /> <apex:pageBlock > <apex:pageBlockTable value="{!listDuplicateRule}" var="ldr"> <apex:column headerValue="Field" > <apex:selectList size="1" value="{!ldr.Field_API_Name__c}" id="setRequired" > <apex:selectOptions value="{!fieldListOption}"/> </apex:selectList> </apex:column> <apex:column headerValue="Match"> <apex:selectList required="True" size="1" value="{!ldr.Match__c}" id="setRequiredMatch"> <apex:selectOption itemValue="Exact" itemLabel="Exact"></apex:selectOption> </apex:selectList> </apex:column> </apex:pageBlockTable> <apex:outputText value="Duplicate rule Criteria: "/> <apex:inputField value="{!rule.Duplicate_Rule_Entry_Criteria__c}"/> <apex:pageBlockButtons > <apex:commandButton value="Add Rules Row" action="{!addDuplicateRuleEntryRow}"/> <apex:commandButton value="Save Rules" action="{!saveRule}" /> <apex:commandButton value="Cancel" action="{!redirect}" immediate="true" /> </apex:pageBlockButtons> </apex:pageBlock> </apex:form> </apex:page>
Raj Vakati
Try this code
Raj Vakati
Try this