ARDSettingsModel_xctest.mm (2806B)
1 /* 2 * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #import <Foundation/Foundation.h> 12 #import <OCMock/OCMock.h> 13 #import <XCTest/XCTest.h> 14 15 #import "sdk/objc/api/peerconnection/RTCMediaConstraints.h" 16 17 #import "ARDSettingsModel+Private.h" 18 #import "ARDSettingsStore.h" 19 20 @interface ARDSettingsModelTests : XCTestCase { 21 ARDSettingsModel *_model; 22 } 23 @end 24 25 @implementation ARDSettingsModelTests 26 27 - (id)setupMockStore { 28 id storeMock = [OCMockObject mockForClass:[ARDSettingsStore class]]; 29 30 id partialMock = [OCMockObject partialMockForObject:_model]; 31 [[[partialMock stub] andReturn:storeMock] settingsStore]; 32 [[[partialMock stub] andReturn:@[ @"640x480", @"960x540", @"1280x720" ]] 33 availableVideoResolutions]; 34 35 return storeMock; 36 } 37 38 - (void)setUp { 39 _model = [[ARDSettingsModel alloc] init]; 40 } 41 42 - (void)testRetrievingSetting { 43 id storeMock = [self setupMockStore]; 44 [[[storeMock expect] andReturn:@"640x480"] videoResolution]; 45 NSString *string = [_model currentVideoResolutionSettingFromStore]; 46 47 XCTAssertEqualObjects(string, @"640x480"); 48 [storeMock verify]; 49 } 50 51 - (void)testStoringInvalidConstraintReturnsNo { 52 id storeMock = [self setupMockStore]; 53 [([[storeMock stub] andReturn:@"960x480"]) videoResolution]; 54 XCTAssertFalse([_model storeVideoResolutionSetting:@"960x480"]); 55 } 56 57 - (void)testWidthConstraintFromStore { 58 id storeMock = [self setupMockStore]; 59 [([[storeMock stub] andReturn:@"1270x480"]) videoResolution]; 60 int width = [_model currentVideoResolutionWidthFromStore]; 61 62 XCTAssertEqual(width, 1270); 63 } 64 65 - (void)testHeightConstraintFromStore { 66 id storeMock = [self setupMockStore]; 67 [([[storeMock stub] andReturn:@"960x540"]) videoResolution]; 68 int height = [_model currentVideoResolutionHeightFromStore]; 69 70 XCTAssertEqual(height, 540); 71 } 72 73 - (void)testConstraintComponentIsNilWhenInvalidConstraintString { 74 id storeMock = [self setupMockStore]; 75 [([[storeMock stub] andReturn:@"invalid"]) videoResolution]; 76 int width = [_model currentVideoResolutionWidthFromStore]; 77 78 XCTAssertEqual(width, 0); 79 } 80 81 - (void)testStoringAudioSetting { 82 id storeMock = [self setupMockStore]; 83 [[storeMock expect] setAudioOnly:YES]; 84 85 [_model storeAudioOnlySetting:YES]; 86 [storeMock verify]; 87 } 88 89 - (void)testReturningDefaultCallOption { 90 id storeMock = [self setupMockStore]; 91 [[[storeMock stub] andReturnValue:@YES] useManualAudioConfig]; 92 93 XCTAssertTrue([_model currentUseManualAudioConfigSettingFromStore]); 94 } 95 96 @end