Skip to content

Commit 15d02e9

Browse files
committed
add unit tests
1 parent a0c204a commit 15d02e9

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

Crashlytics/UnitTests/FIRCLSContextManagerTests.m

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,77 @@ - (void)test_settingSessionIDOutOfOrder_protoHasLastSessionID {
122122
XCTAssertEqualObjects(adapter.identity.app_quality_session_id, TestContextSessionID2);
123123
}
124124

125+
- (void)test_promisesChainOnInitPromiseInOrder {
126+
NSMutableArray<NSString *> *result = @[].mutableCopy;
127+
NSMutableArray<NSString *> *expectation = @[].mutableCopy;
128+
129+
for (int j = 0; j < 100; j++) {
130+
[expectation addObject:[NSString stringWithFormat:@"%d", j]];
131+
}
132+
133+
FBLPromise *promise = [self.contextManager setupContextWithReport:self.report
134+
settings:self.mockSettings
135+
fileManager:self.fileManager];
136+
137+
for (int i = 0; i < 100; i++) {
138+
[promise then:^id _Nullable(id _Nullable value) {
139+
[result addObject:[NSString stringWithFormat:@"%d", i]];
140+
if (i == 99) {
141+
XCTAssertTrue([result isEqualToArray:expectation]);
142+
}
143+
return nil;
144+
}];
145+
}
146+
}
147+
148+
// Check Promise behaviour
149+
- (void)test_promisesChainOnResolvedPromiseInOrder {
150+
NSMutableArray<NSString *> *result = @[].mutableCopy;
151+
NSMutableArray<NSString *> *expectation = @[].mutableCopy;
152+
153+
for (int j = 0; j < 100; j++) {
154+
[expectation addObject:[NSString stringWithFormat:@"%d", j]];
155+
}
156+
157+
FBLPromise *promise = [FBLPromise pendingPromise];
158+
// promise fullfiled before task queued up
159+
[promise fulfill:nil];
160+
161+
for (int i = 0; i < 100; i++) {
162+
[promise then:^id _Nullable(id _Nullable value) {
163+
[result addObject:[NSString stringWithFormat:@"%d", i]];
164+
if (i == 99) {
165+
XCTAssertTrue([result isEqualToArray:expectation]);
166+
}
167+
return nil;
168+
}];
169+
}
170+
}
171+
172+
// Check Promise behaviour
173+
- (void)test_promisesChainOnPendingPromiseInOrder {
174+
NSMutableArray<NSString *> *result = @[].mutableCopy;
175+
NSMutableArray<NSString *> *expectation = @[].mutableCopy;
176+
177+
for (int j = 0; j < 100; j++) {
178+
[expectation addObject:[NSString stringWithFormat:@"%d", j]];
179+
}
180+
181+
FBLPromise *promise = [FBLPromise pendingPromise];
182+
for (int i = 0; i < 100; i++) {
183+
[promise then:^id _Nullable(id _Nullable value) {
184+
[result addObject:[NSString stringWithFormat:@"%d", i]];
185+
if (i == 99) {
186+
XCTAssertTrue([result isEqualToArray:expectation]);
187+
}
188+
return nil;
189+
}];
190+
191+
if (i == 99) {
192+
// fullfill after a list of task on queued
193+
[promise fulfill:nil];
194+
}
195+
}
196+
}
197+
125198
@end

0 commit comments

Comments
 (0)