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 /**
17 * @addtogroup Audio
18 * @{
19 *
20 * @brief Test audio-related APIs,functions for release audiomanager,
21 *
22 * @since 1.0
23 * @version 1.0
24 */
25
26 /**
27 * @file audio_hdi_common.h
28 *
29 * @brief Declares APIs for operations related to the audio manager.
30 *
31 * @since 1.0
32 * @version 1.0
33 */
34
35 #include "audio_hdi_common.h"
36 #include "audio_hdimanager_test.h"
37
38 using namespace std;
39 using namespace testing::ext;
40 using namespace OHOS::Audio;
41
42 namespace {
43 class AudioHdiManagerTest : public testing::Test {
44 public:
45 static void SetUpTestCase(void);
46 static void TearDownTestCase(void);
47 void SetUp();
48 void TearDown();
49 TestAudioManager *manager = nullptr;
50 };
51
SetUpTestCase(void)52 void AudioHdiManagerTest::SetUpTestCase(void) {}
TearDownTestCase(void)53 void AudioHdiManagerTest::TearDownTestCase(void) {}
SetUp(void)54 void AudioHdiManagerTest::SetUp(void)
55 {
56 manager = GetAudioManagerFuncs();
57 ASSERT_NE(nullptr, manager);
58 }
59
TearDown(void)60 void AudioHdiManagerTest::TearDown(void) {}
61
62 /**
63 * @tc.name AudioReleaseAudioManagerObject_001
64 * @tc.desc test ReleaseAudioManagerObject interface,Returns true if audiomanager is relaaseed successfully
65 * @tc.type: FUNC
66 */
67 HWTEST_F(AudioHdiManagerTest, AudioReleaseAudioManagerObject_001, TestSize.Level1)
68 {
69 bool ret;
70 ASSERT_NE(nullptr, manager);
71
72 ret = manager->ReleaseAudioManagerObject(manager);
73 EXPECT_TRUE(ret);
74 ASSERT_EQ(nullptr, manager->GetAllAdapters);
75 ASSERT_EQ(nullptr, manager->LoadAdapter);
76 ASSERT_EQ(nullptr, manager->UnloadAdapter);
77 }
78 /**
79 * @tc.name AudioReleaseAudioManagerObject_002
80 * @tc.desc test ReleaseAudioManagerObject interface,Returns false if setting the incoming
81 parameter manager is nullptr
82 * @tc.type: FUNC
83 */
84
85 HWTEST_F(AudioHdiManagerTest, AudioReleaseAudioManagerObject_002, TestSize.Level1)
86 {
87 bool ret;
88 ASSERT_NE(nullptr, manager);
89 TestAudioManager *managerNull = nullptr;
90
91 ret = manager->ReleaseAudioManagerObject(managerNull);
92 EXPECT_FALSE(ret);
93
94 ret = manager->ReleaseAudioManagerObject(manager);
95 EXPECT_TRUE(ret);
96 }
97 /**
98 * @tc.name AudioReleaseAudioManagerObject_003
99 * @tc.desc test ReleaseAudioManagerObject interface,Returns false if setting the incoming
100 parameter manager is illlegal
101 * @tc.type: FUNC
102 */
103 HWTEST_F(AudioHdiManagerTest, AudioReleaseAudioManagerObject_003, TestSize.Level1)
104 {
105 bool ret;
106 ASSERT_NE(nullptr, manager);
107 TestAudioManager errorManager = {};
108
109 ret = manager->ReleaseAudioManagerObject(&errorManager);
110 EXPECT_FALSE(ret);
111
112 ret = manager->ReleaseAudioManagerObject(manager);
113 EXPECT_TRUE(ret);
114 }
115 /**
116 * @tc.name AudioReleaseAudioManagerObject_004
117 * @tc.desc test ReleaseAudioManagerObject interface,audiomanager can be getted after Releasing
118 * @tc.type: FUNC
119 */
120 HWTEST_F(AudioHdiManagerTest, AudioReleaseAudioManagerObject_004, TestSize.Level1)
121 {
122 bool ret;
123 ASSERT_NE(nullptr, manager);
124
125 ret = manager->ReleaseAudioManagerObject(manager);
126 EXPECT_TRUE(ret);
127
128 manager = GetAudioManagerFuncs();
129 ASSERT_NE(nullptr, manager);
130 ASSERT_NE(nullptr, manager->GetAllAdapters);
131 ASSERT_NE(nullptr, manager->LoadAdapter);
132 ASSERT_NE(nullptr, manager->UnloadAdapter);
133
134 ret = manager->ReleaseAudioManagerObject(manager);
135 EXPECT_TRUE(ret);
136 }
137 }
138