Skip to main content
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 :-

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);

}

}

}

 
답변 2개
  1. 2016년 3월 11일 오후 12:23
    register the test stub by calling ConnectApi.Topics.setTestGetRecentlyTalkingAboutTopicsForGroup(communityId, cg.id, testPage) before you create the CommunityGroupPage controller
0/9000