PageRenderTime 52ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/twitter4j-core/src/test/java/twitter4j/ListResourcesTest.java

http://github.com/yusuke/twitter4j
Java | 341 lines | 253 code | 53 blank | 35 comment | 14 complexity | b8c2d2c53a60c3f526a9d1b8605ecf00 MD5 | raw file
Possible License(s): Apache-2.0
  1. /*
  2. * Copyright 2007 Yusuke Yamamoto
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package twitter4j;
  17. import org.junit.jupiter.api.Disabled;
  18. import org.junit.jupiter.api.Test;
  19. import java.util.List;
  20. import static org.junit.jupiter.api.Assertions.*;
  21. /**
  22. * @author Yusuke Yamamoto - yusuke at mac.com
  23. * @since Twitter4J 2.2.4
  24. */
  25. class ListResourcesTest extends TwitterTestBase {
  26. @Test
  27. void testListMethods() throws Exception {
  28. ResponseList<UserList> userLists;
  29. UserList userList;
  30. userList = prepareListTest();
  31. /*List Methods*/
  32. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  33. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  34. assertNotNull(userList);
  35. assertNotNull(userList.getName());
  36. assertNotNull(userList.getDescription());
  37. userLists = twitter1.getUserLists(id1.screenName);
  38. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  39. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  40. assertFalse(userLists.size() == 0);
  41. userLists = twitter1.getUserLists("@" + id1.screenName);
  42. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  43. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  44. assertFalse(userLists.size() == 0);
  45. userList = twitter1.showUserList(userList.getId());
  46. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  47. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  48. assertNotNull(userList);
  49. userList = twitter1.showUserList(twitter1.getId(), userList.getSlug());
  50. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  51. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  52. assertNotNull(userList);
  53. List<Status> statuses = twitter1.getUserListStatuses(userList.getId(), new Paging());
  54. if (statuses.size() > 0) {
  55. assertEquals(statuses.get(0), TwitterObjectFactory.createStatus(TwitterObjectFactory.getRawJSON(statuses.get(0))));
  56. }
  57. statuses = twitter1.getUserListStatuses(userList.getId(), new Paging());
  58. if (statuses.size() > 0) {
  59. assertEquals(statuses.get(0), TwitterObjectFactory.createStatus(TwitterObjectFactory.getRawJSON(statuses.get(0))));
  60. }
  61. assertNotNull(TwitterObjectFactory.getRawJSON(statuses));
  62. assertNull(TwitterObjectFactory.getRawJSON(userList));
  63. assertNotNull(statuses);
  64. userList = twitter1.updateUserList(userList.getId(), "testpoint2", true, "description2");
  65. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  66. // workarounding issue 2166
  67. // http://code.google.com/p/twitter-api/issues/detail?id=2166
  68. userList = twitter1.showUserList(userList.getId());
  69. assertTrue(userList.isPublic());
  70. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  71. assertNotNull(userList);
  72. assertEquals("testpoint2", userList.getName());
  73. assertEquals("description2", userList.getDescription());
  74. userList = twitter1.updateUserList(twitter1.getId(), userList.getSlug(), "testpoint3", true, "description3");
  75. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  76. assertTrue(userList.isPublic());
  77. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  78. assertNotNull(userList);
  79. assertEquals("testpoint3", userList.getName());
  80. assertEquals("description3", userList.getDescription());
  81. }
  82. @Disabled
  83. @Test
  84. void testListMemberMethods() throws Exception {
  85. PagableResponseList<UserList> userLists;
  86. UserList userList;
  87. userList = prepareListTest();
  88. /*List Member Methods*/
  89. User user;
  90. userList = twitter1.createUserListMember(userList.getId(), id2.id);
  91. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  92. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  93. userList = twitter1.createUserListMembers(userList.getId(), id3.id);
  94. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  95. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  96. userList = twitter1.createUserListMembers(userList.getId(), new String[]{"yusukey", "yusuke"});
  97. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  98. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  99. assertNotNull(userList);
  100. PagableResponseList<User> users = twitter1.getUserListMembers(userList.getId(), -1);
  101. assertEquals(users.get(0), TwitterObjectFactory.createUser(TwitterObjectFactory.getRawJSON(users.get(0))));
  102. assertNotNull(TwitterObjectFactory.getRawJSON(users));
  103. assertNull(TwitterObjectFactory.getRawJSON(userList));
  104. users = twitter1.getUserListMembers(userList.getId(), -1);
  105. assertEquals(users.get(0), TwitterObjectFactory.createUser(TwitterObjectFactory.getRawJSON(users.get(0))));
  106. assertNotNull(TwitterObjectFactory.getRawJSON(users));
  107. assertEquals(4, users.size());
  108. userList = twitter1.destroyUserListMember(userList.getId(), id2.id);
  109. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  110. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  111. assertNotNull(userList);
  112. // member_count don't get decreased by destroyUserListMember. need to retrieve user list again
  113. userList = twitter1.showUserList(userList.getId());
  114. assertEquals(3, userList.getMemberCount());
  115. user = twitter1.showUserListMembership(userList.getId(), id3.id);
  116. assertNotNull(TwitterObjectFactory.getRawJSON(user));
  117. assertEquals(user, TwitterObjectFactory.createUser(TwitterObjectFactory.getRawJSON(user)));
  118. assertEquals(id3.id, user.getId());
  119. userLists = twitter1.getUserListMemberships(id1.screenName, -1L);
  120. assertNotNull(TwitterObjectFactory.getRawJSON(userLists));
  121. if (userLists.size() > 0) {
  122. assertEquals(userLists.get(0), TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userLists.get(0))));
  123. assertNotNull(userLists);
  124. }
  125. userLists = twitter1.getUserListMemberships("@" + id1.screenName, -1L);
  126. if (userLists.size() > 0) {
  127. assertNotNull(TwitterObjectFactory.getRawJSON(userLists));
  128. assertEquals(userLists.get(0), TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userLists.get(0))));
  129. assertNotNull(userLists);
  130. }
  131. userLists = twitter1.getUserListSubscriptions(id1.screenName, -1L);
  132. assertNotNull(TwitterObjectFactory.getRawJSON(userLists));
  133. if (userLists.size() > 0) {
  134. assertEquals(userLists.get(0), TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userLists.get(0))));
  135. }
  136. assertNotNull(userLists);
  137. assertEquals(0, userLists.size());
  138. userLists = twitter1.getUserListSubscriptions("@" + id1.screenName, -1L);
  139. assertNotNull(TwitterObjectFactory.getRawJSON(userLists));
  140. if (userLists.size() > 0) {
  141. assertEquals(userLists.get(0), TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userLists.get(0))));
  142. }
  143. assertNotNull(userLists);
  144. assertEquals(0, userLists.size());
  145. }
  146. @Disabled
  147. @Test
  148. void testRemoveListMembers() throws Exception {
  149. UserList userList;
  150. userList = prepareListTest();
  151. try {
  152. twitter1.showUserListMembership(userList.getId(), id2.id);
  153. } catch (TwitterException te) {
  154. assertEquals(404, te.getStatusCode());
  155. }
  156. PagableResponseList<User> users = twitter1.getUserListMembers(userList.getId(), -1);
  157. assertNotNull(TwitterObjectFactory.getRawJSON(users));
  158. // Add user by id
  159. userList = twitter1.createUserListMember(userList.getId(), id2.id);
  160. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  161. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  162. // Remove by screenName
  163. userList = twitter1.destroyUserListMember(userList.getId(), id2.screenName);
  164. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  165. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  166. assertNotNull(userList);
  167. userList = twitter1.showUserList(userList.getId());
  168. // Add 2 users by screenName
  169. String[] screenNames = new String[]{"yusukey", "yusuke"};
  170. userList = twitter1.createUserListMembers(userList.getId(), screenNames);
  171. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  172. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  173. twitter1.getUserListMembers(userList.getId(), -1);
  174. // Remove 2 by screen name
  175. userList = twitter1.destroyUserListMembers(userList.getUser().getScreenName(), userList.getSlug(), screenNames);
  176. userList = twitter1.showUserList(userList.getId());
  177. userList = twitter1.createUserListMembers(userList.getId(), screenNames);
  178. userList = twitter1.destroyUserListMembers("@" + userList.getUser().getScreenName(), userList.getSlug(), screenNames);
  179. userList = twitter1.showUserList(userList.getId());
  180. // Add 2 users by ids
  181. long[] userIds = new long[]{id1.id, id2.id};
  182. userList = twitter1.createUserListMembers(userList.getId(), userIds);
  183. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  184. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  185. twitter1.getUserListMembers(userList.getId(), -1);
  186. // Remove 2 by screen name
  187. userList = twitter1.destroyUserListMembers(userList.getId(), userIds);
  188. twitter1.showUserList(userList.getId());
  189. }
  190. @Disabled
  191. @Test
  192. void testListSubscribersMethods() throws Exception {
  193. PagableResponseList<UserList> userLists;
  194. UserList userList;
  195. userList = prepareListTest();
  196. /*List Subscribers Methods*/
  197. PagableResponseList<User> users;
  198. users = twitter1.getUserListSubscribers(twitter1.getId(), userList.getSlug(), -1L);
  199. assertNotNull(TwitterObjectFactory.getRawJSON(users));
  200. twitter2.createUserListSubscription(userList.getId());
  201. twitter2.destroyUserListSubscription(userList.getId());
  202. users = twitter1.getUserListSubscribers("twitterapi", "team", -1L);
  203. assertTrue(0 <= users.size());
  204. User user;
  205. user = twitter1.showUserListSubscription("twitterapi", "team", 4933401);
  206. assertNotNull(TwitterObjectFactory.getRawJSON(user));
  207. assertEquals(user, TwitterObjectFactory.createUser(TwitterObjectFactory.getRawJSON(user)));
  208. assertEquals("yusuke", user.getScreenName());
  209. userLists = twitter1.getUserListSubscriptions("yusuke", -1L);
  210. assertNotNull(userLists);
  211. if (userLists.size() > 0) {
  212. assertEquals(userLists.get(0), TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userLists.get(0))));
  213. }
  214. userList = twitter1.destroyUserList(userList.getId());
  215. assertNotNull(TwitterObjectFactory.getRawJSON(userList));
  216. assertEquals(userList, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(userList)));
  217. assertNotNull(userList);
  218. }
  219. // test case for TFJ-726
  220. @Test
  221. void testPagingCountDosentWork1() throws TwitterException {
  222. final int COUNT = 10;
  223. Paging paging = new Paging();
  224. paging.count(COUNT);
  225. // twitterapi/team
  226. ResponseList<Status> res =
  227. twitter1
  228. .getUserListStatuses(6253282L, "team", paging);
  229. int actual = res.size();
  230. assertTrue(
  231. actual <= COUNT, String.format(
  232. "Twitter#getUserListStatuses(userId, slug, new Paging().count(%d)).size() must be equal or less than %d, but %d",
  233. COUNT,
  234. COUNT,
  235. actual)
  236. );
  237. }
  238. // test case for TFJ-726
  239. @Test
  240. void testPagingCountDosentWork2() throws TwitterException {
  241. final int COUNT = 10;
  242. Paging paging = new Paging();
  243. paging.count(COUNT);
  244. // twitterapi/team
  245. ResponseList<Status> res =
  246. twitter1
  247. .getUserListStatuses(2031945, paging);
  248. int actual = res.size();
  249. assertTrue(
  250. actual <= COUNT,
  251. String.format(
  252. "Twitter#getUserListStatuses(userId, slug, new Paging().count(%d)).size() must be equal or less than %d, but %d",
  253. COUNT,
  254. COUNT,
  255. actual)
  256. );
  257. }
  258. @Test
  259. void testUserListsOwnerships() throws Exception {
  260. PagableResponseList<UserList> lists;
  261. lists = twitter1.getUserListsOwnerships("yusuke", 3, -1);
  262. assertTrue(lists.size() > 0);
  263. lists = twitter1.getUserListsOwnerships(4933401L, 3, -1);
  264. assertTrue(lists.size() > 0);
  265. assertNotNull(lists.get(0).getCreatedAt());
  266. }
  267. private UserList prepareListTest() throws Exception {
  268. ResponseList<UserList> userLists;
  269. userLists = twitter1.getUserLists(id1.screenName);
  270. assertNotNull(TwitterObjectFactory.getRawJSON(userLists));
  271. UserList list = null;
  272. for (UserList alist : userLists) {
  273. if (alist.getSlug().equals("testpoint1")) {
  274. list = alist;
  275. } else {
  276. UserList deletedLiet = twitter1.destroyUserList(twitter1.getId(), alist.getSlug());
  277. assertNotNull(TwitterObjectFactory.getRawJSON(deletedLiet));
  278. assertEquals(deletedLiet, TwitterObjectFactory.createUserList(TwitterObjectFactory.getRawJSON(deletedLiet)));
  279. assertNotNull(deletedLiet);
  280. }
  281. }
  282. if (list == null) {
  283. list = twitter1.createUserList("testpoint1", true, "description1");
  284. }
  285. Thread.sleep(5000);
  286. return list;
  287. }
  288. }