Skip to content

Commit 9d5ebb0

Browse files
committed
test: add case
1 parent 6cc1cc2 commit 9d5ebb0

File tree

5 files changed

+328
-129
lines changed

5 files changed

+328
-129
lines changed

AVOS/LeanCloudObjcTests/LCUserTestCase.swift

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,198 @@ class LCUserTestCase: BaseTestCase {
109109
LCUser.logOut()
110110
*/
111111
}
112+
113+
func testFriendshipRequestAccept() {
114+
let openid_1 = uuid
115+
let openid_2 = uuid
116+
117+
let user_1 = LCUser()
118+
expecting { exp in
119+
user_1.login(withAuthData: ["openid": openid_1], platformId: "test", options: nil) { succeeded, error in
120+
XCTAssertTrue(succeeded)
121+
XCTAssertNil(error)
122+
exp.fulfill()
123+
}
124+
}
125+
126+
guard let _ = user_1.objectId,
127+
LCUser.current() === user_1 else {
128+
XCTFail()
129+
return
130+
}
131+
LCUser.logOut()
132+
133+
let user_2 = LCUser()
134+
expecting { exp in
135+
user_2.login(withAuthData: ["openid": openid_2], platformId: "test", options: nil) { succeeded, error in
136+
XCTAssertTrue(succeeded)
137+
XCTAssertNil(error)
138+
exp.fulfill()
139+
}
140+
}
141+
142+
guard let _ = user_2.objectId,
143+
LCUser.current() === user_2 else {
144+
XCTFail()
145+
return
146+
}
147+
148+
expecting { exp in
149+
LCFriendship.request(withUserId: user_1.objectId!, attributes: ["group": "sport"]) { succeeded, error in
150+
XCTAssertTrue(succeeded)
151+
XCTAssertNil(error)
152+
exp.fulfill()
153+
}
154+
}
155+
156+
LCUser.logOut()
157+
158+
var query: LCQuery!
159+
expecting(description: "Accept Friendship Request", count: 3) { exp in
160+
user_1.login(withAuthData: ["openid": openid_1], platformId: "test", options: nil) { succeeded, error in
161+
XCTAssertNil(error)
162+
exp.fulfill()
163+
if succeeded {
164+
query = LCFriendshipRequest.query()
165+
query.findObjectsInBackground { requests, error in
166+
let request = requests?.first as? LCFriendshipRequest
167+
let friend = request?["friend"] as? LCUser
168+
let user = request?["user"] as? LCUser
169+
XCTAssertNotNil(request)
170+
XCTAssertNotNil(friend)
171+
XCTAssertNotNil(user)
172+
XCTAssertNil(error)
173+
exp.fulfill()
174+
if let request = request {
175+
LCFriendship.accept(request, attributes: ["group": "music"]) { succeeded, error in
176+
XCTAssertTrue(succeeded)
177+
XCTAssertNil(error)
178+
exp.fulfill()
179+
}
180+
}
181+
}
182+
}
183+
}
184+
}
185+
186+
expecting { exp in
187+
user_1.getFolloweeObjects { followees, error in
188+
let followee = followees?.first as? LCObject
189+
XCTAssertNotNil(followee)
190+
XCTAssertEqual(followee?["group"] as? String, "music")
191+
XCTAssertNil(error)
192+
exp.fulfill()
193+
}
194+
}
195+
196+
LCUser.logOut()
197+
198+
expecting(count: 4) { exp in
199+
user_2.login(withAuthData: ["openid": openid_2], platformId: "test", options: nil) { succeeded, error in
200+
XCTAssertNil(error)
201+
exp.fulfill()
202+
if succeeded {
203+
user_2.getFolloweeObjects { followees, error in
204+
let followee = followees?.first as? LCObject
205+
XCTAssertNotNil(followee)
206+
XCTAssertEqual(followee?["group"] as? String, "sport")
207+
XCTAssertNil(error)
208+
exp.fulfill()
209+
if let followee = followee {
210+
followee["group"] = "music"
211+
followee.saveInBackground { succeeded, error in
212+
XCTAssertNil(error)
213+
exp.fulfill()
214+
if succeeded {
215+
user_2.unfollow(user_1.objectId!) { succeeded, error in
216+
XCTAssertTrue(succeeded)
217+
XCTAssertNil(error)
218+
exp.fulfill()
219+
}
220+
}
221+
}
222+
}
223+
}
224+
}
225+
}
226+
}
227+
228+
LCUser.logOut()
229+
}
230+
231+
func testFriendshipRequestDecline() {
232+
let openid_1 = uuid
233+
let openid_2 = uuid
234+
235+
let user_1 = LCUser()
236+
expecting { exp in
237+
user_1.login(withAuthData: ["openid": openid_1], platformId: "test", options: nil) { succeeded, error in
238+
XCTAssertTrue(succeeded)
239+
XCTAssertNil(error)
240+
exp.fulfill()
241+
}
242+
}
243+
244+
guard let _ = user_1.objectId,
245+
LCUser.current() === user_1 else {
246+
XCTFail()
247+
return
248+
}
249+
LCUser.logOut()
250+
251+
let user_2 = LCUser()
252+
expecting { exp in
253+
user_2.login(withAuthData: ["openid": openid_2], platformId: "test", options: nil) { succeeded, error in
254+
XCTAssertTrue(succeeded)
255+
XCTAssertNil(error)
256+
exp.fulfill()
257+
}
258+
}
259+
260+
guard let _ = user_2.objectId,
261+
LCUser.current() === user_2 else {
262+
XCTFail()
263+
return
264+
}
265+
266+
expecting { exp in
267+
LCFriendship.request(withUserId: user_1.objectId!, attributes: ["group": "sport"]) { succeeded, error in
268+
XCTAssertTrue(succeeded)
269+
XCTAssertNil(error)
270+
exp.fulfill()
271+
}
272+
}
273+
274+
LCUser.logOut()
275+
276+
var query: LCQuery!
277+
expecting(description: "Decline Friendship Request", count: 3) { exp in
278+
user_1.login(withAuthData: ["openid": openid_1], platformId: "test", options: nil) { succeeded, error in
279+
XCTAssertNil(error)
280+
exp.fulfill()
281+
if succeeded {
282+
query = LCFriendshipRequest.query()
283+
query.findObjectsInBackground { requests, error in
284+
let request = requests?.first as? LCFriendshipRequest
285+
let friend = request?["friend"] as? LCUser
286+
let user = request?["user"] as? LCUser
287+
XCTAssertNotNil(request)
288+
XCTAssertNotNil(friend)
289+
XCTAssertNotNil(user)
290+
XCTAssertNil(error)
291+
exp.fulfill()
292+
if let request = request {
293+
LCFriendship.declineRequest(request) { succeeded, error in
294+
XCTAssertTrue(succeeded)
295+
XCTAssertNil(error)
296+
exp.fulfill()
297+
}
298+
}
299+
}
300+
}
301+
}
302+
}
303+
304+
LCUser.logOut()
305+
}
112306
}

