You need to sign in to do that
Don't have an account?

Testing a Wrapper class - Save error: Invalid type; Wrapper
I have a wrapper class within an apex controller:
public list<sidebarWrapper> getSidebars() {
list<sidebarWrapper> sidebars = new list<sidebarWrapper>();
for (Sidebar_Element__c sidebar :
[Select id, Name, Order_On_Page__c, Page_Layout__c, Content_Item__c, Content_Type__c,
Twitter_Feed__c, No_of_Tweets__c, Keyword__c, No_of_Items__c, Synopsis_Length__c,
Content_Item__r.Heading__c, Content_Type__r.Title__c, Content_Type__r.View_All__c, Content_Type__r.View_All_Dest__c,
Content_Type__r.List_Length__c, Content_Type__r.Synopsis_Length__c
From Sidebar_Element__c where Page_Layout__c = :pgId order by Order_On_Page__c asc]) {
sidebars.add(new sidebarWrapper(sidebar));
}
return sidebars;
}
// Wrapper Class for sidebar
public class sidebarWrapper {
public Sidebar_Element__c sel {get; set;}
public Content_Item__c sci;
public list<Content_Item__c> scl;
// constructor method
public sidebarWrapper (Sidebar_Element__c thisSel) {
sel = thisSel;
}
public Content_Item__c getItem()
{
if (null==sci)
{
try {
sci =
[select Id, URL_Link__c, Image__c, Synopsis__c, Release_Date__c, Name, Heading__c,
Attachment__c, (Select Id From Attachments limit 1),
Content_Type__r.Image_Position__c, Content_Type__r.Image_Border__c, Content_Type__r.Show_Date__c,
Content_Type__r.Read_More__c, Content_Type__r.Read_More_Dest__c,
(select Name, Content_Item__c, Description_Text__c from Contents__r order by name)
From Content_Item__c
where Id in (Select Content_Item__c From Sidebar_Element__c where id = :sel.id)
order by Release_Date__c desc];
}
catch(QueryException e) {
return null;
}
}
return sci;
}
public List<Content_Item__c> getList()
{
if (null==scl && sel.no_of_items__c >= 1)
{
try {
string sKey;
if (sel.keyword__c != null) sKey = '%' + sel.keyword__c + '%';
else sKey ='%';
scl =
[Select URL_Link__c, Image__c, Synopsis__c, Release_Date__c, Name, Heading__c, Content_Type__c,
Internal_Link_Prefix__c, Keywords__c,
Attachment__c, (Select Id From Attachments limit 1),
(Select Id From Contents__r limit 1),
Content_Type__r.Id, Content_Type__r.Title__c, Content_Type__r.Show_Date__c,
Content_Type__r.Image_Position__c, Content_Type__r.Image_Border__c,
Content_Type__r.Read_More__c, Content_Type__r.Read_More_Dest__c,
Content_Type__r.List_Style__c, Content_Type__r.Searchable__c,
(Select Page_Layout__c From Sidebar_Elements__r) From Content_Item__c
where Content_Type__c in (select Content_Type__c From Sidebar_Element__c where id = :sel.id)
and Keywords__c like :sKey
order by Release_Date__c desc limit :sel.no_of_items__c.IntValue()];
}
catch(QueryException e) {
return null;
}
}
return scl;
}
}
// End Wrapper
}
and I'm trying to write a test:
<!--- SET SOME TEST DATA UP -->
string pgl = 'testPage';
string fl = 'testflash';
ApexPages.currentPage().getParameters().put('pgl', pgl);
ApexPages.currentPage().getParameters().put('mov', fl);
// Instantiate a new controller
PageRenderer pr = new PageRenderer();
list<sidebarWrapper> s = new list<sidebarWrapper>();
string nl1 = pr.getNav_Level_1();
string nl2 = pr.getNav_Level_2();
boolean bb = pr.getBack_Button();
Page_Layout__c ap = pr.getActivePage();
list<Page_Element__c> el = pr.getElements();
s = pr.getSidebars();
list<Sidebar_Element__c> sel = s.sel();
list<Content_Item__c> ci = pr.getContentItems();
list<Content_Item__c> sci = s.getItem();
list<Content_Item__c> cl = pr.getContentList();
list<Content_Item__c> scl = s.getList();
Content__c c = pr.getPageContent();
string flash = pr.getFlash();
ApexPages.StandardController sc = new ApexPages.standardController(pe[0]);
PageElementExtension pee = new PageElementExtension(sc);
ci = pee.getContentItems();
cl = pee.getContentList();
ApexPages.StandardController sc2 = new ApexPages.standardController(se[0]);
SidebarElementExtension see = new SidebarElementExtension(sc2);
ci = see.getsContentItems();
cl = see.getsContentList();
But I just get:
Save error: Invalid type: sidebarWrapper TestPageRender.cls /fusionai.com/src/classes line 59 Force.com save problem
So why can't it see the Wrapper Class??
It's OK - I think I've got it now!
What was the error?
/Mats
It should have been something like:-
list<PageRenderer.sidebarWrapper> s = pr.getSidebars();
- since sidebarWrapper was within the PageRenderer class.