/* * Copyright 2015 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #import #ifdef __cplusplus extern "C" { #endif #import #ifdef __cplusplus } #endif #import "api/peerconnection/RTCPeerConnectionFactory+Native.h" #import "api/peerconnection/RTCPeerConnectionFactoryBuilder+DefaultComponents.h" #import "api/peerconnection/RTCPeerConnectionFactoryBuilder.h" #include "api/audio_codecs/builtin_audio_decoder_factory.h" #include "api/audio_codecs/builtin_audio_encoder_factory.h" #include "api/video_codecs/video_decoder_factory.h" #include "api/video_codecs/video_encoder_factory.h" #include "modules/audio_device/include/audio_device.h" #include "modules/audio_processing/include/audio_processing.h" #include "rtc_base/gunit.h" #include "rtc_base/system/unused.h" @interface RTCPeerConnectionFactoryBuilderTest : NSObject - (void)testBuilder; - (void)testDefaultComponentsBuilder; @end @implementation RTCPeerConnectionFactoryBuilderTest - (void)testBuilder { id factoryMock = OCMStrictClassMock([RTC_OBJC_TYPE(RTCPeerConnectionFactory) class]); OCMExpect([factoryMock alloc]).andReturn(factoryMock); #ifdef HAVE_NO_MEDIA RTC_UNUSED([[[factoryMock expect] andReturn:factoryMock] initWithNoMedia]); #else RTC_UNUSED([[[[factoryMock expect] andReturn:factoryMock] ignoringNonObjectArgs] initWithNativeAudioEncoderFactory:nullptr nativeAudioDecoderFactory:nullptr nativeVideoEncoderFactory:nullptr nativeVideoDecoderFactory:nullptr audioDeviceModule:nullptr audioProcessingModule:nullptr]); #endif RTCPeerConnectionFactoryBuilder* builder = [[RTCPeerConnectionFactoryBuilder alloc] init]; RTC_OBJC_TYPE(RTCPeerConnectionFactory)* peerConnectionFactory = [builder createPeerConnectionFactory]; EXPECT_TRUE(peerConnectionFactory != nil); OCMVerifyAll(factoryMock); } - (void)testDefaultComponentsBuilder { id factoryMock = OCMStrictClassMock([RTC_OBJC_TYPE(RTCPeerConnectionFactory) class]); OCMExpect([factoryMock alloc]).andReturn(factoryMock); #ifdef HAVE_NO_MEDIA RTC_UNUSED([[[factoryMock expect] andReturn:factoryMock] initWithNoMedia]); #else RTC_UNUSED([[[[factoryMock expect] andReturn:factoryMock] ignoringNonObjectArgs] initWithNativeAudioEncoderFactory:nullptr nativeAudioDecoderFactory:nullptr nativeVideoEncoderFactory:nullptr nativeVideoDecoderFactory:nullptr audioDeviceModule:nullptr audioProcessingModule:nullptr]); #endif RTCPeerConnectionFactoryBuilder* builder = [RTCPeerConnectionFactoryBuilder defaultBuilder]; RTC_OBJC_TYPE(RTCPeerConnectionFactory)* peerConnectionFactory = [builder createPeerConnectionFactory]; EXPECT_TRUE(peerConnectionFactory != nil); OCMVerifyAll(factoryMock); } @end TEST(RTCPeerConnectionFactoryBuilderTest, BuilderTest) { @autoreleasepool { RTCPeerConnectionFactoryBuilderTest* test = [[RTCPeerConnectionFactoryBuilderTest alloc] init]; [test testBuilder]; } } TEST(RTCPeerConnectionFactoryBuilderTest, DefaultComponentsBuilderTest) { @autoreleasepool { RTCPeerConnectionFactoryBuilderTest* test = [[RTCPeerConnectionFactoryBuilderTest alloc] init]; [test testDefaultComponentsBuilder]; } }