Skip to content

Commit 4ad7e69

Browse files
the network connection should be stubbed instead of using OCMExpect (#7498)
1 parent 9597ffe commit 4ad7e69

File tree

1 file changed

+37
-55
lines changed

1 file changed

+37
-55
lines changed

FirebaseRemoteConfig/Tests/Unit/RCNRemoteConfigTest.m

Lines changed: 37 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,17 @@ @interface RCNRemoteConfigTest : XCTestCase {
9494
NSMutableArray<NSDictionary<NSString *, id> *> *_response;
9595
NSMutableArray<NSData *> *_responseData;
9696
NSMutableArray<NSURLResponse *> *_URLResponse;
97-
NSMutableArray<RCNConfigFetch *> *_configFetch;
97+
NSMutableArray<id> *_configFetch;
9898
RCNConfigDBManager *_DBManager;
9999
NSUserDefaults *_userDefaults;
100100
NSString *_userDefaultsSuiteName;
101101
NSString *_DBPath;
102102
id _DBManagerMock;
103103
id _experimentMock;
104104
id _userDefaultsMock;
105+
NSString *_fullyQualifiedNamespace;
106+
RCNConfigSettings *_settings;
107+
dispatch_queue_t _queue;
105108
}
106109
@end
107110

@@ -169,7 +172,7 @@ - (void)setUp {
169172
currentNamespace = RCNTestsFIRNamespace;
170173
break;
171174
}
172-
NSString *fullyQualifiedNamespace =
175+
_fullyQualifiedNamespace =
173176
[NSString stringWithFormat:@"%@:%@", currentNamespace, currentAppName];
174177
FIRRemoteConfig *config =
175178
OCMPartialMock([[FIRRemoteConfig alloc] initWithAppName:currentAppName
@@ -179,22 +182,23 @@ - (void)setUp {
179182
configContent:configContent
180183
analytics:nil]);
181184
_configInstances[i] = config;
182-
RCNConfigSettings *settings =
183-
[[RCNConfigSettings alloc] initWithDatabaseManager:_DBManager
184-
namespace:fullyQualifiedNamespace
185-
firebaseAppName:currentAppName
186-
googleAppID:currentOptions.googleAppID];
187-
dispatch_queue_t queue = dispatch_queue_create(
185+
186+
_settings = [[RCNConfigSettings alloc] initWithDatabaseManager:_DBManager
187+
namespace:_fullyQualifiedNamespace
188+
firebaseAppName:currentAppName
189+
googleAppID:currentOptions.googleAppID];
190+
_queue = dispatch_queue_create(
188191
[[NSString stringWithFormat:@"testqueue: %d", i] cStringUsingEncoding:NSUTF8StringEncoding],
189192
DISPATCH_QUEUE_SERIAL);
190-
_configFetch[i] = OCMPartialMock([[RCNConfigFetch alloc] initWithContent:configContent
191-
DBManager:_DBManager
192-
settings:settings
193-
analytics:nil
194-
experiment:_experimentMock
195-
queue:queue
196-
namespace:fullyQualifiedNamespace
197-
options:currentOptions]);
193+
_configFetch[i] =
194+
OCMPartialMock([[RCNConfigFetch alloc] initWithContent:configContent
195+
DBManager:_DBManager
196+
settings:_settings
197+
analytics:nil
198+
experiment:_experimentMock
199+
queue:_queue
200+
namespace:_fullyQualifiedNamespace
201+
options:currentOptions]);
198202

199203
OCMStubRecorder *mock = OCMStub([_configFetch[i] fetchConfigWithExpirationDuration:0
200204
completionHandler:OCMOCK_ANY]);
@@ -220,12 +224,12 @@ __unsafe_unretained void (^handler)(FIRRemoteConfigFetchStatus status,
220224
id completionBlock =
221225
[OCMArg invokeBlockWithArgs:_responseData[i], _URLResponse[i], [NSNull null], nil];
222226

223-
OCMExpect([_configFetch[i] URLSessionDataTaskWithContent:[OCMArg any]
224-
completionHandler:completionBlock])
227+
OCMStub([_configFetch[i] URLSessionDataTaskWithContent:[OCMArg any]
228+
completionHandler:completionBlock])
225229
.andReturn(nil);
226230
[_configInstances[i] updateWithNewInstancesForConfigFetch:_configFetch[i]
227231
configContent:configContent
228-
configSettings:settings
232+
configSettings:_settings
229233
configExperiment:_experimentMock];
230234
}
231235
}
@@ -485,12 +489,10 @@ - (void)testFetchConfigsFailed {
485489
currentNamespace = RCNTestsFIRNamespace;
486490
break;
487491
}
488-
NSString *fullyQualifiedNamespace =
489-
[NSString stringWithFormat:@"%@:%@", currentNamespace, currentAppName];
490492
RCNUserDefaultsManager *userDefaultsManager =
491493
[[RCNUserDefaultsManager alloc] initWithAppName:currentAppName
492494
bundleID:[NSBundle mainBundle].bundleIdentifier
493-
namespace:fullyQualifiedNamespace];
495+
namespace:_fullyQualifiedNamespace];
494496
userDefaultsManager.lastFetchTime = 0;
495497

496498
FIRRemoteConfig *config =
@@ -502,28 +504,20 @@ - (void)testFetchConfigsFailed {
502504
analytics:nil]);
503505

