From 32ca65dfd0ea6835c1e1e681d7e6eb0aa6babcc8 Mon Sep 17 00:00:00 2001 From: yogevbd Date: Fri, 26 Jul 2019 14:37:05 +0300 Subject: [PATCH] Add NotificationsHandler unit tests --- .../RNNotificationEventHandlerTests.m | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/RNNotifications/RNNotificationsTests/RNNotificationEventHandlerTests.m b/RNNotifications/RNNotificationsTests/RNNotificationEventHandlerTests.m index 8fcc7e7..35ab8b3 100644 --- a/RNNotifications/RNNotificationsTests/RNNotificationEventHandlerTests.m +++ b/RNNotifications/RNNotificationsTests/RNNotificationEventHandlerTests.m @@ -48,5 +48,37 @@ [_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 -- 2.26.2