-
ChatterFeed
-
0Best Answers
-
0Likes Received
-
0Likes Given
-
1Questions
-
0Replies
Test Class for this Apex Class ..
Hi All,
I am new to testclasses i dont know how to write test classes Properly ...but i am tried but i am geting 63% code coverage only.. but i need atleast 90% can any one help this please ??
Here is my class
public with sharing class CallController{ public Boolean callDetailsFlag{set;get;} public Boolean editFlag{set;get;} public Account account{set;get;} public CallDetail__c callDetail{set;get;} public String recordTypeName{set;get;} public String action{set;get;} public Boolean planEditFlag{set;get;} public List<WrapperClass> productList{get;set;} private ApexPages.StandardController stdController; private Call__c call; private String retURL; private String accId; private String callId; private String recordTypeId; private String oldProductsChoosen; public String selectedProduct{set;get;} public CallController(ApexPages.StandardController stdController){ system.debug('--- CallController :: CallController() ---'); this.call = (Call__c)stdController.getRecord(); accId = ApexPages.currentPage().getParameters().get('accID');//from Account Detail Page retURL = ApexPages.currentPage().getParameters().get('retURL');//from overriden standard buttons callId = ApexPages.currentPage().getParameters().get('callId');// from Capture Call Details button String details = ApexPages.currentPage().getParameters().get('details');// from Capture Call Details button recordTypeId = ApexPages.currentPage().getParameters().get('RecordType');// from standard Record Type selection page if(accId != null) account = [select Id, Name from Account where ID=:accId]; if(this.call != null && this.call.Id != null){ callId = this.call.Id; action = 'Update'; }else action = 'Insert'; if(callId != null){ call = [select Id, Name, Activity_Type__c, Attendee1__c, Attendee2__c, Attendee3__c, RecordTypeId, Call_Activity__c, Call_Date__c, Start_Time__c, End_Time__c, Call_Feedback__c, Competitor_Product_Feedback__c,Competitor_Products__c, Joint_Field_Work__c, Next_Call_Objective__c, Next_Call_Objective_Date__c, No_of_Set__c, Number_of_Attendees__c, Topic__c, Type_of_Procedure__c, Workshop_Type__c, Products_Choosen__c, Account__c,Remarks__c from Call__c where Id=:callId]; recordTypeId = call.RecordTypeId; oldProductsChoosen = call.Products_Choosen__c; if(call.Products_Choosen__c != null){ if(productList == null) productList = new List<WrapperClass>(); for(String s : call.Products_Choosen__c.split(';')){ WrapperClass wrapper = new WrapperClass(s,false); productList.add(wrapper); } } } if(details != null && details=='1'){ callDetailsFlag = true; callDetail = getCallDetail(); } else callDetailsFlag = false; if(recordTypeId != null){ RecordType callRecordType = [SELECT Id, Name, DeveloperName, SobjectType, IsActive FROM RecordType where SobjectType='Call__c' and IsActive=true and Id= :recordTypeId limit 1]; if(callRecordType != null){ recordTypeName = callRecordType.Name; } } DateTime callDate = null; if(call != null && call.Start_Time__c != null) callDate = call.Start_Time__c; if(callDate != null){ Long difference = callDate.addDays(5).getTime()-system.now().getTime(); if(difference<=0){ editFlag = false; ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.Error, Label.Call_Edit_Error)); } else editFlag = true; }else{ editFlag = true; planEditFlag = true; } if(editFlag && !callDetailsFlag && callDate != null){ Long difference1 = callDate.getTime()-system.now().getTime(); if(difference1<=0){ planEditFlag = false; ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.Error, Label.Call_Plan_Edit_Error)); } else planEditFlag = true; } if(productList == null) productList = new List<WrapperClass>(); system.debug('--- CallController :: CallController() :: editFlag --- '+editFlag); system.debug('--- CallController :: CallController() :: callDetailsFlag --- '+callDetailsFlag); system.debug('--- CallController :: CallController() :: recordTypeName --- '+recordTypeName); system.debug('--- CallController :: CallController() :: action --- '+action); system.debug('--- CallController :: CallController() :: planEditFlag --- '+planEditFlag); } public List<SelectOption> getUserProducts(){ system.debug('--- CallController :: getUserProducts() ---'); List<MyProduct__Share> userProdShareList = [select Id, Parent.Id, Parent.Name, Parent.Active__c from MyProduct__Share where UserOrGroupId=:UserInfo.getUserId() and Parent.Active__c=true]; List<SelectOption> options = new List<SelectOption>(); options.add(new SelectOption('','--Select--')); for(MyProduct__Share tempShare : userProdShareList){ options.add(new SelectOption(tempShare.Parent.Name,tempShare.Parent.Name)); } return options; } public PageReference saveDetails(){ system.debug('--- CallController :: saveDetails() ---'); if(call != null){ if(recordTypeId != null) call.RecordTypeId = recordTypeId; else{ RecordType callRecordType = [SELECT Id, Name, DeveloperName, SobjectType, IsActive FROM RecordType where SobjectType='Call__c' and IsActive=true and Name= :call.Activity_Type__c limit 1]; call.RecordTypeId = callRecordType.Id; } String productsChoosen = '';//call.Products_Choosen__c; for(Integer i=0; i<productList.size(); i++){ if(i != (productList.size()-1)) productsChoosen = productsChoosen+productList.get(i).product+';'; else productsChoosen = productsChoosen+productList.get(i).product; } call.Products_Choosen__c = productsChoosen; insert call; system.debug('--- CallController :: saveDetails() :: call.Id---'+call.Id); if(call.Id != null){ if(productsChoosen != null){ //productsChoosen = productsChoosen.trim(); //productsChoosen = productsChoosen.replaceAll('/\r\n|\r|\n/g',';'); //productsChoosen = productsChoosen.replaceAll('\n',';'); system.debug('--- tempList ---'+productsChoosen); //List<String> tempList = productsChoosen.split(';;'); List<String> tempList = productsChoosen.split(';'); //system.debug('--- tempList ---'+tempList); Map<String,ID> productMap = new Map<String,ID>(); List<CallDetail__c> callDetailList = new List<CallDetail__c>(); for(MyProduct__c tempProduct : [select Id, Name, Active__c from MyProduct__c where Name in :tempList]){ if(tempProduct.Active__c) productMap.put(tempProduct.Name,tempProduct.Id); } system.debug('--- productMap ---'+productMap); if(productMap != null && productMap.size()>0){ for(String s : tempList){ if(productMap.get(s) != null){ CallDetail__c callDetail = new CallDetail__c(); callDetail.Call__c = call.Id; callDetail.Product__c = productMap.get(s); callDetailList.add(callDetail); } } } if(callDetailList != null && callDetailList.size()>0) insert callDetailList; } PageReference pageRef = new PageReference('/'+call.Id); return pageRef; } } return null; } public PageReference updateDetails(){ system.debug('--- CallController :: updateDetails() ---'); if(call != null){ String productsChoosen = '';//call.Products_Choosen__c; for(Integer i=0; i<productList.size(); i++){ if(i != (productList.size()-1)) productsChoosen = productsChoosen+productList.get(i).product+';'; else productsChoosen = productsChoosen+productList.get(i).product; } call.Products_Choosen__c = productsChoosen; update call; system.debug('--- CallController :: updateDetails() :: oldProductsChoosen ---'+oldProductsChoosen); system.debug('--- CallController :: updateDetails() :: Products_Choosen__c ---'+call.Products_Choosen__c); system.debug('--- CallController :: updateDetails() ---'); if(oldProductsChoosen == call.Products_Choosen__c){ system.debug('--- CallController :: updateDetails :: No Modifications to Products ---'); }else{ system.debug('--- CallController :: updateDetails :: Products Modified ---'); // delete all previous product-call association records List<CallDetail__c> toDeleteList = [select Id, Name from CallDetail__c where Call__c= :call.Id]; if(toDeleteList != null && toDeleteList.size()>0) delete toDeleteList; // Add modified product-call association records if(productsChoosen != null){ //productsChoosen = productsChoosen.trim(); //productsChoosen = productsChoosen.replaceAll('/\r\n|\r|\n/g',';'); //productsChoosen = productsChoosen.replaceAll('\n',';'); //system.debug('--- tempList ---'+productsChoosen); //List<String> tempList = productsChoosen.split(';;'); List<String> tempList = productsChoosen.split(';'); system.debug('--- tempList ---'+tempList); Map<String,ID> productMap = new Map<String,ID>(); List<CallDetail__c> callDetailList = new List<CallDetail__c>(); for(MyProduct__c tempProduct : [select Id, Name, Active__c from MyProduct__c where Name in :tempList]){ if(tempProduct.Active__c) productMap.put(tempProduct.Name,tempProduct.Id); } if(productMap != null && productMap.size()>0){ for(String s : tempList){ if(productMap.get(s) != null){ CallDetail__c callDetail = new CallDetail__c(); callDetail.Call__c = call.Id; callDetail.Product__c = productMap.get(s); callDetailList.add(callDetail); } } } if(callDetailList != null && callDetailList.size()>0) insert callDetailList; } } PageReference pageRef = new PageReference('/'+call.Id); return pageRef; } return null; } public PageReference submitDetails(){ system.debug('--- CallController :: submitDetails() ---'); update call; return cancel(); } public PageReference cancel(){ system.debug('--- CallController :: cancel() ---'); if(accId != null){ PageReference pageRef = new PageReference('/'+accId); system.debug('--- CallController :: cancel() :: pageRef ---'+pageRef); return pageRef; } if(retURL != null){ PageReference pageRef = new PageReference(retURL); system.debug('--- CallController :: cancel() :: pageRef ---'+pageRef); return pageRef; } if(callId!= null){ PageReference pageRef = new PageReference('/'+callId); system.debug('--- CallController :: cancel() :: pageRef ---'+pageRef); return pageRef; } return null; } public void getCallType(){ String test = ApexPages.currentPage().getParameters().get('test'); system.debug('--- test ---'+test); recordTypeName = test; } public void setCallType(){ recordTypeName = call.Activity_Type__c; } public PageReference addProduct(){ system.debug('--- selectedProduct ---'+selectedProduct); //selectedProduct = 'GUT PLAIN SUTURE 18IN(45CM) 5-0 UND'; if(productList == null) productList = new List<WrapperClass>(); Boolean isAlreadyAdded = false; for(WrapperClass wrp: productList) { if(selectedProduct.equalsignorecase(wrp.product)) { isAlreadyAdded = true; } } if(selectedProduct != null && isAlreadyAdded != true ) { WrapperClass wrapper = new WrapperClass(selectedProduct,false); productList.add(wrapper); } /*if(selectedProduct != null) { WrapperClass wrapper = new WrapperClass(selectedProduct,false); productList.add(wrapper); }*/ system.debug('---- productList size ----'+productList.size()); return null; } public PageReference removeProduct(){ if(productList != null && productList.size()>0){ system.debug('---- productList size ----'+productList.size()); List<WrapperClass> tempList = new List<WrapperClass>(); for(WrapperClass temp : productList){ system.debug('---- checkbox selected product name ----'+temp); if(temp.selected == false){ system.debug('---- checkbox selected product name ----'+temp.product); tempList.add(temp); } } productList = tempList; } return null; } public void setCall(Call__c call){ this.call = call; } public Call__c getCall(){ if(this.call == null) call = new Call__c(); if(account != null ) call.Account__c = account.Id; return call; } public void setCallDetail(CallDetail__c callDetail){ this.callDetail = callDetail; } public CallDetail__c getCallDetail(){ if(this.callDetail == null){ List<CallDetail__c> callDetailList = new List<CallDetail__c>(); if(this.call != null){ callDetailList = [select Id, Name, Call_Feedback__c from CallDetail__c where Call__c=:this.call.Id]; if(callDetailList.size()>0) callDetail = callDetailList.get(0); } if(callDetail == null) callDetail = new CallDetail__c(); } return callDetail; } public class WrapperClass{ public String product {get; set;} public Boolean selected {get; set;} public WrapperClass(String p,Boolean s) { product = p; selected = s; } } }
- TanmoyBarik
- November 23, 2012
- Like
- 0