You need to sign in to do that
Don't have an account?
Swarvi Kumari
Code coverage for my test class
Hi All,
Can anyone Please help to write a test class for my class?
Apex Class:
public without sharing class _CalendarCtrl extends _Ctrl {
public List<SelectOption> categoryOptions {get; set;}
public List<SelectOption> regionOptions {get; set;}
public String selectedCategory {get; set;}
public String selectedRegion {get; set;}
public String selectedFromDate {get; set;}
public String selectedToDate {get; set;}
public String selectedPage {get; set;}
public Integer selectedPageNumber {get; set;}
public List<Calendar_Event__c> ccalendarEvents {get; set;}
public Map<Id, List<String>> eventIdToCategories {get; set;}
public Integer numberOfResultsPerPage {get; set;}
public Integer numberOfPages {get; set;}
public Map<String, Id> categoryToAttachmentIdMap {get; set;}
public _CalendarCtrl() {
populateCategoryOptions();
populateRegionOptions();
selectedCategory = ApexPages.currentPage().getParameters().get('category');
selectedRegion = ApexPages.currentPage().getParameters().get('region');
selectedFromDate = ApexPages.currentPage().getParameters().get('from-date');
if(selectedFromDate == null) {
selectedFromDate = Date.today().format();
}
selectedToDate = ApexPages.currentPage().getParameters().get('to-date');
selectedPage = ApexPages.currentPage().getParameters().get('page');
selectedPageNumber = 1;
if(String.isNotEmpty(selectedPage)) {
selectedPageNumber = Integer.valueOf(selectedPage);
}
numberOfResultsPerPage = Integer.valueOf(Version.Calendar_Num_Results_Per_Page__c);
populateCalendarEvents();
populateEventIdToCategoriesMap();
populateCategoryToAttachmentIdMap();
}
public void populateCalendarEvents() {
List<String> whereClauseConditions = new List<String>();
if(String.isNotEmpty(selectedRegion) && selectedRegion != 'all') {
whereClauseConditions.add('Region__c = :selectedRegion');
}
if(String.isNotEmpty(selectedCategory) && selectedCategory != 'all') {
whereClauseConditions.add('Categories__c includes (:selectedCategory)');
}
Date fromDate = null;
if(String.isNotEmpty(selectedFromDate)) {
fromDate = Date.parse(selectedFromDate);
whereClauseConditions.add('Event_Date__c >= :fromDate');
}
Date toDate = null;
if(String.isNotEmpty(selectedToDate)) {
toDate = Date.parse(selectedToDate).addDays(1);
whereClauseConditions.add('Event_Date__c < :toDate');
}
String query = 'SELECT Name, Event_Date__c, Event_End_Date__c,Event_Start_Time__c,Event_End_Time__c,Summary__c, Region__c, Categories__c FROM Calendar_Event__c';
if(!whereClauseConditions.isEmpty()) {
query += ' WHERE ' + String.join(whereClauseConditions, ' AND ');
}
String countQuery = 'SELECT Count() FROM Calendar_Event__c';
if(!whereClauseConditions.isEmpty()) {
countQuery += ' WHERE ' + String.join(whereClauseConditions, ' AND ');
}
query += ' ORDER BY Event_Date__c ASC LIMIT :numberOfResultsPerPage';
Integer numResults = Database.countQuery(countQuery);
numberOfPages = Integer.valueOf(Math.ceil(numResults / (double)numberOfResultsPerPage));
if(String.isNotEmpty(selectedPage) && selectedPage != '1') {
Integer offset = (Integer.valueOf(selectedPage) - 1) * numberOfResultsPerPage;
query += ' OFFSET ' + offset;
}
ccalendarEvents = Database.query(query);
//return [SELECT Name, Event_Date__c, Summary__c, Region__c, Categories__c FROM Calendar_Event__c WHERE Region__c = :selectedRegion AND Categories__c includes (:selectedCategory)];
}
public List<Integer> getPageNumberList() {
List<Integer> pageNumberList = new List<Integer>();
for(Integer i=1; i<=numberOfPages; i++) {
pageNumberList.add(i);
}
return pageNumberList;
}
private void populateCategoryOptions() {
categoryOptions = new List<SelectOption>();
for(Schema.PicklistEntry f : Calendar_Event__c.Categories__c.getDescribe().getPicklistValues()) {
categoryOptions.add(new SelectOption(f.getLabel(), f.getValue()));
}
}
private void populateRegionOptions() {
regionOptions = new List<SelectOption>();
for(Schema.PicklistEntry f : Calendar_Event__c.Region__c.getDescribe().getPicklistValues()) {
regionOptions.add(new SelectOption(f.getLabel(), f.getValue()));
}
}
private void populateEventIdToCategoriesMap() {
eventIdToCategories = new Map<Id, List<String>>();
for(Calendar_Event__c cEvent : ccalendarEvents) {
eventIdToCategories.put(cEvent.Id, String.valueOf(cEvent.Categories__c).split(';'));
}
}
private void populateCategoryToAttachmentIdMap() {
categoryToAttachmentIdMap = new Map<String, Id>();
for(__Calendar_Category__c cc : Version.__Calendar_Categories__r) {
if(cc.Category_Icon_Ref__c != null) {
categoryToAttachmentIdMap.put(cc.name, cc.Category_Icon_Ref__r.Attachment_Id__c);
}
}
}
}
my Test Class
@isTest
public without sharing class SiteCalendarCtrl_Test{
static testMethod void Testdata() {
Test.startTest();
CalendarCtrl Calendar= new CalendarCtrl();
Calendar.populateCalendarEvents();
Calendar.getPageNumberList();
Test.stopTest();
}
}
Error:
CalendarCtrl_Test.Testdata: line 5, column 1
Appreciate for your quick help!
Can anyone Please help to write a test class for my class?
Apex Class:
public without sharing class _CalendarCtrl extends _Ctrl {
public List<SelectOption> categoryOptions {get; set;}
public List<SelectOption> regionOptions {get; set;}
public String selectedCategory {get; set;}
public String selectedRegion {get; set;}
public String selectedFromDate {get; set;}
public String selectedToDate {get; set;}
public String selectedPage {get; set;}
public Integer selectedPageNumber {get; set;}
public List<Calendar_Event__c> ccalendarEvents {get; set;}
public Map<Id, List<String>> eventIdToCategories {get; set;}
public Integer numberOfResultsPerPage {get; set;}
public Integer numberOfPages {get; set;}
public Map<String, Id> categoryToAttachmentIdMap {get; set;}
public _CalendarCtrl() {
populateCategoryOptions();
populateRegionOptions();
selectedCategory = ApexPages.currentPage().getParameters().get('category');
selectedRegion = ApexPages.currentPage().getParameters().get('region');
selectedFromDate = ApexPages.currentPage().getParameters().get('from-date');
if(selectedFromDate == null) {
selectedFromDate = Date.today().format();
}
selectedToDate = ApexPages.currentPage().getParameters().get('to-date');
selectedPage = ApexPages.currentPage().getParameters().get('page');
selectedPageNumber = 1;
if(String.isNotEmpty(selectedPage)) {
selectedPageNumber = Integer.valueOf(selectedPage);
}
numberOfResultsPerPage = Integer.valueOf(Version.Calendar_Num_Results_Per_Page__c);
populateCalendarEvents();
populateEventIdToCategoriesMap();
populateCategoryToAttachmentIdMap();
}
public void populateCalendarEvents() {
List<String> whereClauseConditions = new List<String>();
if(String.isNotEmpty(selectedRegion) && selectedRegion != 'all') {
whereClauseConditions.add('Region__c = :selectedRegion');
}
if(String.isNotEmpty(selectedCategory) && selectedCategory != 'all') {
whereClauseConditions.add('Categories__c includes (:selectedCategory)');
}
Date fromDate = null;
if(String.isNotEmpty(selectedFromDate)) {
fromDate = Date.parse(selectedFromDate);
whereClauseConditions.add('Event_Date__c >= :fromDate');
}
Date toDate = null;
if(String.isNotEmpty(selectedToDate)) {
toDate = Date.parse(selectedToDate).addDays(1);
whereClauseConditions.add('Event_Date__c < :toDate');
}
String query = 'SELECT Name, Event_Date__c, Event_End_Date__c,Event_Start_Time__c,Event_End_Time__c,Summary__c, Region__c, Categories__c FROM Calendar_Event__c';
if(!whereClauseConditions.isEmpty()) {
query += ' WHERE ' + String.join(whereClauseConditions, ' AND ');
}
String countQuery = 'SELECT Count() FROM Calendar_Event__c';
if(!whereClauseConditions.isEmpty()) {
countQuery += ' WHERE ' + String.join(whereClauseConditions, ' AND ');
}
query += ' ORDER BY Event_Date__c ASC LIMIT :numberOfResultsPerPage';
Integer numResults = Database.countQuery(countQuery);
numberOfPages = Integer.valueOf(Math.ceil(numResults / (double)numberOfResultsPerPage));
if(String.isNotEmpty(selectedPage) && selectedPage != '1') {
Integer offset = (Integer.valueOf(selectedPage) - 1) * numberOfResultsPerPage;
query += ' OFFSET ' + offset;
}
ccalendarEvents = Database.query(query);
//return [SELECT Name, Event_Date__c, Summary__c, Region__c, Categories__c FROM Calendar_Event__c WHERE Region__c = :selectedRegion AND Categories__c includes (:selectedCategory)];
}
public List<Integer> getPageNumberList() {
List<Integer> pageNumberList = new List<Integer>();
for(Integer i=1; i<=numberOfPages; i++) {
pageNumberList.add(i);
}
return pageNumberList;
}
private void populateCategoryOptions() {
categoryOptions = new List<SelectOption>();
for(Schema.PicklistEntry f : Calendar_Event__c.Categories__c.getDescribe().getPicklistValues()) {
categoryOptions.add(new SelectOption(f.getLabel(), f.getValue()));
}
}
private void populateRegionOptions() {
regionOptions = new List<SelectOption>();
for(Schema.PicklistEntry f : Calendar_Event__c.Region__c.getDescribe().getPicklistValues()) {
regionOptions.add(new SelectOption(f.getLabel(), f.getValue()));
}
}
private void populateEventIdToCategoriesMap() {
eventIdToCategories = new Map<Id, List<String>>();
for(Calendar_Event__c cEvent : ccalendarEvents) {
eventIdToCategories.put(cEvent.Id, String.valueOf(cEvent.Categories__c).split(';'));
}
}
private void populateCategoryToAttachmentIdMap() {
categoryToAttachmentIdMap = new Map<String, Id>();
for(__Calendar_Category__c cc : Version.__Calendar_Categories__r) {
if(cc.Category_Icon_Ref__c != null) {
categoryToAttachmentIdMap.put(cc.name, cc.Category_Icon_Ref__r.Attachment_Id__c);
}
}
}
}
my Test Class
@isTest
public without sharing class SiteCalendarCtrl_Test{
static testMethod void Testdata() {
Test.startTest();
CalendarCtrl Calendar= new CalendarCtrl();
Calendar.populateCalendarEvents();
Calendar.getPageNumberList();
Test.stopTest();
}
}
Error:
CalendarCtrl_Test.Testdata: line 5, column 1
Appreciate for your quick help!
The Visualforce page is missing.
class _CalendarCtrl (with an underscore at the beginning) and you test: CalendarCtrl ?
Are you sure that you have posted the correct class or you have removed the namespace prefix?