You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by do...@apache.org on 2008/06/12 19:30:13 UTC

svn commit: r667170 - in /incubator/shindig/trunk/java/social-api/src: main/java/org/apache/shindig/social/dataservice/ main/java/org/apache/shindig/social/samplecontainer/ test/java/org/apache/shindig/social/dataservice/

Author: doll
Date: Thu Jun 12 10:30:13 2008
New Revision: 667170

URL: http://svn.apache.org/viewvc?rev=667170&view=rev
Log:
Added tests for the PersonHandler. Also fixed two bugs. 


Added:
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/PersonHandlerTest.java
      - copied, changed from r667146, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/DataRequestHandlerTest.java
Modified:
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/PersonHandler.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicActivitiesService.java

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/PersonHandler.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/PersonHandler.java?rev=667170&r1=667169&r2=667170&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/PersonHandler.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/PersonHandler.java Thu Jun 12 10:30:13 2008
@@ -79,6 +79,11 @@
       optionalPersonId = segments[2];
     }
 
+    if (optionalPersonId != null
+        || groupId == DataServiceServlet.GroupId.SELF) {
+      return personService.getPerson(userId, token);
+    }
+
     PersonService.SortOrder sort = getEnumParam(servletRequest, "orderBy",
         PersonService.SortOrder.topFriends, PersonService.SortOrder.class);
     PersonService.FilterType filter = getEnumParam(servletRequest, "filterBy",
@@ -93,10 +98,6 @@
                 Person.Field.NAME.toString(),
                 Person.Field.THUMBNAIL_URL.toString())));
 
-    if (optionalPersonId != null
-        || groupId == DataServiceServlet.GroupId.SELF) {
-      return personService.getPerson(userId, token);
-    }
     return personService.getPeople(userId, groupId, sort, filter, first, max,
         profileDetails, token);
   }

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicActivitiesService.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicActivitiesService.java?rev=667170&r1=667169&r2=667170&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicActivitiesService.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicActivitiesService.java Thu Jun 12 10:30:13 2008
@@ -88,6 +88,7 @@
         if (friendIds != null) {
           ids.addAll(friendIds);
         }
+        break;
       case SELF:
         ids.add(userId);
     }

