You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by rb...@apache.org on 2012/06/13 02:30:05 UTC

svn commit: r1349598 - in /shindig/trunk/java/social-api/src: main/java/org/apache/shindig/social/opensocial/spi/GroupId.java test/java/org/apache/shindig/social/opensocial/spi/GroupIdTest.java

Author: rbaxter85
Date: Wed Jun 13 00:30:04 2012
New Revision: 1349598

URL: http://svn.apache.org/viewvc?rev=1349598&view=rev
Log:
SHINDIG-1796
Using custom @ ids GroupIds throws IllegalArgumentException

Modified:
    shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/GroupId.java
    shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/spi/GroupIdTest.java

Modified: shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/GroupId.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/GroupId.java?rev=1349598&r1=1349597&r2=1349598&view=diff
==============================================================================
--- shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/GroupId.java (original)
+++ shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/spi/GroupId.java Wed Jun 13 00:30:04 2012
@@ -31,7 +31,8 @@ public class GroupId {
     objectId  (0),
     self      (1),
     friends   (2),
-    all       (3);
+    all       (3),
+    custom   (4);
 
     private final int id;
     Type(int id) { this.id = id; }
@@ -56,7 +57,7 @@ public class GroupId {
       this.objectId = (ObjectId) objectId;
     // Else it must be a string, store as such
     } else {
-      if(getType(objectId).equals(Type.objectId)) {
+      if(Type.objectId.equals(getType(objectId))) {
         this.objectId = new ObjectId(objectId.toString());
       } else {
         this.objectId = objectId.toString();
@@ -76,6 +77,9 @@ public class GroupId {
     if(type.equals(Type.objectId)) {
       this.objectId = new ObjectId(objectId);
     // Else store the string representation of the type
+    } else if(Type.custom.equals(type)){
+      //Custom @ id
+      this.objectId = objectId; 
     } else {
       this.objectId = typeToString(type);
     }
@@ -88,9 +92,9 @@ public class GroupId {
    * @return JSON string value
    */
   private String typeToString(Type type) {
-    if(type.equals(Type.all)) {
+    if(Type.all.equals(type)) {
       return "@all";
-    } else if(type.equals(Type.friends)) {
+    } else if(Type.friends.equals(type)) {
       return "@friends";
     } else {
       return "@self";
@@ -119,6 +123,10 @@ public class GroupId {
       return Type.friends;
     } else if(type.equals("all")) {
       return Type.all;
+    } else if(objectId instanceof String && ((String)objectId).startsWith("@")) {
+    	// Could be a custom @ id, and it certainly is not an object id
+    	// return null we don't know the type
+    	return Type.custom;
     } else {
       return Type.objectId;
     }

Modified: shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/spi/GroupIdTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/spi/GroupIdTest.java?rev=1349598&r1=1349597&r2=1349598&view=diff
==============================================================================
--- shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/spi/GroupIdTest.java (original)
+++ shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/spi/GroupIdTest.java Wed Jun 13 00:30:04 2012
@@ -19,6 +19,7 @@
 
 package org.apache.shindig.social.opensocial.spi;
 
+import org.apache.shindig.social.opensocial.spi.GroupId.Type;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -38,6 +39,10 @@ public class GroupIdTest extends Assert 
     GroupId group = GroupId.fromJson("superbia");
     assertEquals(GroupId.Type.objectId, group.getType());
     assertEquals("superbia", group.getObjectId().toString());
+
+    GroupId unknown = GroupId.fromJson("@foo");
+    assertEquals(Type.custom, unknown.getType());
+    assertEquals("@foo", unknown.getObjectId().toString());
   }
 
   @Test
@@ -51,6 +56,31 @@ public class GroupIdTest extends Assert 
 
     assertEquals(g1.getType(), g2.getType());
     assertEquals(g1.getObjectId().toString(), g2.getObjectId().toString());
+
+    GroupId g3 =  new GroupId("@foo");
+    assertEquals(Type.custom, g3.getType());
+    assertEquals("@foo", g3.getObjectId().toString());
+
+    GroupId g4 = new GroupId(Type.objectId, "example.com:195mg90a39v");
+    assertEquals(Type.objectId, g4.getType());
+    assertEquals("example.com:195mg90a39v", g4.getObjectId().toString());
+
+    GroupId g5 = new GroupId(Type.custom, "@foo");
+    assertEquals(Type.custom, g5.getType());
+    assertEquals("@foo", g5.getObjectId().toString());
+
+    GroupId g6 = new GroupId(Type.all, "something");
+    assertEquals(Type.all, g6.getType());
+    assertEquals("@all", g6.getObjectId().toString());
+
+    GroupId g7 = new GroupId(Type.self, null);
+    assertEquals(Type.self, g7.getType());
+    assertEquals("@self", g7.getObjectId().toString());
+
+    GroupId g8 = new GroupId(Type.friends, "bar");
+    assertEquals(Type.friends, g8.getType());
+    assertEquals("@friends", g8.getObjectId().toString());
+
   }
 
   @Test(expected=IllegalArgumentException.class)