You need to sign in to do that
Don't have an account?
Vidhyasagaran Muralidharan
At present code coverage is 66%.Kindly help me out to increae my code coverage. thanks
problem in code coverage
public with sharing class empdepExtensionNew { public Contact[] Availabledeps {get;set;} public dep__c[] shoppingCart{get; set;} //public dep__c[] total{get; set;} public emp__c theemp {get; set;} public String tonSelect{get; set;} public String toUnselect{get; set;} public String searchString{get; set;} //public String value{get; set;} public Boolean AccountRT{get; set;} public Boolean ContactRT{get; set;} public Boolean LeadRT{get; set;} public Boolean OpportunityRT{get; set;} public String UserID {get; set;} private dep__c[] forDeletion = new dep__c[]{}; private ApexPages.StandardController controller; //Constructor public empdepExtensionNew (ApexPages.StandardController controller) { this.controller= controller; if(controller.getrecord() == null) system.debug(controller.getrecord().id); //UserID = UserInfo.getname(); //emping Custom Setting object for Recordtypes in emp object Record_Type_Name__c Accrt = Record_Type_Name__c.getValues('AccRecordTypeID'); Record_Type_Name__c Conrt = Record_Type_Name__c.getValues('ConRecordTypeID'); Record_Type_Name__c Leart = Record_Type_Name__c.getValues('LeaRecordTypeID'); Record_Type_Name__c Opprt = Record_Type_Name__c.getValues('OppRecordTypeID'); //Condition to check the record type for emp object if(ApexPages.currentPage().getParameters().get('RecordType') == Accrt.Record_Type__c){ AccountRT = TRUE; } if(ApexPages.currentPage().getParameters().get('RecordType') == Conrt.Record_Type__c){ ContactRT = TRUE; } if(ApexPages.currentPage().getParameters().get('RecordType') == Leart.Record_Type__c){ LeadRT = TRUE; } if(ApexPages.currentPage().getParameters().get('RecordType') == Opprt.Record_Type__c){ OpportunityRT = TRUE; } { //String value = ApexPages.currentPage().getParameters().get('Id'); //total =[Select id,name,empId__c,Contact_Id__c,emp_Date__c,dep__c.Contact_Id__r.Name from dep__c ]; shoppingCart = [Select id,name,empId__c,Contact_Id__c,emp_Date__c,dep__c.Contact_Id__r.Name from dep__c where id =: tonSelect]; } updateAvailableList(); } public void updateAvailableList() { UserID = UserInfo.getUserId(); String qString = 'select id, Name, Title, Contact.MailingCity,Contact.MailingState,Contact.Account.Name from Contact where User_Id__c not in (select ID from User where id =: UserID )' ; system.debug(qString); if(searchString!=null) { qString+= ' and ( Contact.Name like \'%' + searchString + '%\' or Contact.RACFID__c like \'%' + searchString + '%\' or Contact.Officer_Code__c like \'%' + searchString + '%\') '; } Set<Id> selectedEntries = new Set<Id>(); if(tonSelect!=null) for(dep__c d : shoppingCart){ selectedEntries.add(d.Contact_Id__c); } if(selectedEntries.size()>0){ String tempFilter = ' and id not in ('; for(id i : selectedEntries){ tempFilter+= '\'' + (String)i + '\','; } String extraFilter = tempFilter.substring(0,tempFilter.length()-1); extraFilter+= ')'; qString+= extraFilter; } qString+= ' order by Name'; qString+= ' limit 12'; system.debug('qString:' +qString ); Availabledeps = database.query(qString); system.debug(Availabledeps); } public void addToShoppingCart() // This function runs when a user hits "select" button next to a dep { for(Contact part : Availabledeps) { if((String)part.id==tonSelect) { shoppingCart.add(new dep__c (Contact_Id__c =part.id)); system.debug(shoppingCart); system.debug(shoppingCart.size()); break; } } updateAvailableList(); } public PageReference removeFromShoppingCart(){ // This function runs when a user hits "remove" on "Selected dep" section Integer count = 0; for(dep__c del : shoppingCart){ if((String)del.Contact_Id__c==toUnselect){ if(del.Id!=null) forDeletion.add(del); shoppingCart.remove(count); break; } count++; } updateAvailableList(); return null; } // This function runs when user hits save button public PageReference onSave(){ try{ PageReference pageRef = controller.save(); system.debug(controller.getrecord().id); if(shoppingCart.size()>0) for (dep__c partmember : shoppingCart ){ partmember.empId__c=controller.getrecord().id; System.debug(partmember.empId__c); } System.debug('size' +shoppingCart.size()); insert(shoppingCart); } catch(Exception e){ ApexPages.addMessages(e); return null; } System.debug('completed'); // After save return the user to the emp return new PageReference('/' + controller.getrecord().id); } }Test class:
@istest(seealldata=true) Public class Test_empdepExtensionNew { Public static testmethod void empdepExtensionNew_test() { Record_Type_Name__c opprt =[select ID,name,Record_Type__c from Record_Type_Name__c where name ='OppRecordTypeID']; PageReference nextpage = new PageReference('/apex/empCustomNew?id='+opprt.Id); nextpage.setredirect(true); emp__c c = new emp__c(Subject__c = 'TestdepExtension',emp_Type__c = 'BD Monthly Update',emp_Date__c = system.today(), Status__c = 'DONE',OpportunityId__c='006q0000004QWR7',RecordtypeId=opprt.Record_Type__c); insert c; empdepExtensionNew e = new empdepExtensionNew(new ApexPages.StandardController(c)); contact con = new contact(LastName='test',Contact_Type__c='Business contact',AccountId='001q000000BDufL'); insert con; e.updateAvailableList(); e.addToShoppingCart(); e.removeFromShoppingCart(); e.onSave(); dep__c p1 = new dep__c(empId__c=c.id,Contact_Id__c='003q000000CrgjD'); dep__c p2 = new dep__c(empId__c=c.id,Contact_Id__c='003q000000CvPct'); List<dep__c> part = new List<dep__c>(); part.add(p1); part.add(p2); insert part; //System.assertEquals(3, [select count() from dep__c where empId__c=:c.id]); } }
At present code coverage is 66%.Kindly help me out to increae my code coverage. thanks
1. In the method updateAvailableList , we are getting the search string via the properties and querying for the records
How to implement this in test class as we didnt pass any parameter to that method ?
2. how to write test class for custom settings listed in the constructor method empdepExtensionNew ?
The test class you have written is totally wrong. Hardcoded Ids should not be used. Migration to other orgs will be failed.
Regards,
Swayam Arora