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 }