xref: /aosp_15_r20/external/webrtc/pc/test/mock_voice_media_channel.h (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1 /*
2  *  Copyright 2021 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 #ifndef PC_TEST_MOCK_VOICE_MEDIA_CHANNEL_H_
11 #define PC_TEST_MOCK_VOICE_MEDIA_CHANNEL_H_
12 
13 #include <memory>
14 #include <string>
15 #include <vector>
16 
17 #include "api/call/audio_sink.h"
18 #include "media/base/media_channel.h"
19 #include "rtc_base/gunit.h"
20 #include "test/gmock.h"
21 #include "test/gtest.h"
22 
23 using ::testing::InvokeWithoutArgs;
24 using ::testing::Mock;
25 
26 namespace cricket {
27 class MockVoiceMediaChannel : public VoiceMediaChannel {
28  public:
MockVoiceMediaChannel(webrtc::TaskQueueBase * network_thread)29   explicit MockVoiceMediaChannel(webrtc::TaskQueueBase* network_thread)
30       : VoiceMediaChannel(network_thread) {}
31 
32   MOCK_METHOD(void, SetInterface, (NetworkInterface * iface), (override));
33   MOCK_METHOD(void,
34               OnPacketReceived,
35               (rtc::CopyOnWriteBuffer packet, int64_t packet_time_us),
36               (override));
37   MOCK_METHOD(void,
38               OnPacketSent,
39               (const rtc::SentPacket& sent_packet),
40               (override));
41   MOCK_METHOD(void, OnReadyToSend, (bool ready), (override));
42   MOCK_METHOD(void,
43               OnNetworkRouteChanged,
44               (absl::string_view transport_name,
45                const rtc::NetworkRoute& network_route),
46               (override));
47   MOCK_METHOD(bool, AddSendStream, (const StreamParams& sp), (override));
48   MOCK_METHOD(bool, RemoveSendStream, (uint32_t ssrc), (override));
49   MOCK_METHOD(bool, AddRecvStream, (const StreamParams& sp), (override));
50   MOCK_METHOD(bool, RemoveRecvStream, (uint32_t ssrc), (override));
51   MOCK_METHOD(void, ResetUnsignaledRecvStream, (), (override));
52   MOCK_METHOD(void, OnDemuxerCriteriaUpdatePending, (), (override));
53   MOCK_METHOD(void, OnDemuxerCriteriaUpdateComplete, (), (override));
54   MOCK_METHOD(int, GetRtpSendTimeExtnId, (), (const, override));
55   MOCK_METHOD(
56       void,
57       SetFrameEncryptor,
58       (uint32_t ssrc,
59        rtc::scoped_refptr<webrtc::FrameEncryptorInterface> frame_encryptor),
60       (override));
61   MOCK_METHOD(
62       void,
63       SetFrameDecryptor,
64       (uint32_t ssrc,
65        rtc::scoped_refptr<webrtc::FrameDecryptorInterface> frame_decryptor),
66       (override));
67   MOCK_METHOD(void, SetVideoCodecSwitchingEnabled, (bool enabled), (override));
68   MOCK_METHOD(webrtc::RtpParameters,
69               GetRtpSendParameters,
70               (uint32_t ssrc),
71               (const, override));
72   MOCK_METHOD(webrtc::RTCError,
73               SetRtpSendParameters,
74               (uint32_t ssrc,
75                const webrtc::RtpParameters& parameters,
76                webrtc::SetParametersCallback callback),
77               (override));
78   MOCK_METHOD(
79       void,
80       SetEncoderToPacketizerFrameTransformer,
81       (uint32_t ssrc,
82        rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer),
83       (override));
84   MOCK_METHOD(
85       void,
86       SetDepacketizerToDecoderFrameTransformer,
87       (uint32_t ssrc,
88        rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer),
89       (override));
90 
91   MOCK_METHOD(bool,
92               SetSendParameters,
93               (const AudioSendParameters& params),
94               (override));
95   MOCK_METHOD(bool,
96               SetRecvParameters,
97               (const AudioRecvParameters& params),
98               (override));
99   MOCK_METHOD(webrtc::RtpParameters,
100               GetRtpReceiveParameters,
101               (uint32_t ssrc),
102               (const, override));
103   MOCK_METHOD(webrtc::RtpParameters,
104               GetDefaultRtpReceiveParameters,
105               (),
106               (const, override));
107   MOCK_METHOD(void, SetPlayout, (bool playout), (override));
108   MOCK_METHOD(void, SetSend, (bool send), (override));
109   MOCK_METHOD(bool,
110               SetAudioSend,
111               (uint32_t ssrc,
112                bool enable,
113                const AudioOptions* options,
114                AudioSource* source),
115               (override));
116   MOCK_METHOD(bool,
117               SetOutputVolume,
118               (uint32_t ssrc, double volume),
119               (override));
120   MOCK_METHOD(bool, SetDefaultOutputVolume, (double volume), (override));
121   MOCK_METHOD(bool, CanInsertDtmf, (), (override));
122   MOCK_METHOD(bool,
123               InsertDtmf,
124               (uint32_t ssrc, int event, int duration),
125               (override));
126   MOCK_METHOD(bool,
127               GetStats,
128               (VoiceMediaInfo * info, bool get_and_clear_legacy_stats),
129               (override));
130   MOCK_METHOD(void,
131               SetRawAudioSink,
132               (uint32_t ssrc, std::unique_ptr<webrtc::AudioSinkInterface> sink),
133               (override));
134   MOCK_METHOD(void,
135               SetDefaultRawAudioSink,
136               (std::unique_ptr<webrtc::AudioSinkInterface> sink),
137               (override));
138   MOCK_METHOD(std::vector<webrtc::RtpSource>,
139               GetSources,
140               (uint32_t ssrc),
141               (const, override));
142 
143   MOCK_METHOD(bool,
144               SetBaseMinimumPlayoutDelayMs,
145               (uint32_t ssrc, int delay_ms),
146               (override));
147   MOCK_METHOD(absl::optional<int>,
148               GetBaseMinimumPlayoutDelayMs,
149               (uint32_t ssrc),
150               (const, override));
151 };
152 }  // namespace cricket
153 
154 #endif  // PC_TEST_MOCK_VOICE_MEDIA_CHANNEL_H_
155