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 };
50
SetUpTestCase(void)51 void AudioHdiManagerTest::SetUpTestCase(void) {}
52
TearDownTestCase(void)53 void AudioHdiManagerTest::TearDownTestCase(void) {}
SetUp(void)54 void AudioHdiManagerTest::SetUp(void) {}
55
TearDown(void)56 void AudioHdiManagerTest::TearDown(void) {}
57
58 /**
59 * @tc.name Test ReleaseAudioManagerObject API via legal input
60 * @tc.number SUB_Audio_HDI_ReleaseAudioManagerObject_0001
61 * @tc.desc test ReleaseAudioManagerObject interface,Returns true if audiomanager is relaaseed successfully
62 */
63 HWTEST_F(AudioHdiManagerTest, SUB_Audio_HDI_ReleaseAudioManagerObject_0001, TestSize.Level1)
64 {
65 bool ret;
66 TestAudioManager *manager = nullptr;
67
68
69 manager = GetAudioManagerFuncs();
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 Test ReleaseAudioManagerObject API via setting the incoming parameter manager is nullptr
80 * @tc.number SUB_Audio_HDI_ReleaseAudioManagerObject_0002
81 * @tc.desc test ReleaseAudioManagerObject interface,Returns false if setting the incoming
82 parameter manager is nullptr
83 */
84
85 HWTEST_F(AudioHdiManagerTest, SUB_Audio_HDI_ReleaseAudioManagerObject_0002, TestSize.Level1)
86 {
87 bool ret;
88 TestAudioManager *manager = nullptr;
89
90
91 manager = GetAudioManagerFuncs();
92 ASSERT_NE(nullptr, manager);
93 TestAudioManager *managerNull = nullptr;
94
95 ret = manager->ReleaseAudioManagerObject(managerNull);
96 EXPECT_FALSE(ret);
97
98 ret = manager->ReleaseAudioManagerObject(manager);
99 EXPECT_TRUE(ret);
100 }
101 /**
102 * @tc.name Test ReleaseAudioManagerObject API via setting the incoming parameter manager is illlegal
103 * @tc.number SUB_Audio_HDI_ReleaseAudioManagerObject_0003
104 * @tc.desc test ReleaseAudioManagerObject interface,Returns false if setting the incoming
105 parameter manager is illlegal
106 */
107 HWTEST_F(AudioHdiManagerTest, SUB_Audio_HDI_ReleaseAudioManagerObject_0003, TestSize.Level1)
108 {
109 bool ret;
110 TestAudioManager *manager = nullptr;
111
112
113 manager = GetAudioManagerFuncs();
114 ASSERT_NE(nullptr, manager);
115 TestAudioManager errorManager = {};
116
117 ret = manager->ReleaseAudioManagerObject(&errorManager);
118 EXPECT_FALSE(ret);
119
120 ret = manager->ReleaseAudioManagerObject(manager);
121 EXPECT_TRUE(ret);
122 }
123 /**
124 * @tc.name Test ReleaseAudioManagerObject API via getting audiomanager one more time after Releasing
125 * @tc.number SUB_Audio_HDI_ReleaseAudioManagerObject_0004
126 * @tc.desc test ReleaseAudioManagerObject interface,audiomanager can be getted after Releasing
127 */
128 HWTEST_F(AudioHdiManagerTest, SUB_Audio_HDI_ReleaseAudioManagerObject_0004, TestSize.Level1)
129 {
130 bool ret;
131 TestAudioManager *manager = nullptr;
132
133
134 manager = GetAudioManagerFuncs();
135 ASSERT_NE(nullptr, manager);
136
137 ret = manager->ReleaseAudioManagerObject(manager);
138 EXPECT_TRUE(ret);
139
140 manager = GetAudioManagerFuncs();
141 ASSERT_NE(nullptr, manager);
142 ASSERT_NE(nullptr, manager->GetAllAdapters);
143 ASSERT_NE(nullptr, manager->LoadAdapter);
144 ASSERT_NE(nullptr, manager->UnloadAdapter);
145
146 ret = manager->ReleaseAudioManagerObject(manager);
147 EXPECT_TRUE(ret);
148 }
149 }
150