/** * Create an instance of {@link CollectionOptions} from the provided {@code request}. * * @param requestItem * @return a suitable instance of {@link CollectionOptions}, never {@code null}. */ public CollectionOptions create(RequestItem requestItem) { return new CollectionOptions(requestItem); } }
/** * Create an instance of {@link CollectionOptions} from the provided {@code request}. * * @param requestItem * @return a suitable instance of {@link CollectionOptions}, never {@code null}. */ public CollectionOptions create(RequestItem requestItem) { return new CollectionOptions(requestItem); } }
@Operation(httpMethods = "GET") public Future<?> get(SocialRequestItem request) throws ProtocolException { Set<UserId> userIds = request.getUsers(); CollectionOptions options = new CollectionOptions(request); // Preconditions HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Only one userId must be specified"); return service.getGroups(userIds.iterator().next(), options, request.getFields(), request.getToken()); } }
@Test public void testOptionalParams() throws Exception { CollectionOptions op = new CollectionOptions(request); Map<String, String> optionalParams = op.getOptionalParameter(); Map<String, String> optionalParams1 = Maps.newHashMap(); optionalParams1.put("condition1","cvalue1"); optionalParams1.put("condition2","cvalue2"); assertEquals(optionalParams, optionalParams1); } }
@Test public void testOptionalParams() throws Exception { CollectionOptions op = new CollectionOptions(request); Map<String, String> optionalParams = op.getOptionalParameter(); Map<String, String> optionalParams1 = Maps.newHashMap(); optionalParams1.put("condition1","cvalue1"); optionalParams1.put("condition2","cvalue2"); assertEquals(optionalParams, optionalParams1); } }
@Test public void testGetMessagesNoMessageIds() throws Exception { RestfulCollection<Message> messages = db.getMessages( CANON_USER, "publicMessage", Collections.<String>emptySet(), Collections.<String>emptyList(), new CollectionOptions(), token).get(); assertEquals(4, messages.getList().size()); }
@Test public void testGetMessagesNoMessageIds() throws Exception { RestfulCollection<Message> messages = db.getMessages( CANON_USER, "publicMessage", Collections.<String>emptySet(), Collections.<String>emptyList(), new CollectionOptions(), token).get(); assertEquals(4, messages.getList().size()); }
@Test public void testGetMessagesSingleId() throws Exception { RestfulCollection<Message> messages = db.getMessages( CANON_USER, "publicMessage", Collections.<String>emptySet(), Collections.<String>singletonList("1"), new CollectionOptions(), token).get(); assertEquals(1, messages.getList().size()); assertEquals("1", messages.getList().get(0).getId()); }
@Test public void testGetMessagesSingleId() throws Exception { RestfulCollection<Message> messages = db.getMessages( CANON_USER, "publicMessage", Collections.<String>emptySet(), Collections.<String>singletonList("1"), new CollectionOptions(), token).get(); assertEquals(1, messages.getList().size()); assertEquals("1", messages.getList().get(0).getId()); }
@Test public void testCreateMessage() throws Exception { // Create a new private message Message msg = new MessageImpl(); msg.setBody("Hello"); msg.setRecipients(Collections.singletonList(JANE_DOE.getUserId())); db.createMessage(JOHN_DOE, APP_ID, "privateMessage", msg, token).get(); // Check that the message was created RestfulCollection<Message> messages = db.getMessages( JANE_DOE, "privateMessage", Collections.<String>emptySet(), Collections.<String>singletonList(msg.getId()), new CollectionOptions(), token).get(); assertEquals(1, messages.getList().size()); } }
@Test public void testCreateMessage() throws Exception { // Create a new private message Message msg = new MessageImpl(); msg.setBody("Hello"); msg.setRecipients(Collections.singletonList(JANE_DOE.getUserId())); db.createMessage(JOHN_DOE, APP_ID, "privateMessage", msg, token).get(); // Check that the message was created RestfulCollection<Message> messages = db.getMessages( JANE_DOE, "privateMessage", Collections.<String>emptySet(), Collections.<String>singletonList(msg.getId()), new CollectionOptions(), token).get(); assertEquals(1, messages.getList().size()); } }
@Operation(httpMethods = "GET") public Future<?> get(SocialRequestItem request) throws ProtocolException { Set<UserId> userIds = request.getUsers(); String msgCollId = request.getParameter("msgCollId"); List<String> messageIds = request.getListParameter("messageIds"); CollectionOptions options = new CollectionOptions(request); HandlerPreconditions.requireNotEmpty(userIds, "No userId specified"); HandlerPreconditions.requireSingular(userIds, "Multiple userIds not supported"); UserId user = request.getUsers().iterator().next(); if (msgCollId == null) { // No message collection specified, return list of message collections Set<String> fields = request.getFields(MessageCollection.Field.ALL_FIELDS); return service.getMessageCollections(user, fields, options, request.getToken()); } // If messageIds are specified return them, otherwise return entries in the given collection. Set<String> fields = request.getFields(Message.Field.ALL_FIELDS); return service.getMessages(user, msgCollId, fields, messageIds, options, request.getToken()); }
@Test public void getJohnDoeFriendsActivities() throws Exception { Future<RestfulCollection<Activity>> result = this.activityServiceDb.getActivities(SpiTestUtil.buildUserIds("john.doe"), new GroupId(GroupId.Type.friends, "@friends"), null, ACTIVITY_ALL_FIELDS, new CollectionOptions(), SpiTestUtil.DEFAULT_TEST_SECURITY_TOKEN); RestfulCollection<Activity> activityCollection = result.get(); assertEquals(2, activityCollection.getTotalResults()); assertEquals(0, activityCollection.getStartIndex()); }
@Test public void getJohnDoeActivities() throws Exception { Future<RestfulCollection<Activity>> result = this.activityServiceDb.getActivities(SpiTestUtil.buildUserIds("john.doe"), new GroupId(GroupId.Type.self, "@self"), null, ACTIVITY_ALL_FIELDS, new CollectionOptions(), SpiTestUtil.DEFAULT_TEST_SECURITY_TOKEN); RestfulCollection<Activity> activityCollection = result.get(); assertEquals(1, activityCollection.getTotalResults()); assertEquals(0, activityCollection.getStartIndex()); SpiTestUtil.assertActivityEquals(activityCollection.getEntry().get(0), testActivity); }
@Test public void testGetExpectedUsersForPlural() throws Exception { CollectionOptions options = new CollectionOptions(); options.setSortBy(PersonService.TOP_FRIENDS_SORT); options.setSortOrder(SortOrder.ascending); options.setFilter(null); options.setFilterOperation(FilterOperation.contains); options.setFilterValue(""); options.setFirst(0); options.setMax(20); RestfulCollection<Person> responseItem = db.getPeople( ImmutableSet.of(JOHN_DOE, JANE_DOE), new GroupId(GroupId.Type.friends, null), options, Collections.<String>emptySet(), token).get(); assertNotNull(responseItem); assertEquals(4, responseItem.getTotalResults()); // Test a couple of users assertEquals("john.doe", responseItem.getList().get(0).getId()); assertEquals("jane.doe", responseItem.getList().get(1).getId()); }
@Test public void testGetExpectedFriends() throws Exception { CollectionOptions options = new CollectionOptions(); options.setSortBy(PersonService.TOP_FRIENDS_SORT); options.setSortOrder(SortOrder.ascending); options.setFilter(null); options.setFilterOperation(FilterOperation.contains); options.setFilterValue(""); options.setFirst(0); options.setMax(20); RestfulCollection<Person> responseItem = db.getPeople( ImmutableSet.of(CANON_USER), new GroupId(GroupId.Type.friends, null), options, Collections.<String>emptySet(), token).get(); assertNotNull(responseItem); assertEquals(4, responseItem.getTotalResults()); // Test a couple of users assertEquals("john.doe", responseItem.getEntry().get(0).getId()); assertEquals("jane.doe", responseItem.getEntry().get(1).getId()); }
@Test public void testGetExpectedUsersForPlural() throws Exception { CollectionOptions options = new CollectionOptions(); options.setSortBy(PersonService.TOP_FRIENDS_SORT); options.setSortOrder(SortOrder.ascending); options.setFilter(null); options.setFilterOperation(FilterOperation.contains); options.setFilterValue(""); options.setFirst(0); options.setMax(20); RestfulCollection<Person> responseItem = db.getPeople( ImmutableSet.of(JOHN_DOE, JANE_DOE), new GroupId(GroupId.Type.friends, null), options, Collections.<String>emptySet(), token).get(); assertNotNull(responseItem); assertEquals(4, responseItem.getTotalResults()); // Test a couple of users assertEquals("john.doe", responseItem.getEntry().get(0).getId()); assertEquals("jane.doe", responseItem.getEntry().get(1).getId()); }
@Test public void testGetExpectedUsersForPlural() throws Exception { CollectionOptions options = new CollectionOptions(); options.setSortBy(PersonService.TOP_FRIENDS_SORT); options.setSortOrder(SortOrder.ascending); options.setFilter(null); options.setFilterOperation(FilterOperation.contains); options.setFilterValue(""); options.setFirst(0); options.setMax(20); RestfulCollection<Person> responseItem = db.getPeople( ImmutableSet.of(JOHN_DOE, JANE_DOE), new GroupId(GroupId.Type.friends, null), options, Collections.<String>emptySet(), token).get(); assertNotNull(responseItem); assertEquals(4, responseItem.getTotalResults()); // Test a couple of users assertEquals("john.doe", responseItem.getList().get(0).getId()); assertEquals("jane.doe", responseItem.getList().get(1).getId()); }
@Test public void getJohnDoeFriendsOrderedByName() throws Exception { // Set collection options CollectionOptions collectionOptions = new CollectionOptions(); collectionOptions.setSortBy("name"); collectionOptions.setSortOrder(SortOrder.ascending); collectionOptions.setMax(20); // Get all friends of john.doe Future<RestfulCollection<Person>> result = this.personServiceDb.getPeople(SpiTestUtil.buildUserIds("john.doe"), new GroupId(GroupId.Type.friends, "@friends"), collectionOptions, Person.Field.ALL_FIELDS, SpiTestUtil.DEFAULT_TEST_SECURITY_TOKEN); RestfulCollection<Person> peopleCollection = result.get(); assertEquals(3, peopleCollection.getTotalResults()); assertEquals(0, peopleCollection.getStartIndex()); List<Person> people = peopleCollection.getEntry(); // The users should be in alphabetical order SpiTestUtil.assertPersonEquals(people.get(0), "george.doe", "George Doe"); SpiTestUtil.assertPersonEquals(people.get(1), "jane.doe", "Jane Doe"); }
@Test public void createNewActivityForJohnDoe() throws Exception { // Create new activity final String title = "hi mom!"; final String body = "and dad."; Activity activity = SpiTestUtil.buildTestActivity("2", "john.doe", title, body); this.activityServiceDb.createActivity(new UserId(Type.userId, "john.doe"), new GroupId(GroupId.Type.self, "@self"), "2", ACTIVITY_ALL_FIELDS, activity, SpiTestUtil.DEFAULT_TEST_SECURITY_TOKEN); // Check activity was created as expected Future<RestfulCollection<Activity>> result = this.activityServiceDb.getActivities(SpiTestUtil.buildUserIds("john.doe"), new GroupId(GroupId.Type.self, "@self"), null, ACTIVITY_ALL_FIELDS, new CollectionOptions(), SpiTestUtil.DEFAULT_TEST_SECURITY_TOKEN); RestfulCollection<Activity> activityCollection = result.get(); assertEquals(2, activityCollection.getTotalResults()); assertEquals(0, activityCollection.getStartIndex()); activity = activityCollection.getEntry().get(1); assertEquals(activity.getTitle(), title); assertEquals(activity.getBody(), body); }