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 ¶ms), (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 ×tamp, Timestamp::Timestampbase base), (const, override)); 60 MOCK_METHOD(bool, GetAudioPosition, (Timestamp ×tamp, 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 ×tamp, Timestamp::Timestampbase base), (const, override)); 135 }; 136 137 } // namespace Plugins 138 } // namespace Media 139 } // namespace OHOS 140 #endif // AUDIO_SERVER_SINK_PLUGIN_UNITTEST_H