#import #import "UIViewController+RNNOptions.h" #import @interface UIViewController_RNNOptionsTest : XCTestCase @property (nonatomic, retain) id uut; @end @implementation UIViewController_RNNOptionsTest - (void)setUp { [super setUp]; self.uut = [OCMockObject partialMockForObject:[UIViewController new]]; } - (void)test_setTabBarItemBadge_shouldSetValidValue { NSString* badgeValue = @"badge"; [self.uut rnn_setTabBarItemBadge:badgeValue]; XCTAssertEqual([self.uut tabBarItem].badgeValue, badgeValue); } - (void)test_setTabBarItemBadge_shouldResetWhenValueIsEmptyString { [self.uut rnn_setTabBarItemBadge:@"badge"]; NSString* badgeValue = @""; [self.uut rnn_setTabBarItemBadge:badgeValue]; XCTAssertEqual([self.uut tabBarItem].badgeValue, nil); } - (void)test_setTabBarItemBadge_shouldResetWhenValueIsNullObject { [self.uut rnn_setTabBarItemBadge:@"badge"]; NSNull* nullBadgeValue = [NSNull new]; [self.uut rnn_setTabBarItemBadge:nullBadgeValue]; XCTAssertEqual([self.uut tabBarItem].badgeValue, nil); } - (void)testSetDrawBehindTopBarTrue_shouldSetExtendedLayoutTrue { [[self.uut expect] setExtendedLayoutIncludesOpaqueBars:YES]; [self.uut rnn_setDrawBehindTopBar:YES]; [self.uut verify]; } - (void)testSetDrawBehindTabBarTrue_shouldSetExtendedLayoutTrue { [[self.uut expect] setExtendedLayoutIncludesOpaqueBars:YES]; [self.uut rnn_setDrawBehindTabBar:YES]; [self.uut verify]; } - (void)testSetDrawBehindTopBarFalse_shouldNotCallExtendedLayout { [[self.uut reject] setExtendedLayoutIncludesOpaqueBars:NO]; [self.uut rnn_setDrawBehindTopBar:NO]; [self.uut verify]; } - (void)testSetDrawBehindTabBarFalse_shouldNotCallExtendedLayout { [[self.uut reject] setExtendedLayoutIncludesOpaqueBars:NO]; [self.uut rnn_setDrawBehindTabBar:NO]; [self.uut verify]; } - (void)testSetDrawBehindTopBarFalse_shouldSetCorrectEdgesForExtendedLayout { [self.uut rnn_setDrawBehindTopBar:NO]; UIRectEdge expectedRectEdge = UIRectEdgeLeft | UIRectEdgeBottom | UIRectEdgeRight; XCTAssertEqual([self.uut edgesForExtendedLayout], expectedRectEdge); } - (void)testSetDrawBehindTapBarFalse_shouldSetCorrectEdgesForExtendedLayout { [self.uut rnn_setDrawBehindTabBar:NO]; UIRectEdge expectedRectEdge = UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeRight; XCTAssertEqual([self.uut edgesForExtendedLayout], expectedRectEdge); } - (void)testSetBackgroundImageShouldNotAddViewIfImageNil { NSUInteger subviewsCount = [[[self.uut view] subviews] count]; [self.uut rnn_setBackgroundImage:nil]; XCTAssertEqual([[[self.uut view] subviews] count], subviewsCount); } - (void)testSetBackgroundImageShouldAddUIImageViewSubview { NSUInteger subviewsCount = [[[self.uut view] subviews] count]; [self.uut rnn_setBackgroundImage:[UIImage new]]; XCTAssertEqual([[[self.uut view] subviews] count], subviewsCount+1); } - (void)testSetBackgroundImageShouldAddUIImageViewSubviewWithImage { UIImage* image = [UIImage new]; [self.uut rnn_setBackgroundImage:image]; UIImageView* imageView = [[[self.uut view] subviews] firstObject]; XCTAssertEqual(imageView.image, image); } @end