@@ -27,57 +27,9 @@ class LCLeaderboardTestCase: BaseTestCase {
2727 exp. fulfill ( )
2828 }
2929 }
30-
31- let option = LCLeaderboardQueryOption ( )
32- option. selectKeys = [ uuid]
33- option. includeKeys = [ uuid]
34-
35- expecting { exp in
36- LCLeaderboard . getStatisticsWithUserId ( uuid, statisticNames: nil , option: option) { statistics, error in
37- XCTAssertNil ( statistics)
38- XCTAssertNotNil ( error)
39- exp. fulfill ( )
40- }
41- }
42-
43- let leaderboard = LCLeaderboard ( statisticName: uuid)
44-
45- expecting { exp in
46- leaderboard. getStatisticsWithUserIds ( [ uuid] , option: option) { statistics, error in
47- XCTAssertNil ( statistics)
48- XCTAssertNotNil ( error)
49- exp. fulfill ( )
50- }
51- }
52-
53- expecting { exp in
54- leaderboard. getUserResults ( with: option) { rankings, count, error in
55- XCTAssertNil ( rankings)
56- XCTAssertEqual ( count, - 1 )
57- XCTAssertNotNil ( error)
58- exp. fulfill ( )
59- }
60- }
61-
62- expecting { exp in
63- leaderboard. getUserResultsAroundUser ( uuid, option: option) { rankings, count, error in
64- XCTAssertNil ( rankings)
65- XCTAssertEqual ( count, - 1 )
66- XCTAssertNotNil ( error)
67- exp. fulfill ( )
68- }
69- }
7030 }
7131
7232 func testInvalidParameter( ) {
73- let user = LCUser ( )
74- expecting { exp in
75- user. login ( withAuthData: [ " openid " : uuid] , platformId: " test " , options: nil ) { _, error in
76- XCTAssertNil ( error)
77- exp. fulfill ( )
78- }
79- }
80-
8133 expecting { exp in
8234 LCLeaderboard . updateCurrentUserStatistics ( [ : ] ) { statistics, error in
8335 XCTAssertNil ( statistics)
@@ -95,7 +47,7 @@ class LCLeaderboardTestCase: BaseTestCase {
9547 }
9648
9749 expecting { exp in
98- LCLeaderboard . getStatisticsWithUserId ( " " , statisticNames: nil , option : nil ) { statistics, error in
50+ LCLeaderboard . getStatisticsWithUserId ( " " , statisticNames: nil ) { statistics, error in
9951 XCTAssertNil ( statistics)
10052 XCTAssertNotNil ( error)
10153 exp. fulfill ( )
@@ -105,22 +57,16 @@ class LCLeaderboardTestCase: BaseTestCase {
10557 let leaderboard = LCLeaderboard ( statisticName: uuid)
10658
10759 expecting { exp in
108- leaderboard. getStatisticsWithUserIds ( [ ] , option : nil ) { statistics, error in
60+ leaderboard. getStatisticsWithUserIds ( [ ] ) { statistics, error in
10961 XCTAssertNil ( statistics)
11062 XCTAssertNotNil ( error)
11163 exp. fulfill ( )
11264 }
11365 }
114-
115- LCUser . logOut ( )
11666 }
11767
11868 func testGetUserStatistics( ) {
119- let object = LCObject ( )
120- XCTAssertTrue ( object. save ( ) )
12169 let user = LCUser ( )
122- let objectFieldKey = " objectField "
123- user [ objectFieldKey] = object
12470 expecting { exp in
12571 user. login ( withAuthData: [ " openid " : uuid] , platformId: " test " , options: nil ) { _, error in
12672 XCTAssertNil ( error)
@@ -132,8 +78,8 @@ class LCLeaderboardTestCase: BaseTestCase {
13278 return
13379 }
13480
135- let statisticName0 = " test0 "
136- let statisticName1 = " test1 "
81+ let statisticName0 = " test-user-0 "
82+ let statisticName1 = " test-user-1 "
13783
13884 expecting { exp in
13985 LCLeaderboard . updateCurrentUserStatistics (
@@ -152,15 +98,10 @@ class LCLeaderboardTestCase: BaseTestCase {
15298 }
15399 }
154100
155- let option = LCLeaderboardQueryOption ( )
156- option. selectKeys = [ " username " , objectFieldKey]
157- option. includeKeys = [ objectFieldKey]
158-
159101 expecting { exp in
160102 LCLeaderboard . getStatisticsWithUserId (
161103 userObjectId,
162- statisticNames: [ statisticName0, statisticName1] ,
163- option: option)
104+ statisticNames: [ statisticName0, statisticName1] )
164105 { statistics, error in
165106 XCTAssertEqual ( statistics? . count, 2 )
166107 XCTAssertNil ( error)
@@ -169,8 +110,7 @@ class LCLeaderboardTestCase: BaseTestCase {
169110 XCTAssertTrue ( [ statisticName0, statisticName1] . contains ( item. name ?? " " ) )
170111 XCTAssertEqual ( item. value, 100 )
171112 XCTAssertGreaterThanOrEqual ( item. version, 0 )
172- XCTAssertNotNil ( item. user ? [ " username " ] )
173- XCTAssertTrue ( item. user ? [ objectFieldKey] is LCObject )
113+ XCTAssertNotNil ( item. user)
174114 XCTAssertNil ( item. object)
175115 XCTAssertNil ( item. entity)
176116 }
@@ -182,26 +122,24 @@ class LCLeaderboardTestCase: BaseTestCase {
182122 let leaderboard1 = LCLeaderboard ( statisticName: statisticName1)
183123
184124 expecting ( count: 2 ) { exp in
185- leaderboard0. getStatisticsWithUserIds ( [ userObjectId] , option : option ) { statistics, error in
125+ leaderboard0. getStatisticsWithUserIds ( [ userObjectId] ) { statistics, error in
186126// XCTAssertEqual(statistics?.count, 1)
187127// XCTAssertNil(error)
188128// XCTAssertEqual(leaderboard0.statisticName, statistics?.first?.name)
189129// XCTAssertEqual(statistics?.first?.value, 100)
190130// XCTAssertGreaterThanOrEqual(statistics?.first?.version ?? -1, 0)
191- // XCTAssertNotNil(statistics?.first?.user?["username"])
192- // XCTAssertTrue(statistics?.first?.user?[objectFieldKey] is LCObject)
131+ // XCTAssertNotNil(statistics?.first?.user)
193132// XCTAssertNil(statistics?.first?.object)
194133// XCTAssertNil(statistics?.first?.entity)
195134 exp. fulfill ( )
196135 }
197- leaderboard1. getStatisticsWithUserIds ( [ userObjectId] , option : option ) { statistics, error in
136+ leaderboard1. getStatisticsWithUserIds ( [ userObjectId] ) { statistics, error in
198137// XCTAssertEqual(statistics?.count, 1)
199138// XCTAssertNil(error)
200139// XCTAssertEqual(leaderboard1.statisticName, statistics?.first?.name)
201140// XCTAssertEqual(statistics?.first?.value, 100)
202141// XCTAssertGreaterThanOrEqual(statistics?.first?.version ?? -1, 0)
203- // XCTAssertNotNil(statistics?.first?.user?["username"])
204- // XCTAssertTrue(statistics?.first?.user?[objectFieldKey] is LCObject)
142+ // XCTAssertNotNil(statistics?.first?.user)
205143// XCTAssertNil(statistics?.first?.object)
206144// XCTAssertNil(statistics?.first?.entity)
207145 exp. fulfill ( )
@@ -219,5 +157,93 @@ class LCLeaderboardTestCase: BaseTestCase {
219157 LCUser . logOut ( )
220158 }
221159
222-
160+ func testGetObjectStatistics( ) {
161+ let object = LCObject ( )
162+ let objectFieldKey = " objectField "
163+ object [ objectFieldKey] = LCObject ( )
164+ XCTAssertTrue ( object. save ( ) )
165+ guard let objectId = object. objectId else {
166+ XCTFail ( )
167+ return
168+ }
169+
170+ let statisticName0 = " test-object-0 "
171+ let statisticName1 = " test-object-1 "
172+
173+ useMasterKey ( )
174+ expecting { exp in
175+ LCLeaderboard . update (
176+ withIdentity: objectId,
177+ leaderboardPath: . objects,
178+ statistics: [
179+ statisticName0 : 100 ,
180+ statisticName1 : 100 ,
181+ ] )
182+ { statistics, error in
183+ XCTAssertEqual ( statistics? . count, 2 )
184+ XCTAssertNil ( error)
185+ XCTAssertNotEqual ( statistics? . first? . name, statistics? . last? . name)
186+ for item in statistics ?? [ ] {
187+ XCTAssertTrue ( [ statisticName0, statisticName1] . contains ( item. name ?? " " ) )
188+ XCTAssertEqual ( item. value, 100 )
189+ XCTAssertGreaterThanOrEqual ( item. version, 0 )
190+ }
191+ exp. fulfill ( )
192+ }
193+ }
194+ useCommonKey ( )
195+
196+ let option = LCLeaderboardQueryOption ( )
197+ option. selectKeys = [ objectFieldKey]
198+ option. includeKeys = [ objectFieldKey]
199+
200+ expecting { exp in
201+ LCLeaderboard . getStatisticsWithObjectId (
202+ objectId,
203+ statisticNames: [ statisticName0, statisticName1] ,
204+ option: option)
205+ { statistics, error in
206+ XCTAssertEqual ( statistics? . count, 2 )
207+ XCTAssertNil ( error)
208+ XCTAssertNotEqual ( statistics? . first? . name, statistics? . last? . name)
209+ for item in statistics ?? [ ] {
210+ XCTAssertTrue ( [ statisticName0, statisticName1] . contains ( item. name ?? " " ) )
211+ XCTAssertEqual ( item. value, 100 )
212+ XCTAssertGreaterThanOrEqual ( item. version, 0 )
213+ XCTAssertNotNil ( ( item. object ? [ objectFieldKey] as? LCObject ) ? . createdAt)
214+ XCTAssertNil ( item. user)
215+ XCTAssertNil ( item. entity)
216+ }
217+ exp. fulfill ( )
218+ }
219+ }
220+
221+ let leaderboard0 = LCLeaderboard ( statisticName: statisticName0)
222+ let leaderboard1 = LCLeaderboard ( statisticName: statisticName1)
223+
224+ expecting ( count: 2 ) { exp in
225+ leaderboard0. getStatisticsWithObjectIds ( [ objectId] , option: option) { statistics, error in
226+ XCTAssertEqual ( statistics? . count, 1 )
227+ XCTAssertNil ( error)
228+ XCTAssertEqual ( leaderboard0. statisticName, statistics? . first? . name)
229+ XCTAssertEqual ( statistics? . first? . value, 100 )
230+ XCTAssertGreaterThanOrEqual ( statistics? . first? . version ?? - 1 , 0 )
231+ XCTAssertNotNil ( ( statistics? . first? . object ? [ objectFieldKey] as? LCObject ) ? . createdAt)
232+ XCTAssertNil ( statistics? . first? . user)
233+ XCTAssertNil ( statistics? . first? . entity)
234+ exp. fulfill ( )
235+ }
236+ leaderboard1. getStatisticsWithObjectIds ( [ objectId] , option: option) { statistics, error in
237+ XCTAssertEqual ( statistics? . count, 1 )
238+ XCTAssertNil ( error)
239+ XCTAssertEqual ( leaderboard1. statisticName, statistics? . first? . name)
240+ XCTAssertEqual ( statistics? . first? . value, 100 )
241+ XCTAssertGreaterThanOrEqual ( statistics? . first? . version ?? - 1 , 0 )
242+ XCTAssertNotNil ( ( statistics? . first? . object ? [ objectFieldKey] as? LCObject ) ? . createdAt)
243+ XCTAssertNil ( statistics? . first? . user)
244+ XCTAssertNil ( statistics? . first? . entity)
245+ exp. fulfill ( )
246+ }
247+ }
248+ }
223249}
0 commit comments