Skip to content

Commit 702fa9f

Browse files
Fixed tvOS test failures.
1 parent 0e46e16 commit 702fa9f

File tree

2 files changed

+46
-5
lines changed

2 files changed

+46
-5
lines changed

OptimizelySDKCore/OptimizelySDKCore/OPTLYQueue.m

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,15 @@ - (NSArray *)dequeueNItems:(NSInteger)numberOfItems {
8989
}
9090

9191
- (NSInteger)size {
92-
return [self.queue count];
92+
return [self.mutableQueue count];
9393
}
9494

9595
- (bool)isFull {
96-
return ([self.queue count] >= self.maxQueueSize);
96+
return ([self.mutableQueue count] >= self.maxQueueSize);
9797
}
9898

9999
- (bool)isEmpty {
100-
return [self.queue count] == 0;
100+
return [self.mutableQueue count] == 0;
101101
}
102102

103103
- (NSArray *)queue {

OptimizelySDKEventDispatcher/OptimizelySDKEventDispatcherTests/OPTLYEventDispatcherTest.m

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,14 @@ - (void)testFlushEventsSuccessSavedEvents {
256256

257257
__weak typeof(self) weakSelf = self;
258258
[self.eventDispatcher flushEvents:^{
259-
[weakSelf checkNetworkTimerIsEnabled:weakSelf.eventDispatcher timeInterval:OPTLYEventDispatcherDefaultDispatchIntervalTime_ms];
259+
NSArray *savedEvents = [self.eventDispatcher.dataStore getAllEvents:OPTLYDataStoreEventTypeConversion
260+
cachedData:NO
261+
error:nil];
262+
NSArray *cachedEvents = [self.eventDispatcher.dataStore getAllEvents:OPTLYDataStoreEventTypeConversion
263+
cachedData:YES
264+
error:nil];
265+
XCTAssert([savedEvents count] == 0, @"Saved events should have been removed.");
266+
XCTAssert([cachedEvents count] == 0, @"Cached events should have been removed.");
260267
[expectation fulfill];
261268

262269
}];
@@ -279,7 +286,6 @@ - (void)testFlushEventsSuccessNoSavedEvents {
279286
[self.eventDispatcher flushEvents:^{
280287
[weakSelf checkNetworkTimerIsDisabled:weakSelf.eventDispatcher];
281288
[expectation fulfill];
282-
283289
}];
284290

285291
[self waitForExpectationsWithTimeout:10.0 handler:^(NSError *error) {
@@ -310,6 +316,41 @@ - (void)testFlushEventsFailureSavedEvents {
310316
}];
311317
}
312318

319+
// if there are some saved events, then a successful flushSaveEvent should keep the timer enabled
320+
- (void)testFlushSavedEventSuccessWithSavedEvents
321+
{
322+
BOOL usedCachedData = NO;
323+
#if TARGET_OS_TV
324+
usedCachedData = YES;
325+
#endif
326+
[self stubSuccessResponse];
327+
[self.eventDispatcher setupNetworkTimer:nil];
328+
329+
for (NSInteger i = 0; i < 3; ++i) {
330+
[self.eventDispatcher saveEvent:self.parameters
331+
eventType:OPTLYDataStoreEventTypeConversion
332+
error:nil];
333+
}
334+
335+
__block XCTestExpectation *expectation = [self expectationWithDescription:@"Wait for dispatchConversionEvent failure."];
336+
__weak typeof(self) weakSelf = self;
337+
[self.eventDispatcher flushSavedEvent:self.parameters eventType:OPTLYDataStoreEventTypeConversion cachedData:usedCachedData callback:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
338+
NSArray *events = [self.eventDispatcher.dataStore getAllEvents:OPTLYDataStoreEventTypeConversion
339+
cachedData:usedCachedData
340+
error:nil];
341+
XCTAssert([events count] == 2, @"Event should have been removed.");
342+
[weakSelf checkNetworkTimerIsEnabled:weakSelf.eventDispatcher timeInterval:OPTLYEventDispatcherDefaultDispatchIntervalTime_ms];
343+
344+
[expectation fulfill];
345+
}];
346+
347+
[self waitForExpectationsWithTimeout:10.0 handler:^(NSError *error) {
348+
if (error) {
349+
NSLog(@"Timeout error for dispatchConversionEvent: %@", error);
350+
}
351+
}];
352+
}
353+
313354
- (void)testFlushSavedEventSuccess
314355
{
315356
BOOL usedCachedData = NO;

0 commit comments

Comments
 (0)