• 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 #include "media_errors.h"
17 #include "cachebuffer_unittest.h"
18 
19 namespace OHOS {
20 namespace Media {
21 using namespace std;
22 using namespace testing;
23 using namespace testing::ext;
24 
SetUpTestCase(void)25 void SoundPoolCacheBufferUnitTest::SetUpTestCase(void)
26 {
27 }
28 
TearDownTestCase(void)29 void SoundPoolCacheBufferUnitTest::TearDownTestCase(void)
30 {
31 }
32 
SetUp(void)33 void SoundPoolCacheBufferUnitTest::SetUp(void)
34 {
35     Format trackFormat;
36     int32_t soundID = 1;
37     int32_t streamID = 10;
38     std::shared_ptr<ThreadPool> cacheBufferStopThreadPool;
39     cacheBuffer_ = std::make_shared<CacheBuffer>(trackFormat, soundID, streamID, cacheBufferStopThreadPool);
40 }
41 
TearDown(void)42 void SoundPoolCacheBufferUnitTest::TearDown(void)
43 {
44     cacheBuffer_ = nullptr;
45 }
46 
47 
48 // @tc.name     Test DealPlayParamsBeforePlay API
49 // @tc.number   CacheBuferDealPlayParamsBeforePlayUnittest_001
50 HWTEST_F(SoundPoolCacheBufferUnitTest, CacheBuferDealPlayParamsBeforePlayUnittest_001, TestSize.Level0)
51 {
52     ASSERT_NE(cacheBuffer_, nullptr);
53     auto audioRenderer = std::make_unique<MockAudioRender>();
54     EXPECT_CALL(*(audioRenderer), SetRenderRate(_)).Times(1).WillRepeatedly(testing::Return(0));
55     EXPECT_CALL(*(audioRenderer), SetVolume(_)).Times(1).WillRepeatedly(testing::Return(0));
56     EXPECT_CALL(*(audioRenderer), SetOffloadAllowed(_)).Times(1).WillRepeatedly(testing::Return(0));
57     EXPECT_CALL(*(audioRenderer), SetParallelPlayFlag(_)).Times(1).WillRepeatedly(testing::Return(0));
58     EXPECT_CALL(*(audioRenderer), SetAudioHapticsSyncId(_)).Times(1).WillRepeatedly(testing::Return());
59     cacheBuffer_->audioRenderer_ = std::move(audioRenderer);
60     int32_t audioHapticsSyncId = 1;
61     struct PlayParams playParameters;
62     playParameters.loop = -1;
63     playParameters.rate = 0;
64     playParameters.leftVolume = 0.5;
65     playParameters.rightVolume = 0.3;
66     playParameters.priority = 1;
67     playParameters.parallelPlayFlag = true;
68     playParameters.audioHapticsSyncId = audioHapticsSyncId;
69     cacheBuffer_->DealPlayParamsBeforePlay(playParameters);
70     ASSERT_EQ(cacheBuffer_->loop_, playParameters.loop);
71     ASSERT_EQ(cacheBuffer_->priority_, playParameters.priority);
72 }
73 
74 /**
75  * @tc.name  : Test CreateAudioRenderer
76  * @tc.number: CreateAudioRenderer_001
77  * @tc.desc  : Test returns NORMAL_PLAY_RENDERER_FLAGS
78  */
79 HWTEST_F(SoundPoolCacheBufferUnitTest, CreateAudioRenderer_001, TestSize.Level0)
80 {
81     ASSERT_NE(cacheBuffer_, nullptr);
82     AudioStandard::AudioRendererInfo info;
83     PlayParams playParams;
84     cacheBuffer_->rendererFlags_ = AudioStandard::AUDIO_FLAG_VKB_FAST;
85 
86     cacheBuffer_->CreateAudioRenderer(info, playParams);
87 
88     EXPECT_EQ(cacheBuffer_->rendererFlags_, CacheBuffer::NORMAL_PLAY_RENDERER_FLAGS);
89 }
90 
91 /**
92  * @tc.name  : Test CreateAudioRenderer
93  * @tc.number: CreateAudioRenderer_002
94  * @tc.desc  : Test returns NORMAL_PLAY_RENDERER_FLAGS
95  */
96 HWTEST_F(SoundPoolCacheBufferUnitTest, CreateAudioRenderer_002, TestSize.Level0)
97 {
98     ASSERT_NE(cacheBuffer_, nullptr);
99     AudioStandard::AudioRendererInfo info;
100     PlayParams playParams;
101     cacheBuffer_->rendererFlags_ = AudioStandard::AUDIO_FLAG_VKB_NORMAL;
102 
103     cacheBuffer_->CreateAudioRenderer(info, playParams);
104 
105     EXPECT_EQ(cacheBuffer_->rendererFlags_, CacheBuffer::NORMAL_PLAY_RENDERER_FLAGS);
106 }
107 
108 /**
109  * @tc.name  : Test CreateAudioRenderer
110  * @tc.number: CreateAudioRenderer_003
111  * @tc.desc  : Test returns NORMAL_PLAY_RENDERER_FLAGS
112  */
113 HWTEST_F(SoundPoolCacheBufferUnitTest, CreateAudioRenderer_003, TestSize.Level0)
114 {
115     ASSERT_NE(cacheBuffer_, nullptr);
116     AudioStandard::AudioRendererInfo info;
117     PlayParams playParams;
118 
119     cacheBuffer_->CreateAudioRenderer(info, playParams);
120 
121     EXPECT_EQ(cacheBuffer_->rendererFlags_, CacheBuffer::NORMAL_PLAY_RENDERER_FLAGS);
122 }
123 } // namespace Media
124 } // namespace OHOS
125