Copied: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/PersonHandlerTest.java (from r667146, incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/DataRequestHandlerTest.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/PersonHandlerTest.java?p2=incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/PersonHandlerTest.java&p1=incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/DataRequestHandlerTest.java&r1=667146&r2=667170&rev=667170&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/DataRequestHandlerTest.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/PersonHandlerTest.java Thu Jun 12 10:30:13 2008
@@ -17,44 +17,141 @@
  */
 package org.apache.shindig.social.dataservice;
 
+import org.apache.shindig.social.ResponseItem;
+import org.apache.shindig.social.opensocial.model.Person;
+import org.apache.shindig.social.opensocial.util.BeanJsonConverter;
+import org.apache.shindig.common.testing.FakeGadgetToken;
+
+import com.google.common.collect.Sets;
 import junit.framework.TestCase;
 import org.easymock.classextension.EasyMock;
-import org.apache.shindig.social.ResponseItem;
-import org.apache.shindig.common.SecurityToken;
 
 import javax.servlet.http.HttpServletRequest;
 
-public class DataRequestHandlerTest extends TestCase {
+public class PersonHandlerTest extends TestCase {
+  private BeanJsonConverter converter;
+  private HttpServletRequest servletRequest;
+  private PersonService personService;
+  private PersonHandler handler;
+
+  @Override
+  protected void setUp() throws Exception {
+    converter = EasyMock.createMock(BeanJsonConverter.class);
+    servletRequest = EasyMock.createMock(HttpServletRequest.class);
+    personService = EasyMock.createMock(PersonService.class);
+
+    handler = new PersonHandler(personService, converter);
+  }
+
+  private void replay() {
+    EasyMock.replay(converter);
+    EasyMock.replay(servletRequest);
+    EasyMock.replay(personService);
+  }
+
+  private void verify() {
+    EasyMock.verify(converter);
+    EasyMock.verify(servletRequest);
+    EasyMock.verify(personService);
+  }
+
+  public void testHandleGetAllNoParams() throws Exception {
+    EasyMock.expect(servletRequest.getPathInfo()).andReturn("/people/john.doe/@all");
+
+    EasyMock.expect(servletRequest.getParameter("orderBy")).andReturn(null);
+    EasyMock.expect(servletRequest.getParameter("filterBy")).andReturn(null);
+    EasyMock.expect(servletRequest.getParameter("startIndex")).andReturn(null);
+    EasyMock.expect(servletRequest.getParameter("count")).andReturn(null);
+    EasyMock.expect(servletRequest.getParameter("fields")).andReturn(null);
+
+    FakeGadgetToken token = new FakeGadgetToken();
+    ResponseItem<RestfulCollection<Person>> data
+        = new ResponseItem<RestfulCollection<Person>>(null);
+    EasyMock.expect(personService.getPeople("john.doe",
+        DataServiceServlet.GroupId.ALL, PersonService.SortOrder.topFriends,
+        PersonService.FilterType.all, 0, 20,
+        Sets.newHashSet(Person.Field.ID.toString(),
+            Person.Field.NAME.toString(),
+            Person.Field.THUMBNAIL_URL.toString()),
+        token)).andReturn(data);
+
+    replay();
+    assertEquals(data, handler.handleGet(servletRequest, token));
+    verify();
+  }
+
+  public void testHandleGetFriendsNoParams() throws Exception {
+    EasyMock.expect(servletRequest.getPathInfo()).andReturn("/people/john.doe/@friends");
+
+    EasyMock.expect(servletRequest.getParameter("orderBy")).andReturn(null);
+    EasyMock.expect(servletRequest.getParameter("filterBy")).andReturn(null);
+    EasyMock.expect(servletRequest.getParameter("startIndex")).andReturn(null);
+    EasyMock.expect(servletRequest.getParameter("count")).andReturn(null);
+    EasyMock.expect(servletRequest.getParameter("fields")).andReturn(null);
+
+    FakeGadgetToken token = new FakeGadgetToken();
+    ResponseItem<RestfulCollection<Person>> data
+        = new ResponseItem<RestfulCollection<Person>>(null);
+    EasyMock.expect(personService.getPeople("john.doe",
+        DataServiceServlet.GroupId.FRIENDS, PersonService.SortOrder.topFriends,
+        PersonService.FilterType.all, 0, 20,
+        Sets.newHashSet(Person.Field.ID.toString(),
+            Person.Field.NAME.toString(),
+            Person.Field.THUMBNAIL_URL.toString()),
+        token)).andReturn(data);
+
+    replay();
+    assertEquals(data, handler.handleGet(servletRequest, token));
+    verify();
+  }
+
+  public void testHandleGetFriendsWithParams() throws Exception {
+    EasyMock.expect(servletRequest.getPathInfo()).andReturn("/people/john.doe/@friends");
+
+    PersonService.SortOrder order = PersonService.SortOrder.name;
+    PersonService.FilterType filter = PersonService.FilterType.topFriends;
+
+    EasyMock.expect(servletRequest.getParameter("orderBy")).andReturn(order.toString());
+    EasyMock.expect(servletRequest.getParameter("filterBy")).andReturn(filter.toString());
+    EasyMock.expect(servletRequest.getParameter("startIndex")).andReturn("5");
+    EasyMock.expect(servletRequest.getParameter("count")).andReturn("10");
+    EasyMock.expect(servletRequest.getParameter("fields")).andReturn("money,fame,fortune");
+
+    FakeGadgetToken token = new FakeGadgetToken();
+    ResponseItem<RestfulCollection<Person>> data
+        = new ResponseItem<RestfulCollection<Person>>(null);
+    EasyMock.expect(personService.getPeople("john.doe", DataServiceServlet.GroupId.FRIENDS, order,
+        filter, 5, 10, Sets.newHashSet("money", "fame", "fortune"), token)).andReturn(data);
+
+    replay();
+    assertEquals(data, handler.handleGet(servletRequest, token));
+    verify();
+  }
+
+  public void testHandleGetFriendById() throws Exception {
+    EasyMock.expect(servletRequest.getPathInfo()).andReturn("/people/john.doe/@friends/jane.doe");
+
+    FakeGadgetToken token = new FakeGadgetToken();
+    ResponseItem<Person> data = new ResponseItem<Person>(null);
+    // TODO: This isn't right! We should be passing both john.doe and jane.doe to the service
+    // We probably need to either change the getPerson parameters or add a new method to
+    // the interface
+    EasyMock.expect(personService.getPerson("john.doe", token)).andReturn(data);
+
+    replay();
+    assertEquals(data, handler.handleGet(servletRequest, token));
+    verify();
+  }
+
+  public void testHandleGetSelf() throws Exception {
+    EasyMock.expect(servletRequest.getPathInfo()).andReturn("/people/john.doe/@self");
 
-  public void testgetParamsFromRequest() throws Exception {
-    HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class);
-    EasyMock.expect(req.getPathInfo()).andReturn("/people/5/@self");
-    DataRequestHandler drh = new DataRequestHandler(null) {
-      ResponseItem handleDelete(HttpServletRequest servletRequest,
-          SecurityToken token) {
-        return null;
-      }
-
-      ResponseItem handlePut(HttpServletRequest servletRequest,
-          SecurityToken token) {
-        return null;
-      }
-
-      ResponseItem handlePost(HttpServletRequest servletRequest,
-          SecurityToken token) {
-        return null;
-      }
-
-      ResponseItem handleGet(HttpServletRequest servletRequest,
-          SecurityToken token) {
-        return null;
-      }
-    };
-
-    EasyMock.replay(req);
-    String[] params = drh.getParamsFromRequest(req);
-    assertEquals("5", params[0]);
-    assertEquals("@self", params[1]);
-    EasyMock.verify(req);
+    FakeGadgetToken token = new FakeGadgetToken();
+    ResponseItem<Person> data = new ResponseItem<Person>(null);
+    EasyMock.expect(personService.getPerson("john.doe", token)).andReturn(data);
+
+    replay();
+    assertEquals(data, handler.handleGet(servletRequest, token));
+    verify();
   }
 }
\ No newline at end of file