• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 "audio_adapter.h"
18 #include "avsession_log.h"
19 #include "audio_info.h"
20 
21 using namespace testing::ext;
22 using namespace OHOS::AVSession;
23 using OHOS::AudioStandard::AudioRendererChangeInfo;
24 using OHOS::AudioStandard::RendererState;
25 
26 class AudioAdapterTest : public testing::Test {
27 public:
28     static void SetUpTestCase(void);
29     static void TearDownTestCase(void);
30     void SetUp();
31     void TearDown();
32 
33     static constexpr int32_t TEST_CLIENT_UID = 1;
34     static constexpr int32_t TEST_SESSION_ID = 2;
35 };
36 
SetUpTestCase()37 void AudioAdapterTest::SetUpTestCase()
38 {}
39 
TearDownTestCase()40 void AudioAdapterTest::TearDownTestCase()
41 {}
42 
SetUp()43 void AudioAdapterTest::SetUp()
44 {}
45 
TearDown()46 void AudioAdapterTest::TearDown()
47 {}
48 
49 /**
50 * @tc.name: OnRendererStateChange001
51 * @tc.desc: verifying the renderer state listener
52 * @tc.type: FUNC
53 * @tc.require: AR000H31KJ
54 */
55 static HWTEST(AudioAdapterTest, OnRendererStateChange001, TestSize.Level1)
56 {
57     SLOGI("OnRendererStateChange001 begin!");
58     std::unique_ptr<AudioRendererChangeInfo> info = std::make_unique<AudioRendererChangeInfo>();
59     info->clientUID = AudioAdapterTest::TEST_CLIENT_UID;
60     info->sessionId = AudioAdapterTest::TEST_SESSION_ID;
61     info->rendererState = RendererState::RENDERER_RELEASED;
62     AudioRendererChangeInfos infosExpected;
63     infosExpected.push_back(std::move(info));
64     AudioRendererChangeInfos infosActual;
65 
66     AudioAdapter::GetInstance().Init();
__anon24c8a6cf0102(const AudioRendererChangeInfos& infos) 67     AudioAdapter::GetInstance().AddStreamRendererStateListener([&infosActual](const AudioRendererChangeInfos& infos) {
68         SLOGI("AddStreamRendererStateListener start!");
69         for (const auto& info : infos) {
70             std::unique_ptr<AudioRendererChangeInfo> infoActual = std::make_unique<AudioRendererChangeInfo>();
71             *infoActual = *info;
72             infosActual.push_back(std::move(infoActual));
73         }
74         SLOGI("AddStreamRendererStateListener end!");
75     });
76     AudioAdapter::GetInstance().OnRendererStateChange(infosExpected);
77 
78     ASSERT_NE(infosActual.size(), 0);
79     const auto& infoExpected = infosExpected[0];
80     const auto& infoActual = infosActual[0];
81     EXPECT_EQ(infoExpected->clientUID, infoActual->clientUID);
82     EXPECT_EQ(infoExpected->sessionId, infoActual->sessionId);
83     EXPECT_EQ(infoExpected->rendererState, infoActual->rendererState);
84     SLOGI("OnRendererStateChange001 end!");
85 }