1 /*
2  * Copyright (c) 2023-2023 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 #include "gtest/gtest.h"
17 #include "plugin/plugins/sink/audio_server_sink/audio_server_sink_plugin.h"
18 
19 using namespace testing::ext;
20 using namespace OHOS::Media::Plugin;
21 using namespace OHOS::Media::Plugin::AuSrSinkPlugin;
22 
23 namespace OHOS {
24 namespace Media {
25 namespace Test {
AudioServerSinkPluginCreate(const std::string & name)26 std::shared_ptr<AudioSinkPlugin> AudioServerSinkPluginCreate(const std::string& name)
27 {
28     return std::make_shared<AudioServerSinkPlugin>(name);
29 }
30 
31 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_process, TestSize.Level1)
32 {
33     std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("process");
34     ASSERT_TRUE(audioSinkPlugin != nullptr);
35     auto initStatus = audioSinkPlugin->Init();
36     ASSERT_TRUE(initStatus == Status::OK);
37     auto freeStatus = audioSinkPlugin->Deinit();
38     ASSERT_TRUE(freeStatus == Status::OK);
39 }
40 
41 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_parameter, TestSize.Level1)
42 {
43     std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get parameter");
44     ASSERT_TRUE(audioSinkPlugin != nullptr);
45     ValueType para;
46     auto sampleRateStatus =  audioSinkPlugin->GetParameter(Tag::AUDIO_SAMPLE_RATE, para);
47     ASSERT_TRUE(sampleRateStatus == Status::OK);
48     auto outputChannelsStatus =  audioSinkPlugin->GetParameter(Tag::AUDIO_OUTPUT_CHANNELS, para);
49     ASSERT_TRUE(outputChannelsStatus == Status::OK);
50     auto outputLayoutStatus =  audioSinkPlugin->GetParameter(Tag::AUDIO_OUTPUT_CHANNEL_LAYOUT, para);
51     ASSERT_TRUE(outputLayoutStatus == Status::OK);
52     auto bitrateStatus =  audioSinkPlugin->GetParameter(Tag::MEDIA_BITRATE, para);
53     ASSERT_TRUE(bitrateStatus == Status::OK);
54     auto sampleFormatStatus =  audioSinkPlugin->GetParameter(Tag::AUDIO_SAMPLE_FORMAT, para);
55     ASSERT_TRUE(sampleFormatStatus == Status::OK);
56 }
57 
58 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_allocator, TestSize.Level1)
59 {
60     std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get allocator");
61     ASSERT_TRUE(audioSinkPlugin != nullptr);
62     auto allocator =  audioSinkPlugin->GetAllocator();
63     ASSERT_TRUE(allocator == nullptr);
64 }
65 
66 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_mute, TestSize.Level1)
67 {
68     std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get mute");
69     ASSERT_TRUE(audioSinkPlugin != nullptr);
70     bool mute = false;
71     auto muteStatus = audioSinkPlugin->GetMute(mute);
72     ASSERT_TRUE(muteStatus == Status::OK);
73 }
74 
75 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_set_mute, TestSize.Level1)
76 {
77     std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("set mute");
78     ASSERT_TRUE(audioSinkPlugin != nullptr);
79     bool mute = false;
80     auto muteStatus = audioSinkPlugin->SetMute(mute);
81     ASSERT_TRUE(muteStatus == Status::OK);
82 }
83 
84 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_speed, TestSize.Level1)
85 {
86     std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get speed");
87     ASSERT_TRUE(audioSinkPlugin != nullptr);
88     float speed;
89     auto speedStatus = audioSinkPlugin->GetSpeed(speed);
90     ASSERT_TRUE(speedStatus == Status::OK);
91 }
92 
93 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_set_speed, TestSize.Level1)
94 {
95     std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("set speed");
96     ASSERT_TRUE(audioSinkPlugin != nullptr);
97     float speed = 0.0f;
98     auto speedStatus = audioSinkPlugin->SetSpeed(speed);
99     ASSERT_TRUE(speedStatus == Status::OK);
100 }
101 
102 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_frame_size, TestSize.Level1)
103 {
104     std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get frame size");
105     ASSERT_TRUE(audioSinkPlugin != nullptr);
106     size_t frameSize;
107     auto frameSizeStatus =  audioSinkPlugin->GetFrameSize(frameSize);
108     ASSERT_TRUE(frameSizeStatus == Status::OK);
109 }
110 
111 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_set_frame_count, TestSize.Level1)
112 {
113     std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("set frame count");
114     ASSERT_TRUE(audioSinkPlugin != nullptr);
115     uint32_t frameCount;
116     auto frameCountStatus =  audioSinkPlugin->GetFrameCount(frameCount);
117     ASSERT_TRUE(frameCountStatus == Status::OK);
118 }
119 
120 HWTEST(TestAudioSinkPlugin, find_audio_sink_plugins_get_latency, TestSize.Level1)
121 {
122     std::shared_ptr<AudioSinkPlugin> audioSinkPlugin = AudioServerSinkPluginCreate("get latency");
123     ASSERT_TRUE(audioSinkPlugin != nullptr);
124     uint64_t hstTime;
125     auto latencyStatus =  audioSinkPlugin->GetLatency(hstTime);
126     ASSERT_TRUE(latencyStatus == Status::OK);
127 }
128 
129 } // namespace Test
130 } // namespace Media
131 } // namespace OHOS