• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef AUDIO_SERVER_SINK_PLUGIN_UNITTEST_H
17 #define AUDIO_SERVER_SINK_PLUGIN_UNITTEST_H
18 
19 #include "gtest/gtest.h"
20 #include "gmock/gmock.h"
21 #include "audio_server_sink_plugin.h"
22 
23 namespace OHOS {
24 namespace Media {
25 namespace Plugins {
26 using namespace OHOS::AudioStandard;
27 
28 class AudioServerSinkPluginUnitTest : public testing::Test {
29 public:
30     static void SetUpTestCase(void);
31     static void TearDownTestCase(void);
32     void SetUp(void);
33     void TearDown(void);
34     std::shared_ptr<AudioServerSinkPlugin> plugin_;
35 };
36 
37 class MockEventReceiver : public OHOS::Media::Pipeline::EventReceiver {
38 public:
39     MOCK_METHOD(void, OnEvent, (const Event& event), (override));
40     MOCK_METHOD(void, OnDfxEvent, (const DfxEvent& event), (override));
41     MOCK_METHOD(void, NotifyRelease, (), (override));
42     MOCK_METHOD(void, OnMemoryUsageEvent, (const DfxEvent& event), (override));
43 };
44 
45 class MockAudioRenderer : public AudioRenderer {
46 public:
47     MOCK_METHOD(void, SetAudioPrivacyType, (AudioPrivacyType privacyType), (override));
48     MOCK_METHOD(AudioPrivacyType, GetAudioPrivacyType, (), (override));
49     MOCK_METHOD(int32_t, SetParams, (const AudioRendererParams params), (override));
50     MOCK_METHOD(int32_t, SetRendererCallback, (const std::shared_ptr<AudioRendererCallback> &callback), (override));
51     MOCK_METHOD(int32_t, GetParams, (AudioRendererParams &params), (const, override));
52     MOCK_METHOD(int32_t, GetRendererInfo, (AudioRendererInfo &rendererInfo), (const, override));
53     MOCK_METHOD(int32_t, GetStreamInfo, (AudioStreamInfo &streamInfo), (const, override));
54     MOCK_METHOD(bool, Start, (StateChangeCmdType cmdType), (override));
55     MOCK_METHOD(int32_t, Write, (uint8_t *buffer, size_t bufferSize), (override));
56     MOCK_METHOD(int32_t, Write,
57         (uint8_t *pcmBuffer, size_t pcmBufferSize, uint8_t *metaBuffer, size_t metaBufferSize), (override));
58     MOCK_METHOD(RendererState, GetStatus, (), (const, override));
59     MOCK_METHOD(bool, GetAudioTime, (Timestamp &timestamp, Timestamp::Timestampbase base), (const, override));
60     MOCK_METHOD(bool, GetAudioPosition, (Timestamp &timestamp, Timestamp::Timestampbase base), (override));
61     MOCK_METHOD(int32_t, GetLatency, (uint64_t &latency), (const, override));
62     MOCK_METHOD(bool, Drain, (), (const, override));
63     MOCK_METHOD(bool, Flush, (), (const, override));
64     MOCK_METHOD(bool, PauseTransitent, (StateChangeCmdType cmdType), (override));
65     MOCK_METHOD(bool, Pause, (StateChangeCmdType cmdType), (override));
66     MOCK_METHOD(bool, Stop, (), (override));
67     MOCK_METHOD(bool, Release, (), (override));
68     MOCK_METHOD(int32_t, GetBufferSize, (size_t &bufferSize), (const, override));
69     MOCK_METHOD(int32_t, GetAudioStreamId, (uint32_t &sessionID), (const, override));
70     MOCK_METHOD(int32_t, GetFrameCount, (uint32_t &frameCount), (const, override));
71     MOCK_METHOD(int32_t, SetAudioRendererDesc, (AudioRendererDesc audioRendererDesc), (override));
72     MOCK_METHOD(int32_t, SetStreamType, (AudioStreamType audioStreamType), (override));
73     MOCK_METHOD(int32_t, SetVolume, (float volume), (const, override));
74     MOCK_METHOD(float, GetVolume, (), (const, override));
75     MOCK_METHOD(int32_t, SetRenderRate, (AudioRendererRate renderRate), (const, override));
76     MOCK_METHOD(AudioRendererRate, GetRenderRate, (), (const, override));
77     MOCK_METHOD(int32_t, SetRendererSamplingRate, (uint32_t sampleRate), (const, override));
78     MOCK_METHOD(uint32_t, GetRendererSamplingRate, (), (const, override));
79     MOCK_METHOD(int32_t, SetRendererPositionCallback,
80         (int64_t markPosition, const std::shared_ptr<RendererPositionCallback> &callback), (override));
81     MOCK_METHOD(void, UnsetRendererPositionCallback, (), (override));
82     MOCK_METHOD(int32_t, SetRendererPeriodPositionCallback,
83         (int64_t frameNumber, const std::shared_ptr<RendererPeriodPositionCallback> &callback), (override));
84     MOCK_METHOD(void, SetFastStatusChangeCallback,
85         (const std::shared_ptr<AudioRendererFastStatusChangeCallback> &callback), (override));
86     MOCK_METHOD(void, UnsetRendererPeriodPositionCallback, (), (override));
87     MOCK_METHOD(int32_t, SetBufferDuration, (uint64_t bufferDuration), (const, override));
88     MOCK_METHOD(int32_t, SetRenderMode, (AudioRenderMode renderMode), (override));
89     MOCK_METHOD(AudioRenderMode, GetRenderMode, (), (const, override));
90     MOCK_METHOD(int32_t, SetRendererWriteCallback,
91         (const std::shared_ptr<AudioRendererWriteCallback> &callback), (override));
92     MOCK_METHOD(int32_t, SetRendererFirstFrameWritingCallback,
93         (const std::shared_ptr<AudioRendererFirstFrameWritingCallback> &callback), (override));
94     MOCK_METHOD(int32_t, GetBufferDesc, (BufferDesc &bufDesc), (override));
95     MOCK_METHOD(int32_t, Enqueue, (const BufferDesc &bufDesc), (override));
96     MOCK_METHOD(int32_t, Clear, (), (const, override));
97     MOCK_METHOD(int32_t, GetBufQueueState, (BufferQueueState &bufState), (const, override));
98     MOCK_METHOD(void, SetInterruptMode, (InterruptMode mode), (override));
99     MOCK_METHOD(int32_t, SetParallelPlayFlag, (bool parallelPlayFlag), (override));
100     MOCK_METHOD(int32_t, SetLowPowerVolume, (float volume), (const, override));
101     MOCK_METHOD(float, GetLowPowerVolume, (), (const, override));
102     MOCK_METHOD(int32_t, SetOffloadAllowed, (bool isAllowed), (override));
103     MOCK_METHOD(int32_t, SetOffloadMode, (int32_t state, bool isAppBack), (const, override));
104     MOCK_METHOD(int32_t, UnsetOffloadMode, (), (const, override));
105     MOCK_METHOD(float, GetSingleStreamVolume, (), (const, override));
106     MOCK_METHOD(float, GetMinStreamVolume, (), (const, override));
107     MOCK_METHOD(float, GetMaxStreamVolume, (), (const, override));
108     MOCK_METHOD(uint32_t, GetUnderflowCount, (), (const, override));
109     MOCK_METHOD(int32_t, GetCurrentOutputDevices, (AudioDeviceDescriptor &deviceInfo), (const, override));
110     MOCK_METHOD(AudioEffectMode, GetAudioEffectMode, (), (const, override));
111     MOCK_METHOD(int64_t, GetFramesWritten, (), (const, override));
112     MOCK_METHOD(int32_t, SetAudioEffectMode, (AudioEffectMode effectMode), (const, override));
113     MOCK_METHOD(void, SetAudioRendererErrorCallback,
114         (std::shared_ptr<AudioRendererErrorCallback> errorCallback), (override));
115     MOCK_METHOD(int32_t, RegisterOutputDeviceChangeWithInfoCallback,
116         (const std::shared_ptr<AudioRendererOutputDeviceChangeCallback> &callback), (override));
117     MOCK_METHOD(int32_t, UnregisterOutputDeviceChangeWithInfoCallback, (), (override));
118     MOCK_METHOD(int32_t, UnregisterOutputDeviceChangeWithInfoCallback,
119         (const std::shared_ptr<AudioRendererOutputDeviceChangeCallback> &callback), (override));
120     MOCK_METHOD(int32_t, RegisterAudioPolicyServerDiedCb, (const int32_t clientPid,
121         const std::shared_ptr<AudioRendererPolicyServiceDiedCallback> &callback), (override));
122     MOCK_METHOD(int32_t, UnregisterAudioPolicyServerDiedCb, (const int32_t clientPid), (override));
123     MOCK_METHOD(int32_t, SetChannelBlendMode, (ChannelBlendMode blendMode), (override));
124     MOCK_METHOD(int32_t, SetVolumeWithRamp, (float volume, int32_t duration), (override));
125     MOCK_METHOD(void, SetPreferredFrameSize, (int32_t frameSize), (override));
126     MOCK_METHOD(int32_t, SetSpeed, (float speed), (override));
127     MOCK_METHOD(float, GetSpeed, (), (override));
128     MOCK_METHOD(bool, IsFastRenderer, (), (override));
129     MOCK_METHOD(void, SetSilentModeAndMixWithOthers, (bool on), (override));
130     MOCK_METHOD(bool, GetSilentModeAndMixWithOthers, (), (override));
131     MOCK_METHOD(void, EnableVoiceModemCommunicationStartStream, (bool enable), (override));
132     MOCK_METHOD(bool, IsNoStreamRenderer, (), (const, override));
133     MOCK_METHOD(int32_t, GetAudioTimestampInfo,
134         (Timestamp &timestamp, Timestamp::Timestampbase base), (const, override));
135 };
136 
137 } // namespace Plugins
138 } // namespace Media
139 } // namespace OHOS
140 #endif // AUDIO_SERVER_SINK_PLUGIN_UNITTEST_H