You need to sign in to do that
Don't have an account?
Amit Kumar Singh 19
Test Class Issue with ConnectApi.Topics.getRecentlyTalkingAboutTopicsForGroup
Dear All,
I have created a customer community where an visualforce page is created to display chatter group funcationality,.
In this page I am displaying Recently Talking about topics using connect API. It works fine, but while writing test class for this I am getting below error message.
System.AssertException: Assertion Failed: No matching test result found for Topics.getRecentlyTalkingAboutTopicsForGroup(String communityId, String groupId). Before calling this, call Topics.setTestGetRecentlyTalkingAboutTopicsForGroup(String communityId, String groupId, ConnectApi.TopicPage result) to set the expected test result.
Here is my code :-
Apex Class :-
Test Class
Please help me to fix this issue.
Thanks,
AMit Singh
I have created a customer community where an visualforce page is created to display chatter group funcationality,.
In this page I am displaying Recently Talking about topics using connect API. It works fine, but while writing test class for this I am getting below error message.
System.AssertException: Assertion Failed: No matching test result found for Topics.getRecentlyTalkingAboutTopicsForGroup(String communityId, String groupId). Before calling this, call Topics.setTestGetRecentlyTalkingAboutTopicsForGroup(String communityId, String groupId, ConnectApi.TopicPage result) to set the expected test result.
Here is my code :-
Apex Class :-
public ConnectApi.TopicPage feedItemPage{get;set;} public CommunityGroupPage() { // Chatter Group Id Id groupid = apexpages.currentpage().getparameters().get('id'); / pull all chatter groups, faster than individual queries + 1 SOQL chatterGroups = [SELECT id, Name, NetworkId FROM CollaborationGroup where id =: groupid Limit 1]; String comid; String grpid; if(chatterGroups.Size() > 0) { comid = chatterGroups[0].NetworkId; grpid = chatterGroups[0].Id; } //This will be used to fetch Recently Talking about topics for current chatter group feedItemPage = ConnectApi.Topics.getRecentlyTalkingAboutTopicsForGroup(comId,grpid); }
Test Class
** * An apex page controller that exposes the Chatter Group Page functionality */ @IsTest global with sharing class CommunityGroupPageTest { @IsTest(SeeAllData=true) global static void testCommunityGroupPage () { // Instantiate a new controller with all parameters in the page Network community; String communityId; Id currentUserId = UserInfo.getUserId(); User usr = [select id,Name from User where id =: currentUserId]; System.runAs(usr) { community = [SELECT id, Name,OptionsReputationEnabled FROM Network where name =: 'Customer Community']; communityId = community.id; collaborationgroup cg = new collaborationgroup(name ='ChatterGroupPage',CollaborationType='Public',OwnerId=currentUserId,NetworkId=communityId); insert cg; PageReference pageRef = Page.CommunityChatterPage; Test.setCurrentPage(pageRef);//Applying page context here // Add parameters to page URL ApexPages.currentPage().getParameters().put('id', cg.id);//Observe how helpful it was to set the parameters in your page from Unit test CommunityGroupPage controller = new CommunityGroupPage (); controller.groupid = System.currentPagereference().getParameters().get('id'); ConnectApi.TopicPage testPage = new ConnectApi.TopicPage(); List<ConnectApi.Topic> testItemList = new List<ConnectApi.Topic>(); testItemList.add(new ConnectApi.Topic()); testItemList.add(new ConnectApi.Topic()); testPage.topics = testItemList; ConnectApi.Topics.setTestGetRecentlyTalkingAboutTopicsForGroup(communityId, cg.id, testPage); ConnectApi.Topics.getRecentlyTalkingAboutTopicsForGroup(communityId,cg.id); } } }
Please help me to fix this issue.
Thanks,
AMit Singh
Also, line 38 in your test should be deleted. You're already calling that method when you call the CommunityGroupPage constructor.
All Answers
Also, line 38 in your test should be deleted. You're already calling that method when you call the CommunityGroupPage constructor.