Skip to content

Commit f0301ea

Browse files
committed
Added more unit tests for iOS to increase code coverage.
1 parent d639ec8 commit f0301ea

File tree

1 file changed

+124
-2
lines changed

1 file changed

+124
-2
lines changed

sample/ios/ReactNativeAzureNotificationHubSampleTests/RCTAzureNotificationHubManagerTests.m

Lines changed: 124 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ - (void)testRegisterNativeError
118118
completion:OCMOCK_ANY]).andDo(registerNativeWithDeviceToken);
119119

120120
id defaultCenterMock = OCMPartialMock([NSNotificationCenter defaultCenter]);
121+
121122
[_hubManager register:RCTTestDeviceToken
122123
config:_config
123124
resolver:_resolver
@@ -153,6 +154,7 @@ - (void)testRegisterNativeSuccessfully
153154
completion:OCMOCK_ANY]).andDo(registerNativeWithDeviceToken);
154155

155156
id defaultCenterMock = OCMPartialMock([NSNotificationCenter defaultCenter]);
157+
156158
[_hubManager register:RCTTestDeviceToken
157159
config:_config
158160
resolver:_resolver
@@ -229,6 +231,7 @@ - (void)testUnregisterNativeSuccessfully
229231
OCMStub([_hubMock unregisterNativeWithCompletion:OCMOCK_ANY]).andDo(unregisterNativeWithCompletion);
230232
id defaultCenterMock = OCMPartialMock([NSNotificationCenter defaultCenter]);
231233
OCMReject([defaultCenterMock postNotificationName:OCMOCK_ANY object:OCMOCK_ANY userInfo:OCMOCK_ANY]);
234+
232235
[_hubManager register:RCTTestDeviceToken
233236
config:_config
234237
resolver:_resolver
@@ -450,12 +453,131 @@ - (void)testGetScheduledLocalNotifications
450453
[notifications addObject:_notification];
451454
id sharedApplicationMock = OCMPartialMock([UIApplication sharedApplication]);
452455
OCMStub([sharedApplicationMock scheduledLocalNotifications]).andReturn(notifications);
453-
RCTResponseSenderBlock callback = ^(NSArray *response)
456+
__block NSMutableArray *scheduledNotifications = nil;
457+
RCTResponseSenderBlock callback = ^(NSArray *result)
454458
{
455-
XCTAssertEqualObjects(response[0][0], [RCTAzureNotificationHubUtil formatLocalNotification:_notification]);
459+
scheduledNotifications = result;
456460
};
457461

458462
[_hubManager getScheduledLocalNotifications:callback];
463+
464+
XCTAssertEqualObjects(scheduledNotifications[0][0], [RCTAzureNotificationHubUtil formatLocalNotification:_notification]);
465+
}
466+
467+
- (void)testStartObserving
468+
{
469+
id defaultCenterMock = OCMPartialMock([NSNotificationCenter defaultCenter]);
470+
471+
[_hubManager startObserving];
472+
473+
OCMVerify([defaultCenterMock addObserver:OCMOCK_ANY
474+
selector:[OCMArg anySelector]
475+
name:RCTLocalNotificationReceived
476+
object:nil]);
477+
478+
OCMVerify([defaultCenterMock addObserver:OCMOCK_ANY
479+
selector:[OCMArg anySelector]
480+
name:RCTRemoteNotificationReceived
481+
object:nil]);
482+
483+
OCMVerify([defaultCenterMock addObserver:OCMOCK_ANY
484+
selector:[OCMArg anySelector]
485+
name:RCTRemoteNotificationRegistered
486+
object:nil]);
487+
488+
OCMVerify([defaultCenterMock addObserver:OCMOCK_ANY
489+
selector:[OCMArg anySelector]
490+
name:RCTRemoteNotificationRegisteredError
491+
object:nil]);
492+
493+
OCMVerify([defaultCenterMock addObserver:OCMOCK_ANY
494+
selector:[OCMArg anySelector]
495+
name:RCTAzureNotificationHubRegistered
496+
object:nil]);
497+
498+
OCMVerify([defaultCenterMock addObserver:OCMOCK_ANY
499+
selector:[OCMArg anySelector]
500+
name:RCTAzureNotificationHubRegisteredError
501+
object:nil]);
502+
503+
OCMVerify([defaultCenterMock addObserver:OCMOCK_ANY
504+
selector:[OCMArg anySelector]
505+
name:RCTUserNotificationSettingsRegistered
506+
object:nil]);
507+
}
508+
509+
- (void)testStopObserving
510+
{
511+
id defaultCenterMock = OCMPartialMock([NSNotificationCenter defaultCenter]);
512+
513+
[_hubManager stopObserving];
514+
515+
OCMVerify([defaultCenterMock removeObserver:OCMOCK_ANY]);
516+
}
517+
518+
- (void)testSupportedEvents
519+
{
520+
NSArray *expectedSupportedEvents = @[RCTLocalNotificationReceived,
521+
RCTRemoteNotificationReceived,
522+
RCTRemoteNotificationRegistered,
523+
RCTRemoteNotificationRegisteredError,
524+
RCTAzureNotificationHubRegistered,
525+
RCTAzureNotificationHubRegisteredError];
526+
527+
NSArray *supportedEvents = [_hubManager supportedEvents];
528+
529+
XCTAssertEqualObjects(supportedEvents, expectedSupportedEvents);
530+
}
531+
532+
- (void)testDidRegisterForRemoteNotificationsWithDeviceToken
533+
{
534+
id defaultCenterMock = OCMPartialMock([NSNotificationCenter defaultCenter]);
535+
NSData *deviceToken = [@"Device Token" dataUsingEncoding:NSASCIIStringEncoding];
536+
NSString *hexString = [RCTAzureNotificationHubUtil convertDeviceTokenToString:deviceToken];
537+
538+
[RCTAzureNotificationHubManager didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
539+
540+
OCMVerify([defaultCenterMock postNotificationName:RCTRemoteNotificationRegistered
541+
object:OCMOCK_ANY
542+
userInfo:@{RCTUserInfoDeviceToken: [hexString copy]}]);
543+
}
544+
545+
- (void)testDidFailToRegisterForRemoteNotificationsWithError
546+
{
547+
id defaultCenterMock = OCMPartialMock([NSNotificationCenter defaultCenter]);
548+
NSError *error = [NSError errorWithDomain:@"Mock Error" code:0 userInfo:nil];
549+
550+
[RCTAzureNotificationHubManager didFailToRegisterForRemoteNotificationsWithError:error];
551+
552+
OCMVerify([defaultCenterMock postNotificationName:RCTRemoteNotificationRegisteredError
553+
object:OCMOCK_ANY
554+
userInfo:@{RCTUserInfoError: error}]);
555+
}
556+
557+
- (void)testDidReceiveRemoteNotification
558+
{
559+
id defaultCenterMock = OCMPartialMock([NSNotificationCenter defaultCenter]);
560+
NSDictionary *notification = [[NSDictionary alloc] initWithObjectsAndKeys:@"key", @"value", nil];
561+
562+
[RCTAzureNotificationHubManager didReceiveRemoteNotification:notification];
563+
564+
OCMVerify([defaultCenterMock postNotificationName:RCTRemoteNotificationReceived
565+
object:OCMOCK_ANY
566+
userInfo:notification]);
567+
}
568+
569+
- (void)testDidReceiveLocalNotification
570+
{
571+
id defaultCenterMock = OCMPartialMock([NSNotificationCenter defaultCenter]);
572+
UILocalNotification *notification = [[UILocalNotification alloc] init];
573+
NSDictionary *info = [[NSDictionary alloc] initWithObjectsAndKeys:@"Key", @"Value", nil];
574+
[notification setUserInfo:info];
575+
576+
[RCTAzureNotificationHubManager didReceiveLocalNotification:notification];
577+
578+
OCMVerify([defaultCenterMock postNotificationName:RCTLocalNotificationReceived
579+
object:OCMOCK_ANY
580+
userInfo:[RCTAzureNotificationHubUtil formatLocalNotification:notification]]);
459581
}
460582

461583
@end

0 commit comments

Comments
 (0)