504506
_configInstances[i] = config;
505-
RCNConfigSettings *settings =
506-
[[RCNConfigSettings alloc] initWithDatabaseManager:_DBManager
507-
namespace:fullyQualifiedNamespace
508-
firebaseAppName:currentAppName
509-
googleAppID:currentOptions.googleAppID];
510-
dispatch_queue_t queue = dispatch_queue_create(
511-
[[NSString stringWithFormat:@"testqueue: %d", i] cStringUsingEncoding:NSUTF8StringEncoding],
512-
DISPATCH_QUEUE_SERIAL);
513-
_configFetch[i] = OCMPartialMock([[RCNConfigFetch alloc] initWithContent:configContent
514-
DBManager:_DBManager
515-
settings:settings
516-
analytics:nil
517-
experiment:nil
518-
queue:queue
519-
namespace:fullyQualifiedNamespace
520-
options:currentOptions]);
507+
_configFetch[i] =
508+
OCMPartialMock([[RCNConfigFetch alloc] initWithContent:configContent
509+
DBManager:_DBManager
510+
settings:_settings
511+
analytics:nil
512+
experiment:nil
513+
queue:_queue
514+
namespace:_fullyQualifiedNamespace
515+
options:currentOptions]);
521516

522517
OCMStub([_configFetch[i] fetchConfigWithExpirationDuration:43200 completionHandler:OCMOCK_ANY])
523518
.andDo(^(NSInvocation *invocation) {
524519
__unsafe_unretained void (^handler)(FIRRemoteConfigFetchStatus status,
525520
NSError *_Nullable error) = nil;
526-
// void (^handler)(FIRRemoteConfigFetchCompletion);
527521
[invocation getArgument:&handler atIndex:3];
528522
[self->_configFetch[i] fetchWithUserProperties:[[NSDictionary alloc] init]
529523
completionHandler:handler];
@@ -539,15 +533,9 @@ __unsafe_unretained void (^handler)(FIRRemoteConfigFetchStatus status,
539533
HTTPVersion:nil
540534
headerFields:@{@"etag" : @"etag1"}];
541535

542-
id completionBlock =
543-
[OCMArg invokeBlockWithArgs:_responseData[i], _URLResponse[i], [NSNull null], nil];
544-
545-
OCMExpect([_configFetch[i] URLSessionDataTaskWithContent:[OCMArg any]
546-
completionHandler:completionBlock])
547-
.andReturn(nil);
548536
[_configInstances[i] updateWithNewInstancesForConfigFetch:_configFetch[i]
549537
configContent:configContent
550-
configSettings:settings
538+
configSettings:_settings
551539
configExperiment:nil];
552540
}
553541
// Make the fetch calls for all instances.
@@ -645,7 +633,6 @@ - (void)testFetchConfigsFailedErrorNoNetwork {
645633
.andDo(^(NSInvocation *invocation) {
646634
__unsafe_unretained void (^handler)(FIRRemoteConfigFetchStatus status,
647635
NSError *_Nullable error) = nil;
648-
// void (^handler)(FIRRemoteConfigFetchCompletion);
649636
[invocation getArgument:&handler atIndex:3];
650637
[self->_configFetch[i] fetchWithUserProperties:[[NSDictionary alloc] init]
651638
completionHandler:handler];
@@ -662,12 +649,6 @@ __unsafe_unretained void (^handler)(FIRRemoteConfigFetchStatus status,
662649
HTTPVersion:nil
663650
headerFields:@{@"etag" : @"etag1"}];
664651

665-
id completionBlock =
666-
[OCMArg invokeBlockWithArgs:_responseData[i], _URLResponse[i], [NSNull null], nil];
667-
668-
OCMExpect([_configFetch[i] URLSessionDataTaskWithContent:[OCMArg any]
669-
completionHandler:completionBlock])
670-
.andReturn(nil);
671652
[_configInstances[i] updateWithNewInstancesForConfigFetch:_configFetch[i]
672653
configContent:configContent
673654
configSettings:settings
@@ -794,9 +775,10 @@ __unsafe_unretained void (^handler)(FIRRemoteConfigFetchStatus status,
794775
id completionBlock =
795776
[OCMArg invokeBlockWithArgs:_responseData[i], _URLResponse[i], [NSNull null], nil];
796777

797-
OCMExpect([_configFetch[i] URLSessionDataTaskWithContent:[OCMArg any]
798-
completionHandler:completionBlock])
778+
OCMStub([_configFetch[i] URLSessionDataTaskWithContent:[OCMArg any]
779+
completionHandler:completionBlock])
799780
.andReturn(nil);
781+
800782
[_configInstances[i] updateWithNewInstancesForConfigFetch:_configFetch[i]
801783
configContent:configContent
802784
configSettings:settings

0 commit comments

Comments
 (0)