Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions Branch-TestBed/Branch-SDK-Tests/BNCServerRequestQueueTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ - (id)unarchiveObjectFromData:(NSData *)data;
// returns data in the legacy format
- (NSData *)oldArchiveQueue:(NSArray<BNCServerRequest *> *)queue;

+ (NSURL * _Nonnull) URLForQueueFile;
- (void)retrieve;

@end

@interface BNCServerRequestQueueTests : XCTestCase
Expand Down Expand Up @@ -157,4 +160,27 @@ - (void)testOldArchiveArrayOfInvalidObjects {
XCTAssert(unarchived.count == 2);
}

- (void)testMultipleRequests {
BranchEventRequest *eventObject = [BranchEventRequest new];
BranchOpenRequest *openObject = [BranchOpenRequest new];

[_queue enqueue: eventObject];
[_queue enqueue: openObject];
[_queue persistImmediately];

NSMutableArray *decodedQueue = nil;
NSData *data = [NSData dataWithContentsOfURL:[BNCServerRequestQueue URLForQueueFile] options:0 error:nil];
if (data) {
decodedQueue = [_queue unarchiveQueueFromData:data];
}
XCTAssert([decodedQueue count] == 2);
[_queue clearQueue];
XCTAssert([_queue queueDepth] == 0);
[_queue retrieve];
XCTAssert([_queue queueDepth] == 2);

// Request are loaded. So there should not be any queue file on disk.
XCTAssert([NSFileManager.defaultManager fileExistsAtPath:[[BNCServerRequestQueue URLForQueueFile] path]] == NO);
}

@end
2 changes: 2 additions & 0 deletions Sources/BranchSDK/BNCServerRequestQueue.m
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,8 @@ - (void)retrieve {
}
}
self.queue = decodedQueue;
// Requests are loaded into queue now. Delete queue file stored on disk.
[self removeSaveFile];
}
}
}
Expand Down
Loading