You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2014/02/25 22:21:44 UTC
[2/3] git commit: Fixing social feed not working once you have over
10 followers, bumping limit to 1000
Fixing social feed not working once you have over 10 followers, bumping limit to 1000
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/d4accb97
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/d4accb97
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/d4accb97
Branch: refs/pull/61/merge
Commit: d4accb978487b62c92f9c385a58a434dcc63c88d
Parents: c431c84
Author: Shawn Feldman <sh...@gmail.com>
Authored: Tue Feb 25 13:54:04 2014 -0700
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Tue Feb 25 13:54:04 2014 -0700
----------------------------------------------------------------------
.../rest/management/ManagementResourceIT.java | 92 +++++++++++++++++++-
.../users/activities/ActivitiesService.java | 2 +-
2 files changed, 91 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d4accb97/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
index b379770..f289cd7 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
@@ -16,12 +16,12 @@
package org.apache.usergrid.rest.management;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
import javax.ws.rs.core.MediaType;
import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.node.ArrayNode;
import org.junit.Test;
import org.apache.usergrid.cassandra.Concurrent;
import org.apache.usergrid.management.OrganizationInfo;
@@ -216,6 +216,94 @@ public class ManagementResourceIT extends AbstractRestIT {
"<a href=\"mailto:test@usergrid.com\">" ) );
}
+ /** Test that we can support over 10 items in feed. */
+ @Test
+ public void mgmtFollowsUserFeed() throws Exception {
+ List<String> users1 = new ArrayList<String>();
+ int i;
+ //try with 10 users
+ for(i = 0; i<10;i++){
+ users1.add("follower" + Integer.toString(i));
+ }
+ checkFeed("leader1",users1);
+ //try with 11
+ List<String> users2 = new ArrayList<String>();
+ for(i =20; i<31;i++){
+ users2.add("follower" + Integer.toString(i));
+ }
+ checkFeed("leader2",users2);
+ }
+
+ private void checkFeed(String leader, List<String> followers){
+ JsonNode userFeed;
+ //create user
+ createUser(leader);
+ String preFollowContent = leader+": pre-something to look for " + UUID.randomUUID().toString();
+ addActivity(leader, leader + " " + leader + "son", preFollowContent);
+ String lastUser = followers.get(followers.size()-1);
+ int i = 0;
+ for(String user : followers){
+ createUser(user);
+ follow(user,leader);
+ }
+ userFeed = getUserFeed(lastUser);
+ assertTrue(userFeed.size()==1);
+
+ //retrieve feed
+ userFeed = getUserFeed(lastUser);
+ assertTrue(userFeed.size()==1);
+ String postFollowContent = leader+": something to look for " + UUID.randomUUID().toString();
+ addActivity(leader,leader+" "+leader+"son",postFollowContent);
+ //check feed
+ userFeed = getUserFeed(lastUser);
+ assertNotNull(userFeed);
+ assertTrue(userFeed.size()>1);
+ String serialized = userFeed.toString();
+ assertTrue(serialized.indexOf(postFollowContent)>0);
+ assertTrue(serialized.indexOf(preFollowContent)>0);
+ }
+
+ private void createUser(String username){
+ Map<String, Object> payload = new LinkedHashMap<String, Object>();
+ payload.put( "username", username );
+ resource().path( "/test-organization/test-app/users" )
+ .queryParam("access_token", access_token)
+ .accept( MediaType.APPLICATION_JSON )
+ .type(MediaType.APPLICATION_JSON_TYPE)
+ .post(JsonNode.class, payload);
+
+ }
+ private JsonNode getUserFeed(String username){
+ JsonNode userFeed = resource().path( "/test-organization/test-app/users/"+username+"/feed" )
+ .queryParam( "access_token", access_token )
+ .accept(MediaType.APPLICATION_JSON)
+ .get( JsonNode.class );
+ return userFeed.get("entities");
+ }
+
+ private void follow(String user, String followUser){
+ //post follow
+ resource().path( "/test-organization/test-app/users/"+user+"/following/users/"+followUser )
+ .queryParam("access_token", access_token)
+ .accept( MediaType.APPLICATION_JSON )
+ .type(MediaType.APPLICATION_JSON_TYPE)
+ .post(JsonNode.class, new HashMap<String, String>());
+ }
+
+ private void addActivity(String user,String name, String content){
+ Map<String,Object> activityPayload = new HashMap<String, Object>();
+ activityPayload.put("content",content);
+ activityPayload.put("verb","post");
+ Map<String,String> actorMap = new HashMap<String, String>();
+ actorMap.put("displayName",name);
+ actorMap.put("username",user);
+ activityPayload.put("actor",actorMap);
+ resource().path("/test-organization/test-app/users/"+user+"/activities")
+ .queryParam("access_token", access_token)
+ .accept(MediaType.APPLICATION_JSON)
+ .type(MediaType.APPLICATION_JSON_TYPE)
+ .post(JsonNode.class, activityPayload);
+ }
@Test
public void mgmtCreateAndGetApplication() throws Exception {
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d4accb97/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java b/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
index ae3ac9b..b076e4d 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/users/activities/ActivitiesService.java
@@ -133,7 +133,7 @@ public class ActivitiesService extends GenericCollectionService {
return;
}
em.addToCollection( user, "feed", activity );
- Results r = em.getConnectingEntities( user.getUuid(), "following", User.ENTITY_TYPE, Results.Level.REFS );
+ Results r = em.getConnectingEntities( user.getUuid(), "following", User.ENTITY_TYPE, Results.Level.REFS, 1000 ); //allow 1000 connections
List<EntityRef> refs = r.getRefs();
if ( refs != null ) {
em.addToCollections( refs, "feed", activity );