Commit 32ca65df authored by yogevbd's avatar yogevbd

Add NotificationsHandler unit tests

parent 4908c56e
...@@ -48,5 +48,37 @@ ...@@ -48,5 +48,37 @@
[_mockedNotificationCenter verify]; [_mockedNotificationCenter verify];
} }
- (void)testDidReceiveForegroundNotification_ShouldSaveCompletionBlockToStore {
UNNotification* notification = [self createNotificationWithIdentifier:@"id" andUserInfo:@{}];
void (^testBlock)(UNNotificationPresentationOptions) = ^void(UNNotificationPresentationOptions options) {};
[_uut didReceiveForegroundNotification:notification withCompletionHandler:testBlock];
XCTAssertEqual([_store getPresentationCompletionHandler:@"id"], testBlock);
}
- (void)testDidReceiveForegroundNotification_ShouldEmitEvent {
UNNotification* notification = [self createNotificationWithIdentifier:@"id" andUserInfo:@{@"extraKey": @"extraValue"}];
void (^testBlock)(UNNotificationPresentationOptions) = ^void(UNNotificationPresentationOptions options) {};
[[_mockedNotificationCenter expect] postNotificationName:RNNotificationReceivedForeground object:[OCMArg any] userInfo:[OCMArg checkWithBlock:^BOOL(id obj) {
return ([[obj valueForKey:@"identifier"] isEqualToString:@"id"] &&
[[[obj valueForKey:@"payload"] valueForKey:@"extraKey"] isEqualToString:@"extraValue"]);
}]];
[_uut didReceiveForegroundNotification:notification withCompletionHandler:testBlock];
[_mockedNotificationCenter verify];
}
- (UNNotification *)createNotificationWithIdentifier:(NSString *)identifier andUserInfo:(NSDictionary *)userInfo {
UNNotification* notification = [OCMockObject niceMockForClass:[UNNotification class]];
UNNotificationContent* content = [OCMockObject niceMockForClass:[UNNotificationContent class]];
OCMStub([content userInfo]).andReturn(userInfo);
UNNotificationRequest* request = [OCMockObject partialMockForObject:[UNNotificationRequest requestWithIdentifier:identifier content:content trigger:nil]];
OCMStub(notification.request).andReturn(request);
OCMStub(request.content).andReturn(content);
return notification;
}
@end @end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment