1/* 2 * Copyright 2015 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 <XCTest/XCTest.h> 13#ifdef __cplusplus 14extern "C" { 15#endif 16#import <OCMock/OCMock.h> 17#ifdef __cplusplus 18} 19#endif 20#import "api/peerconnection/RTCPeerConnectionFactory+Native.h" 21#import "api/peerconnection/RTCPeerConnectionFactoryBuilder+DefaultComponents.h" 22#import "api/peerconnection/RTCPeerConnectionFactoryBuilder.h" 23 24#include "api/audio_codecs/builtin_audio_decoder_factory.h" 25#include "api/audio_codecs/builtin_audio_encoder_factory.h" 26#include "api/video_codecs/video_decoder_factory.h" 27#include "api/video_codecs/video_encoder_factory.h" 28#include "modules/audio_device/include/audio_device.h" 29#include "modules/audio_processing/include/audio_processing.h" 30 31#include "rtc_base/gunit.h" 32#include "rtc_base/system/unused.h" 33 34@interface RTCPeerConnectionFactoryBuilderTests : XCTestCase 35@end 36 37@implementation RTCPeerConnectionFactoryBuilderTests 38 39- (void)testBuilder { 40 id factoryMock = OCMStrictClassMock([RTC_OBJC_TYPE(RTCPeerConnectionFactory) class]); 41 OCMExpect([factoryMock alloc]).andReturn(factoryMock); 42 RTC_UNUSED([[[[factoryMock expect] andReturn:factoryMock] ignoringNonObjectArgs] 43 initWithNativeAudioEncoderFactory:nullptr 44 nativeAudioDecoderFactory:nullptr 45 nativeVideoEncoderFactory:nullptr 46 nativeVideoDecoderFactory:nullptr 47 audioDeviceModule:nullptr 48 audioProcessingModule:nullptr]); 49 RTCPeerConnectionFactoryBuilder* builder = [[RTCPeerConnectionFactoryBuilder alloc] init]; 50 RTC_OBJC_TYPE(RTCPeerConnectionFactory)* peerConnectionFactory = 51 [builder createPeerConnectionFactory]; 52 EXPECT_TRUE(peerConnectionFactory != nil); 53 OCMVerifyAll(factoryMock); 54} 55 56- (void)testDefaultComponentsBuilder { 57 id factoryMock = OCMStrictClassMock([RTC_OBJC_TYPE(RTCPeerConnectionFactory) class]); 58 OCMExpect([factoryMock alloc]).andReturn(factoryMock); 59 RTC_UNUSED([[[[factoryMock expect] andReturn:factoryMock] ignoringNonObjectArgs] 60 initWithNativeAudioEncoderFactory:nullptr 61 nativeAudioDecoderFactory:nullptr 62 nativeVideoEncoderFactory:nullptr 63 nativeVideoDecoderFactory:nullptr 64 audioDeviceModule:nullptr 65 audioProcessingModule:nullptr]); 66 RTCPeerConnectionFactoryBuilder* builder = [RTCPeerConnectionFactoryBuilder defaultBuilder]; 67 RTC_OBJC_TYPE(RTCPeerConnectionFactory)* peerConnectionFactory = 68 [builder createPeerConnectionFactory]; 69 EXPECT_TRUE(peerConnectionFactory != nil); 70 OCMVerifyAll(factoryMock); 71} 72@end 73