1 /*
2 * Copyright (c) 2025 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 "connect_manager_test.h"
17 #include "mc_controller_manager.h"
18
19 #include "../test_log.h"
20
21 using namespace testing;
22 using namespace testing::ext;
23
24 namespace OHOS {
25 namespace MechBodyController {
26 namespace {
27 const std::string BASEDIR = "/data/service/el1/public/database/MechBodyController";
28 const int32_t WAITTIME = 2000;
29 }
30
SetUpTestCase()31 void MechConnectManagerTest::SetUpTestCase()
32 {
33 DTEST_LOG << "MechConnectManagerTest::SetUpTestCase" << std::endl;
34 mkdir(BASEDIR.c_str(), (S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH));
35 }
36
TearDownTestCase()37 void MechConnectManagerTest::TearDownTestCase()
38 {
39 DTEST_LOG << "MechConnectManagerTest::TearDownTestCase" << std::endl;
40 (void)remove(BASEDIR.c_str());
41 }
42
TearDown()43 void MechConnectManagerTest::TearDown()
44 {
45 DTEST_LOG << "MechConnectManagerTest::TearDown" << std::endl;
46 usleep(WAITTIME);
47 }
48
SetUp()49 void MechConnectManagerTest::SetUp()
50 {
51 usleep(WAITTIME);
52 DTEST_LOG << "MechConnectManagerTest::SetUp" << std::endl;
53 }
54
55 /**
56 * @tc.name: Init_001
57 * @tc.desc: test Init func
58 * @tc.type: FUNC
59 */
60 HWTEST_F(MechConnectManagerTest, Init_001, TestSize.Level3)
61 {
62 DTEST_LOG << "MechConnectManagerTest Init_001 begin" << std::endl;
63 MechConnectManager::GetInstance().Init();
64 int32_t mechId = 0;
65 MechInfo mechInfo;
66 bool ret = MechConnectManager::GetInstance().GetMechBasicInfo(mechId, mechInfo);
67 EXPECT_EQ(ret, false);
68 DTEST_LOG << "MechConnectManagerTest Init_001 end" << std::endl;
69 }
70
71 /**
72 * @tc.name: UnInit_001
73 * @tc.desc: test UnInit func
74 * @tc.type: FUNC
75 */
76 HWTEST_F(MechConnectManagerTest, UnInit_001, TestSize.Level3)
77 {
78 DTEST_LOG << "MechConnectManagerTest UnInit_001 begin" << std::endl;
79 MechConnectManager::GetInstance().UnInit();
80 int32_t mechId = 0;
81 MechInfo mechInfo;
82 bool ret = MechConnectManager::GetInstance().GetMechBasicInfo(mechId, mechInfo);
83 EXPECT_EQ(ret, false);
84 DTEST_LOG << "MechConnectManagerTest UnInit_001 end" << std::endl;
85 }
86
87 /**
88 * @tc.name: AddDeviceChangeListener_001
89 * @tc.desc: test AddDeviceChangeListener func
90 * @tc.type: FUNC
91 */
92 HWTEST_F(MechConnectManagerTest, AddDeviceChangeListener_001, TestSize.Level3)
93 {
94 DTEST_LOG << "MechConnectManagerTest AddDeviceChangeListener_001 begin" << std::endl;
95 MechConnectManager::GetInstance().Init();
96 std::shared_ptr<IMechConnectListener> listener = nullptr;
97 int32_t ret = MechConnectManager::GetInstance().AddDeviceChangeListener(listener);
98 EXPECT_EQ(ret, INVALID_PARAMETERS_ERR);
99
100 std::shared_ptr<IMechConnectListener> listenerSecond = std::make_shared<MechConnectListenerImpl>();
101 ret = MechConnectManager::GetInstance().AddDeviceChangeListener(listenerSecond);
102 EXPECT_EQ(ret, ERR_OK);
103 DTEST_LOG << "MechConnectManagerTest AddDeviceChangeListener_001 end" << std::endl;
104 }
105
106 /**
107 * @tc.name: RemoveDeviceChangeListener_001
108 * @tc.desc: test RemoveDeviceChangeListener func
109 * @tc.type: FUNC
110 */
111 HWTEST_F(MechConnectManagerTest, RemoveDeviceChangeListener_001, TestSize.Level3)
112 {
113 DTEST_LOG << "MechConnectManagerTest RemoveDeviceChangeListener_001 begin" << std::endl;
114 const std::shared_ptr<IMechConnectListener> listener = nullptr;
115 int32_t ret = MechConnectManager::GetInstance().RemoveDeviceChangeListener(listener);
116 EXPECT_EQ(ret, INVALID_PARAMETERS_ERR);
117
118 const std::shared_ptr<IMechConnectListener> listenerSecond = std::make_shared<MechConnectListenerImpl>();
119 ret = MechConnectManager::GetInstance().RemoveDeviceChangeListener(listenerSecond);
120 EXPECT_EQ(ret, INVALID_PARAMETERS_ERR);
121 DTEST_LOG << "MechConnectManagerTest RemoveDeviceChangeListener_001 end" << std::endl;
122 }
123
124 /**
125 * @tc.name: NotifyMechConnectr_001
126 * @tc.desc: test NotifyMechConnectr func
127 * @tc.type: FUNC
128 */
129 HWTEST_F(MechConnectManagerTest, NotifyMechConnectr_001, TestSize.Level3)
130 {
131 DTEST_LOG << "MechConnectManagerTest NotifyMechConnectr_001 begin" << std::endl;
132 const std::shared_ptr<IMechConnectListener> listener = nullptr;
133 MechInfo mechInfo;
134 int32_t ret = MechConnectManager::GetInstance().NotifyMechConnect(mechInfo);
135 EXPECT_EQ(ret, ERR_OK);
136 DTEST_LOG << "MechConnectManagerTest NotifyMechConnectr_001 end" << std::endl;
137 }
138
139 /**
140 * @tc.name: NotifyMechDosconnect_001
141 * @tc.desc: test NotifyMechDosconnect func
142 * @tc.type: FUNC
143 */
144 HWTEST_F(MechConnectManagerTest, NotifyMechDosconnect_001, TestSize.Level3)
145 {
146 DTEST_LOG << "MechConnectManagerTest NotifyMechDosconnect_001 begin" << std::endl;
147 MechInfo mechInfo;
148 int32_t ret = MechConnectManager::GetInstance().NotifyMechDisconnect(mechInfo);
149 EXPECT_EQ(ret, ERR_OK);
150 DTEST_LOG << "MechConnectManagerTest NotifyMechDosconnect_001 end" << std::endl;
151 }
152
153 /**
154 * @tc.name: GetMechBasicInfo_001
155 * @tc.desc: test GetMechBasicInfo func
156 * @tc.type: FUNC
157 */
158 HWTEST_F(MechConnectManagerTest, GetMechBasicInfo_001, TestSize.Level3)
159 {
160 DTEST_LOG << "MechConnectManagerTest GetMechBasicInfo_001 begin" << std::endl;
161 int32_t mechId = 0;
162 MechInfo mechInfo;
163 bool ret = MechConnectManager::GetInstance().GetMechBasicInfo(mechId, mechInfo);
164 EXPECT_EQ(ret, false);
165 DTEST_LOG << "MechConnectManagerTest GetMechBasicInfo_001 end" << std::endl;
166 }
167
168 /**
169 * @tc.name: GetMechBasicInfo_002
170 * @tc.desc: test GetMechBasicInfo func
171 * @tc.type: FUNC
172 */
173 HWTEST_F(MechConnectManagerTest, GetMechBasicInfo_002, TestSize.Level3)
174 {
175 DTEST_LOG << "MechConnectManagerTest GetMechBasicInfo_002 begin" << std::endl;
176 const std::shared_ptr<IMechConnectListener> listener = nullptr;
177 MechInfo mechInfo;
178 MechConnectManager::GetInstance().mechInfos_.insert(mechInfo);
179
180 int32_t mechId = 0;
181 int32_t ret = MechConnectManager::GetInstance().GetMechBasicInfo(mechId, mechInfo);
182 EXPECT_EQ(ret, true);
183 DTEST_LOG << "MechConnectManagerTest GetMechBasicInfo_002 end" << std::endl;
184 }
185
186 /**
187 * @tc.name: GetConnectMechList_001
188 * @tc.desc: test GetConnectMechList func
189 * @tc.type: FUNC
190 */
191 HWTEST_F(MechConnectManagerTest, GetConnectMechList_001, TestSize.Level3)
192 {
193 DTEST_LOG << "MechConnectManagerTest GetConnectMechList_001 begin" << std::endl;
194 MechInfo mechInfo;
195 MechConnectManager::GetInstance().mechInfos_.insert(mechInfo);
196
197 std::set<MechInfo> mechInfos;
198 int32_t ret = MechConnectManager::GetInstance().GetConnectMechList(mechInfos);
199 EXPECT_EQ(ret, true);
200 DTEST_LOG << "MechConnectManagerTest GetConnectMechList_001 end" << std::endl;
201 }
202
203 /**
204 * @tc.name: NotifyMechState_001
205 * @tc.desc: test NotifyMechState func
206 * @tc.type: FUNC
207 */
208 HWTEST_F(MechConnectManagerTest, NotifyMechState_001, TestSize.Level3)
209 {
210 DTEST_LOG << "MechConnectManagerTest NotifyMechState_001 begin" << std::endl;
211 MechConnectManager& mechConnectManager = MechConnectManager::GetInstance();
212 MechInfo mechInfo;
213 int32_t mechId = 1;
214 bool isconnect = false;
215 mechInfo.mechId = mechId;
216 mechConnectManager.mechInfos_.erase(mechInfo);
217 bool ret = mechConnectManager.NotifyMechState(mechId, isconnect);
218 EXPECT_EQ(ret, false);
219
220 mechConnectManager.mechInfos_.insert(mechInfo);
221 ret = mechConnectManager.NotifyMechState(mechId, isconnect);
222 EXPECT_EQ(ret, true);
223
224 isconnect = true;
225 ret = mechConnectManager.NotifyMechState(mechId, isconnect);
226 EXPECT_EQ(ret, true);
227 DTEST_LOG << "MechConnectManagerTest NotifyMechState_001 end" << std::endl;
228 }
229
230 /**
231 * @tc.name: GetMechState_001
232 * @tc.desc: test GetMechState func
233 * @tc.type: FUNC
234 */
235 HWTEST_F(MechConnectManagerTest, GetMechState_001, TestSize.Level3)
236 {
237 DTEST_LOG << "MechConnectManagerTest GetMechState_001 begin" << std::endl;
238 MechConnectManager& mechConnectManager = MechConnectManager::GetInstance();
239 MechInfo mechInfo;
240 int32_t mechId = 1;
241 mechInfo.mechId = mechId;
242 mechInfo.state = AttachmentState::ATTACHED;
243 mechConnectManager.mechInfos_.erase(mechInfo);
244 bool ret = mechConnectManager.GetMechState(mechId);
245 EXPECT_EQ(ret, false);
246
247 mechConnectManager.mechInfos_.insert(mechInfo);
248 ret = mechConnectManager.GetMechState(mechId);
249 EXPECT_EQ(ret, true);
250 DTEST_LOG << "MechConnectManagerTest GetMechState_001 end" << std::endl;
251 }
252 }
253 }
254