I had written test class for below apex class, but still it's showing 66% coverage. in the apex class public String[] LeadItems { method get method is covered, but set is not covered? How to test that method in apex test class?
Apex Class
public with sharing class CRMsettingcontroller{
private ApexPages.StandardController sc;
public CRM_settings__c Objcrm{get; set;}
public CRM_settings__c crms{get;set;}
public Lead leadsrce{get;set;}
public List<Lead> leadtemp = new List<Lead>();
public Summary[] Campaigns { get; set; }
public Summary[] Leads { get; set; }
public Activity__c musact;
public boolean level1{get;set;}
public id crmid;
public boolean stdObjectLead {get;set;}
public boolean stdObjectCampaign {get;set;}
public CRMsettingcontroller() {
This.sc = sc;
Objcrm= new CRM_settings__c ();
crms= new musqot__CRM_settings__c();
AggregateResult[] results = [SELECT Business_region__c name
FROM CRM_data__c group by Business_region__c limit:100];
Leads = new List<Summary>();
for (AggregateResult ar : results) {
Leads.add(new Summary(ar));
}
AggregateResult[] results2 = [SELECT Business_area__c name
FROM CRM_data__c group by Business_Area__c limit:100];
Campaigns = new List<Summary>()
;
for (AggregateResult ar : results2) {
Campaigns.add(new Summary(ar));
}
musact=[SELECT id, Use_milestones__c, Use_Performance_CRM__c
FROM Activity__c limit 1]; // musqot__Activity__c == API name for musqot settings
stdObjectLead=False;
stdObjectCampaign=False;
level1=false;
if(musact.Use_Performance_CRM__c=='Salesforce (in same org)'){
level1=true;
//To check if Lead and Campaign object excist
for ( Schema.SObjectType typ : Schema.getGlobalDescribe().values()){
String sobjSF = String.valueOf(typ);
if (sobjSF.equals('Lead')){
stdObjectLead= true;
}
if (sobjSF.equals('Campaign')){
//Campaigns();
stdObjectCampaign= true;
}
}
}
}
// wrapper class to hold aggregate data
public class Summary {
public String Name { get; private set; }
public Summary(AggregateResult ar) {
Name = (String) ar.get('name');
}
}
public Pagereference insertcrms() {
if (CRM_settings__c.sObjectType.getDescribe().isCreateable())
if(crms.Bar_color__c<>null){
crms.Bar_color__c = crms.Bar_color__c.replaceAll(' ','');
}
{
if(crms.CRM_performance_type__c!='Performance, General'){
crms.Selector__c='';
}
insert crms;
}
String tabId = System.currentPageReference().getParameters().get('tabId');
string pageRef='/apex/MusqotAdminPage?sfdc.tabName='+tabId+'&tab='+EncodingUtil.urlEncode('mpsett','UTF-8');
Pagereference pg=new Pagereference (pageRef);
return pg;
}
Public Pagereference cancel()
{
String tabId = System.currentPageReference().getParameters().get('tabId');
string pageRef='/apex/MusqotAdminPage?sfdc.tabName='+tabId+'&tab='+EncodingUtil.urlEncode('mpsett','UTF-8');
Pagereference pg=new Pagereference (pageRef);
return pg;
}
public List<SelectOption> getMyOptions() {
List<SelectOption> options = new List<SelectOption>();
Schema.DescribeFieldResult field = CRM_Settings__c.CRM_performance_type__c.getDescribe();
for (Schema.PicklistEntry f : field.getPicklistValues()){
if(musact.Use_milestones__c ==false){
if(f.getLabel()!='Milestone'){
options.add(new SelectOption(f.getLabel(), f.getLabel()));
}
}else
options.add(new SelectOption(f.getLabel(), f.getLabel()));
}
return options;
}
public List<SelectOption> getwatchtype()
{
List<SelectOption>options = new List<SelectOption>();
Schema.DescribeFieldResult fieldResult =CRM_settings__c.Watch_type__c.getDescribe();
List<Schema.PicklistEntry> crmwatch= fieldResult.getPicklistValues();
for( Schema.PicklistEntry f:crmwatch)
{
options.add(new SelectOption(f.getLabel(), f.getValue()));
}
return options;
}
public List<SelectOption> getleadsources{
get
{
if(stdObjectLead){
//
leadtemp=[SELECT Id, Name FROM Lead limit 250];
Schema.DescribeFieldResult leadPickList =Lead.Leadsource.getDescribe();
List<Schema.PicklistEntry> leadsourceList= leadPickList.getPicklistValues();
getleadsources = new List<SelectOption>();
for( Schema.PicklistEntry le:leadsourceList){
getleadsources .add(new SelectOption(le.getLabel(), le.getValue()));
}
return getleadsources;
}
return null;
}
set;
}
public String[] LeadItems {
get {
String[] selected = new List<String>();
// List<SelectOption> sos = this.getleadsources;
for(SelectOption s : this.getleadsources){
if(this.Objcrm.Expression_business_region__c!=null && this.Objcrm.Expression_business_region__c.contains(s.getValue()))
selected.add(s.getValue());
}
return selected;
}public set {
String selectedConcat = '';
for(String s : value) {
if (selectedConcat == '')
selectedConcat += s;
else selectedConcat += ';' + s;
}
Objcrm.Expression_business_region__c = selectedConcat;
}
}
public List<SelectOption> getCampaigns{
get
{
if(stdObjectCampaign){
return null;
}
return null;
}
set;
}
public String[] campItems {
get {
String[] selected = new List<String>();
// List<SelectOption> sos = this.getCampaigns;
for(SelectOption s : this.getCampaigns) {
if (this.Objcrm.Expression_business_area__c!=null && this.Objcrm.Expression_business_area__c.contains(s.getValue()))
selected.add(s.getValue());
}
return selected;
}public set {
String selectedConcat = '';
for(String s : value) {
if (selectedConcat == '')
selectedConcat += s;
else selectedConcat += ';' + s;
}
Objcrm.Expression_business_area__c= selectedConcat;
}
}
}
Apex Test Class:
@isTest(Seealldata = True)
Public class CRMSettingsEditControllertest{
static testMethod void CRMsettingcontroller(){
musqot__CRM_settings__c mr=new musqot__CRM_settings__c();
mr.musqot__Bar_color__c='test';
mr.musqot__Chart__c='test';
mr.musqot__CRM_performance_type__c='test';
mr.musqot__Expression_business_area__c='test';
mr.musqot__Expression_business_region__c='test';
mr.musqot__Selector__c='test';
insert mr;
System.assertEquals('test', mr.musqot__Bar_color__c);
musqot__CRM_logfile__c log=new musqot__CRM_logfile__c();
log.musqot__Imported__c=true;
log.musqot__Import_message__c='test';
log.musqot__Number_of_records__c=55;
insert log;
CRM_data__c crm=new CRM_data__c();
crm.musqot__Business_area__c='test';
crm.musqot__Business_region__c='test';
crm.musqot__CRM_import_date__c=system.today();
crm.musqot__CRM_import_id__c='test';
crm.musqot__CRM_logfile__c=log.id;
crm.musqot__Date__c=system.today();
crm.musqot__No_Deals__c=4;
crm.musqot__No_Leads__c=4;
crm.musqot__No_Opportunities__c=4;
crm.musqot__Value_Deals__c=50.00;
crm.musqot__Value_w_Opportunities__c=50.00;
crm.musqot__Value_Opportunities__c=50.00;
insert crm;
musqot__Activity__c m1 =new musqot__Activity__c();
m1.musqot__keycode__c='212';
m1.musqot__Use_Allocation__c=true;
m1.musqot__Use_Budget__c=true;
m1.musqot__Use_Finance1__c=true;
m1.musqot__Use_Forcasting__c=true;
m1.musqot__Use_milestones__c=true;
m1.musqot__Use_Resource__c=true;
m1.Use_Performance_CRM__c='Salesforce (in same org)';
System.assertEquals('212', m1.musqot__keycode__c);
insert m1;
test.startTest();
PageReference pageRef = Page.CRMsettingEditpage;
Test.setCurrentPage(pageRef);
ApexPages.StandardController sc = new ApexPages.standardController(crm);
ApexPages.currentPage().getParameters().put('crmid', mr.id);
CRMSettingsEditController crmctrl = new CRMSettingsEditController(sc);
List<SelectOption> watch= crmctrl.getwatchtype();
List<SelectOption> leads=crmctrl.getleadsources;
List<SelectOption> camps=crmctrl.getCampaigns;
Lead temp11=crmctrl.leadsrce;
crmctrl.Level1=true;
try{
crmctrl.Save();
String[] lead1=crmctrl.LeadItems;
String[] camp1=crmctrl.campItems;
}catch(exception e){}
crmctrl.cancel();
crmctrl.getMyOptions();
test.stopTest();
crmctrl.LeadItems=some_string_array;
same forcampItems
as well.