blob: 209962358d1f9a8557df2edf94f2abfa835e6913 [file] [log] [blame]
Steve Anton60be6a92020-11-05 14:32:18 -08001/*
2 * Copyright 2020 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#ifndef API_TEST_MOCK_MEDIA_STREAM_INTERFACE_H_
12#define API_TEST_MOCK_MEDIA_STREAM_INTERFACE_H_
13
14#include <string>
15
16#include "api/media_stream_interface.h"
17#include "test/gmock.h"
18
19namespace webrtc {
20
21class MockAudioSource final
22 : public rtc::RefCountedObject<AudioSourceInterface> {
23 public:
24 static rtc::scoped_refptr<MockAudioSource> Create() {
Niels Möller961f3822022-01-12 10:06:55 +010025 return rtc::scoped_refptr<MockAudioSource>(new MockAudioSource());
Steve Anton60be6a92020-11-05 14:32:18 -080026 }
27
28 MOCK_METHOD(void,
29 RegisterObserver,
30 (ObserverInterface * observer),
31 (override));
32 MOCK_METHOD(void,
33 UnregisterObserver,
34 (ObserverInterface * observer),
35 (override));
36 MOCK_METHOD(SourceState, state, (), (const, override));
37 MOCK_METHOD(bool, remote, (), (const, override));
38 MOCK_METHOD(void, SetVolume, (double volume), (override));
39 MOCK_METHOD(void,
40 RegisterAudioObserver,
41 (AudioObserver * observer),
42 (override));
43 MOCK_METHOD(void,
44 UnregisterAudioObserver,
45 (AudioObserver * observer),
46 (override));
47 MOCK_METHOD(void, AddSink, (AudioTrackSinkInterface * sink), (override));
48 MOCK_METHOD(void, RemoveSink, (AudioTrackSinkInterface * sink), (override));
49 MOCK_METHOD(const cricket::AudioOptions, options, (), (const, override));
50
51 private:
52 MockAudioSource() = default;
53};
54
55class MockAudioTrack final : public rtc::RefCountedObject<AudioTrackInterface> {
56 public:
57 static rtc::scoped_refptr<MockAudioTrack> Create() {
Niels Möller961f3822022-01-12 10:06:55 +010058 return rtc::scoped_refptr<MockAudioTrack>(new MockAudioTrack());
Steve Anton60be6a92020-11-05 14:32:18 -080059 }
60
61 MOCK_METHOD(void,
62 RegisterObserver,
63 (ObserverInterface * observer),
64 (override));
65 MOCK_METHOD(void,
66 UnregisterObserver,
67 (ObserverInterface * observer),
68 (override));
69 MOCK_METHOD(std::string, kind, (), (const, override));
Ali Tofighc98687a2022-01-25 14:06:33 +010070 MOCK_METHOD(std::string, id, (), (const, override));
Steve Anton60be6a92020-11-05 14:32:18 -080071 MOCK_METHOD(bool, enabled, (), (const, override));
72 MOCK_METHOD(bool, set_enabled, (bool enable), (override));
73 MOCK_METHOD(TrackState, state, (), (const, override));
74 MOCK_METHOD(AudioSourceInterface*, GetSource, (), (const, override));
75 MOCK_METHOD(void, AddSink, (AudioTrackSinkInterface * sink), (override));
76 MOCK_METHOD(void, RemoveSink, (AudioTrackSinkInterface * sink), (override));
77 MOCK_METHOD(bool, GetSignalLevel, (int* level), (override));
78 MOCK_METHOD(rtc::scoped_refptr<AudioProcessorInterface>,
79 GetAudioProcessor,
80 (),
81 (override));
82
83 private:
84 MockAudioTrack() = default;
85};
86
Harald Alvestrande2c780e2022-04-26 14:43:42 +000087class MockMediaStream : public MediaStreamInterface {
88 public:
89 MOCK_METHOD(std::string, id, (), (const override));
90 MOCK_METHOD(AudioTrackVector, GetAudioTracks, (), (override));
91 MOCK_METHOD(VideoTrackVector, GetVideoTracks, (), (override));
92 MOCK_METHOD(rtc::scoped_refptr<AudioTrackInterface>,
93 FindAudioTrack,
94 (const std::string& track_id),
95 (override));
96 MOCK_METHOD(rtc::scoped_refptr<VideoTrackInterface>,
97 FindVideoTrack,
98 (const std::string& track_id),
99 (override));
100 MOCK_METHOD(bool,
101 AddTrack,
102 (rtc::scoped_refptr<AudioTrackInterface> track),
103 (override));
104 MOCK_METHOD(bool,
105 AddTrack,
106 (rtc::scoped_refptr<VideoTrackInterface> track),
107 (override));
108 MOCK_METHOD(bool,
109 RemoveTrack,
110 (rtc::scoped_refptr<AudioTrackInterface> track),
111 (override));
112 MOCK_METHOD(bool,
113 RemoveTrack,
114 (rtc::scoped_refptr<VideoTrackInterface> track),
115 (override));
116 // Old AddTrack/RemoveTrack methods - slated for removal
117 MOCK_METHOD(bool, AddTrack, (AudioTrackInterface * track), (override));
118 MOCK_METHOD(bool, AddTrack, (VideoTrackInterface * track), (override));
119 MOCK_METHOD(bool, RemoveTrack, (AudioTrackInterface * track), (override));
120 MOCK_METHOD(bool, RemoveTrack, (VideoTrackInterface * track), (override));
121 MOCK_METHOD(void,
122 RegisterObserver,
123 (ObserverInterface * observer),
124 (override));
125 MOCK_METHOD(void,
126 UnregisterObserver,
127 (ObserverInterface * observer),
128 (override));
129};
130
131static_assert(!std::is_abstract_v<rtc::RefCountedObject<MockMediaStream>>, "");
132
Steve Anton60be6a92020-11-05 14:32:18 -0800133} // namespace webrtc
134
135#endif // API_TEST_MOCK_MEDIA_STREAM_INTERFACE_H_