3434#import " LPNetworkEngine+Category.h"
3535#import " LeanplumReachability+Category.h"
3636#import " LPJSON.h"
37+ #import " LPOperationQueue.h"
3738
3839@interface LPEventDataManager (UnitTest)
3940
@@ -44,7 +45,6 @@ + (void)migrateRequests;
4445@interface LeanplumRequest (UnitTest)
4546
4647- (void )sendNow : (BOOL )async ;
47- + (NSOperationQueue *)sendNowQueue ;
4848
4949@end
5050
@@ -112,10 +112,12 @@ - (void)test_track_save
112112 [LPEventDataManager deleteEventsWithLimit: 10000 ];
113113
114114 [Leanplum track: @" sample" ];
115+ [[LPOperationQueue serialQueue ] waitUntilAllOperationsAreFinished ];
115116 NSArray *events = [LPEventDataManager eventsWithLimit: 10000 ];
116117 XCTAssertTrue (events.count == 1 );
117118
118119 [Leanplum track: @" sample2" ];
120+ [[LPOperationQueue serialQueue ] waitUntilAllOperationsAreFinished ];
119121 events = [LPEventDataManager eventsWithLimit: 10000 ];
120122 XCTAssertTrue (events.count == 2 );
121123
@@ -163,8 +165,8 @@ - (void)test_request_synchronous
163165 XCTAssertTrue (timedOut == 0 );
164166
165167 // Clean up.
166- [[LeanplumRequest sendNowQueue ] cancelAllOperations ];
167- [[LeanplumRequest sendNowQueue ] waitUntilAllOperationsAreFinished ];
168+ [[LPOperationQueue serialQueue ] cancelAllOperations ];
169+ [[LPOperationQueue serialQueue ] waitUntilAllOperationsAreFinished ];
168170 [OHHTTPStubs removeAllStubs ];
169171}
170172
@@ -217,6 +219,9 @@ - (void)test_uuid
217219 [Leanplum track: @" sample" ];
218220 [Leanplum track: @" sample2" ];
219221 [[LeanplumRequest post: @" sample3" params: nil ] sendNow: YES ];
222+
223+ [[LPOperationQueue serialQueue ] waitUntilAllOperationsAreFinished ];
224+
220225 NSArray *events = [LPEventDataManager eventsWithLimit: 10000 ];
221226 XCTAssertTrue (events.count == 3 );
222227 XCTAssertTrue ([events[0 ][@" uuid" ] isEqual: events[1 ][@" uuid" ]]);
@@ -225,6 +230,9 @@ - (void)test_uuid
225230 // After sending, the last one should have a different uuid.
226231 [NSThread sleepForTimeInterval: 0.4 ];
227232 [Leanplum track: @" sample4" ];
233+
234+ [[LPOperationQueue serialQueue ] waitUntilAllOperationsAreFinished ];
235+
228236 events = [LPEventDataManager eventsWithLimit: 10000 ];
229237 XCTAssertTrue (events.count == 4 );
230238 XCTAssertTrue ([events[0 ][@" uuid" ] isEqual: events[1 ][@" uuid" ]]);
@@ -244,13 +252,15 @@ - (void)test_uuid
244252
245253 [[LeanplumRequest post: @" sample4" params: nil ] sendNow: NO ];
246254 [NSThread sleepForTimeInterval: 0.1 ];
255+ [[LPOperationQueue serialQueue ] waitUntilAllOperationsAreFinished ];
247256 events = [LPEventDataManager eventsWithLimit: 10000 ];
248257 XCTAssertTrue (events.count == 0 );
249258
250259 // UUID should be different after the 10k mark.
251260 for (int i=0 ; i<MAX_EVENTS_PER_API_CALL+1 ; i++) {
252261 [Leanplum track: @" s" ];
253262 }
263+ [[LPOperationQueue serialQueue ] waitUntilAllOperationsAreFinished ];
254264 events = [LPEventDataManager eventsWithLimit: 900000 ];
255265 XCTAssertTrue (events.count == MAX_EVENTS_PER_API_CALL+1 );
256266 XCTAssertFalse ([events[0 ][@" uuid" ] isEqual: events[MAX_EVENTS_PER_API_CALL][@" uuid" ]]);
@@ -294,14 +304,14 @@ - (void)test_response_index
294304 [self expectationWithDescription: @" operationExpectation" ];
295305 [LPNetworkEngine validate_operation: ^(LPNetworkOperation *operation) {
296306 NSArray *events = [LPEventDataManager eventsWithLimit: 900000 ];
297- XCTAssertTrue (events.count == 3 );
307+ XCTAssertTrue (events.count == 1 );
298308 [operationExpectation fulfill ];
299309 return YES ;
300310 }];
301311
302312 // Freeze the operation queue for a bit to let events queue up.
303- NSOperationQueue *sendNowQueue = [LeanplumRequest sendNowQueue ];
304- [sendNowQueue addOperationWithBlock: ^{
313+ NSOperationQueue *serialQueue = [LPOperationQueue serialQueue ];
314+ [serialQueue addOperationWithBlock: ^{
305315 [NSThread sleepForTimeInterval: 0.2 ];
306316 }];
307317
@@ -315,11 +325,14 @@ - (void)test_response_index
315325 [responseExpectation fulfill ];
316326 }];
317327 [request sendNow: YES ];
318-
328+ [[LPOperationQueue serialQueue ] waitUntilAllOperationsAreFinished ];
329+
330+
319331 // Add extra events.
320332 [Leanplum track: @" s" ];
321333 [Leanplum track: @" s2" ];
322-
334+ [[LPOperationQueue serialQueue ] waitUntilAllOperationsAreFinished ];
335+
323336 [self waitForExpectationsWithTimeout: 2 handler: nil ];
324337}
325338
0 commit comments