AVOS/Sources/Foundation/Status/LCStatus.h

Lines changed: 0 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -164,96 +164,6 @@ typedef void (^LCStatusResultBlock)(LCStatus * _Nullable status, NSError * _Null
164164
-(void)sendInBackgroundWithBlock:(LCBooleanResultBlock)block;
165165
@end
166166

167-
/**
168-
* 用户好友关系
169-
*/
170-
@interface LCUser(Friendship)
171-
172-
/* @name 好友关系 */
173-
174-
/**
175-
* 获取用户粉丝LCQuery
176-
*
177-
* @param userObjectId 用户ID
178-
*
179-
* @return 用于查询的LCQuery
180-
*/
181-
+(LCQuery*)followerQuery:(NSString*)userObjectId;
182-
183-
/**
184-
* 获取本用户粉丝LCQuery
185-
*
186-
* @return 用于查询的LCQuery
187-
*/
188-
-(LCQuery*)followerQuery;
189-
190-
/**
191-
* 获取用户关注LCQuery
192-
*
193-
* @param userObjectId 用户ID
194-
*
195-
* @return 用于查询的LCQuery
196-
*/
197-
+(LCQuery*)followeeQuery:(NSString*)userObjectId;
198-
199-
/**
200-
* 获取本用户关注LCQuery
201-
*
202-
* @return 用于查询的LCQuery
203-
*/
204-
-(LCQuery*)followeeQuery;
205-
206-
/**
207-
* 通过ID来关注其他用户
208-
* @warning 如果需要被关注者收到消息 需要手动给他发送一条LCStatus.
209-
* @param userId 要关注的用户objectId
210-
* @param callback 回调结果
211-
*/
212-
-(void)follow:(NSString*)userId andCallback:(LCBooleanResultBlock)callback;
213-
214-
/**
215-
* 通过ID来关注其他用户
216-
* @warning 如果需要被关注者收到消息 需要手动给他发送一条LCStatus.
217-
* @param userId 要关注的用户objectId
218-
* @param dictionary 添加的自定义属性
219-
* @param callback 回调结果
220-
*/
221-
-(void)follow:(NSString*)userId userDictionary:(nullable NSDictionary *)dictionary andCallback:(LCBooleanResultBlock)callback;
222-
223-
/**
224-
* 通过ID来取消关注其他用户
225-
*
226-
* @param userId 要取消关注的用户objectId
227-
* @param callback 回调结果
228-
*
229-
*/
230-
-(void)unfollow:(NSString*)userId andCallback:(LCBooleanResultBlock)callback;
231-
232-
/**
233-
* 获取当前用户粉丝的列表
234-
*
235-
* @param callback 回调结果
236-
*/
237-
-(void)getFollowers:(LCArrayResultBlock)callback;
238-
239-
/**
240-
* 获取当前用户所关注的列表
241-
*
242-
* @param callback 回调结果
243-
*
244-
*/
245-
-(void)getFollowees:(LCArrayResultBlock)callback;
246-
247-
/**
248-
* 同时获取当前用户的粉丝和关注列表
249-
*
250-
* @param callback 回调结果, 列表字典包含`followers`数组和`followees`数组
251-
*/
252-
-(void)getFollowersAndFollowees:(LCDictionaryResultBlock)callback;
253-
254-
255-
@end
256-
257167
/**
258168
* 查询LCStatus
259169
*/

AVOS/Sources/Foundation/User/LCFriendship.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ + (LCQuery *)query {
2323
LCQuery *query = [LCQuery queryWithClassName:[self className]];
2424
[query whereKey:@"friend" equalTo:[LCUser currentUser]];
2525
[query whereKey:@"status" equalTo:@"pending"];
26+
[query includeKey:@"user"];
2627
return query;
2728
}
2829

0 commit comments

Comments
 (0)