• 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 /**
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