/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.camel.component.facebook;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import facebook4j.TestUser;
import org.apache.camel.builder.RouteBuilder;
import org.junit.Test;
/**
* Test methods in {@link facebook4j.api.TestUserMethods}
*/
public class TestUserMethodsTest extends CamelFacebookTestSupport {
private static final String TEST_USER1 = "test one";
private static final String TEST_USER2 = "test two";
public TestUserMethodsTest() throws Exception {
}
@Test
public void testTestUsers() {
// create a test user with exchange properties
final TestUser testUser1 = template().requestBody("direct:createTestUser", TEST_USER1, TestUser.class);
assertNotNull("Test User1", testUser1);
// create a test user with exchange properties
final TestUser testUser2 = template().requestBody("direct:createTestUser", TEST_USER2, TestUser.class);
assertNotNull("Test User2", testUser2);
// make friends, not enemies
final Map<String, Object> headers = new HashMap<String, Object>();
headers.put("CamelFacebook.testUser2", testUser2);
Boolean worked = template().requestBodyAndHeaders("direct:makeFriendTestUser", testUser1, headers, Boolean.class);
assertTrue("Friends not made", worked);
// get app test users
final List testUsers = template().requestBody("direct:testUsers", null, List.class);
assertNotNull("Test users", testUsers);
assertFalse("Empty test user list", testUsers.isEmpty());
// delete test users
for (Object user : testUsers) {
final TestUser testUser = (TestUser) user;
if (testUser.equals(testUser1) || testUser.equals(testUser2)) {
final String id = testUser.getId();
worked = template().requestBody("direct:deleteTestUser", id, Boolean.class);
assertTrue("Test user not deleted for id " + id, worked);
}
}
}
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:createTestUser")
.to("facebook://createTestUser?inBody=name&appId=" + properties.get("oAuthAppId")
+ "&userLocale=" + Locale.getDefault().toString()
+ "&permissions=" + getTestPermissions()
+ "&" + getAppOauthParams());
// note short form testUsers instead of getTestUsers
from("direct:testUsers")
.to("facebook://testUsers?appId=" + properties.get("oAuthAppId") + "&" + getAppOauthParams());
from("direct:makeFriendTestUser")
.to("facebook://makeFriendTestUser?inBody=testUser1&" + getAppOauthParams());
from("direct:deleteTestUser")
.to("facebook://deleteTestUser?inBody=testUserId&" + getAppOauthParams());
}
};
}
public String getTestPermissions() {
return "email"
+ ",publish_actions"
+ ",user_about_me"
+ ",user_activities"
+ ",user_birthday"
+ ",user_checkins"
+ ",user_education_history"
+ ",user_events"
+ ",user_games_activity"
+ ",user_groups"
+ ",user_hometown"
+ ",user_interests"
+ ",user_likes"
+ ",user_location"
+ ",user_notes"
+ ",user_photos"
+ ",user_questions"
+ ",user_relationship_details"
+ ",user_relationships"
+ ",user_religion_politics"
+ ",user_status"
+ ",user_subscriptions"
+ ",user_videos"
+ ",user_website"
+ ",user_work_history"
+ ",friends_about_me"
+ ",friends_activities"
+ ",friends_birthday"
+ ",friends_checkins"
+ ",friends_education_history"
+ ",friends_events"
+ ",friends_games_activity"
+ ",friends_groups"
+ ",friends_hometown"
+ ",friends_interests"
+ ",friends_likes"
+ ",friends_location"
+ ",friends_notes"
+ ",friends_photos"
+ ",friends_questions"
+ ",friends_relationship_details"
+ ",friends_relationships"
+ ",friends_religion_politics"
+ ",friends_status"
+ ",friends_subscriptions"
+ ",friends_videos"
+ ",friends_website"
+ ",friends_work_history"
+ ",ads_management"
+ ",create_event"
+ ",create_note"
+ ",export_stream"
+ ",friends_online_presence"
+ ",manage_friendlists"
+ ",manage_notifications"
+ ",manage_pages"
+ ",photo_upload"
+ ",publish_checkins"
+ ",publish_stream"
+ ",read_friendlists"
+ ",read_insights"
+ ",read_mailbox"
+ ",read_page_mailboxes"
+ ",read_requests"
+ ",read_stream"
+ ",rsvp_event"
+ ",share_item"
+ ",sms"
+ ",status_update"
+ ",user_online_presence"
+ ",video_upload"
+ ",xmpp_login";
}
}