You need to sign in to do that
Don't have an account?
Imran Rahman 3
How to create test class for custom News Controller
I have created a custom extension which allows me to pull specified data into my visualforce news page.
In my extension I have mutliple queries which pull filtered data if used with url parameters and also have my own pagination built in.
How can I create a test class for the following:
In my extension I have mutliple queries which pull filtered data if used with url parameters and also have my own pagination built in.
How can I create a test class for the following:
public with sharing class force_NewsController { public String filteredEvents { get; set; } public force_NewsController (){ CountTotalRecords= [SELECT COUNT() FROM News__c]; // pagination filter String category = Apexpages.currentPage().getParameters().get('cat'); if (category == 'product launches') { CountTotalRecords = [SELECT COUNT() FROM News__c WHERE Category__c = 'Product Launches']; } else if (category == 'events') { CountTotalRecords = [SELECT COUNT() FROM News__c WHERE Category__c = 'Events']; } else if (category == 'press releases') { CountTotalRecords = [SELECT COUNT() FROM News__c WHERE Category__c = 'Press Releases']; } else if (category == 'case studies') { CountTotalRecords = [SELECT COUNT() FROM News__c WHERE Category__c = 'Case Studies']; } else { CountTotalRecords = [SELECT COUNT() FROM News__c]; } } public Integer CountTotalRecords{get;set;} public String QueryString {get;set;} public Integer OffsetSize = 0; private Integer QueryLimit = 6; public string excerpt; public list<News__c> lstItem {get;set;} public list<News__c> NewsList {get;set;} public list<News__c> EventList {get;set;} public map<id,string> newsmap{get;set;} public Boolean filteredEvents(){ if(apexpages.currentpage().getparameters().get('cat') == 'events'){ return true; } else return false; } public list<News__c> getNewsItems(){ lstItem = new list<News__c>(); String category = Apexpages.currentPage().getParameters().get('cat'); String query = 'SELECT Id, Name, Title__C, Content__c, Publish_Date__c, Category__c, Event_Date_Start__c, Event_Date_End__c, Event_Location__c, '; query += '(Select Id, Name, LastModifiedDate From Attachments Order By LastModifiedDate DESC) '; query += 'FROM News__c '; if (category != null) { query += 'WHERE Category__c = :category '; } query += 'ORDER BY Publish_Date__c DESC, Name DESC LIMIT :QueryLimit OFFSET :OffsetSize'; lstItem = Database.query(query); return lstItem; } public Boolean getDisablePrevious(){ if(OffsetSize>0){ return false; } else return true; } public Boolean getDisableNext() { if (OffsetSize + QueryLimit < countTotalRecords){ return false; } else return true; } public PageReference Next() { OffsetSize += QueryLimit; return null; } public PageReference Previous() { OffsetSize -= QueryLimit; return null; } public list<News__c> getHomeNewsItems(){ NewsList = new list<News__c>(); String query = 'SELECT Id, Name, Title__C, Content__c, Publish_Date__c, Category__c, '; query += '(Select Id, Name, LastModifiedDate From Attachments Order By LastModifiedDate DESC) '; query += 'FROM News__c '; query += 'WHERE Category__c != \'Events\' '; query += 'ORDER BY Publish_Date__c DESC, Name DESC LIMIT 5'; NewsList = Database.query(query); return NewsList; } public list<News__c> getUpcomingEvents(){ EventList = new list<News__c>(); String query = 'SELECT Id, Name, Title__C, Publish_Date__c, Event_Date_Start__c, Event_Date_End__c, Event_Location__c '; query += 'FROM News__c '; query += 'WHERE Category__c = \'Events\' '; query += 'ORDER BY Event_Date_Start__c ASC, Name DESC LIMIT 3'; EventList = Database.query(query); return EventList; } public LIST<Service_Status__c> getServiceItems() { return [SELECT Id, Name, Information__c, Status_Colour__c FROM Service_Status__c ORDER BY Priority__c DESC]; } public LIST<News__c> getAlerts() { date d = system.today().addDays(-8); return [SELECT Id, Name, Title__C, Publish_Date__c FROM News__c WHERE Flash_Message__c = TRUE AND Publish_Date__c > :d ORDER BY Publish_Date__c DESC LIMIT 1]; } }
Hi Imran,
Please go through the link below, you will find guidelines regarding test class for maximum coverage:
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_testing_best_practices.htm
Thanks,
Pratik