1 /*
2 * Copyright (c) 2021-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 "softbus_adapter_test.h"
17
18 #include "mock_softbus_adapter.h"
19 #include "softbus_error_code.h"
20 #include "dtbschedmgr_log.h"
21 #include "test_log.h"
22
23 using namespace testing;
24 using namespace testing::ext;
25
26 namespace OHOS {
27 namespace DistributedSchedule {
28
29 static int32_t g_mockRet = 0;
30 namespace {
31 const std::string NETWORKID_01 = "networkId01";
32 constexpr int32_t RETRY_SENT_EVENT_MAX_TIME = 3;
33 const int32_t WAITTIME = 2000;
34 }
35
SetUpTestCase()36 void SoftbusAdapterTest::SetUpTestCase()
37 {
38 DTEST_LOG << "SoftbusAdapterTest::SetUpTestCase" << std::endl;
39 }
40
TearDownTestCase()41 void SoftbusAdapterTest::TearDownTestCase()
42 {
43 DTEST_LOG << "SoftbusAdapterTest::TearDownTestCase" << std::endl;
44 }
45
TearDown()46 void SoftbusAdapterTest::TearDown()
47 {
48 DTEST_LOG << "SoftbusAdapterTest::TearDown" << std::endl;
49 }
50
SetUp()51 void SoftbusAdapterTest::SetUp()
52 {
53 DTEST_LOG << "SoftbusAdapterTest::SetUp" << std::endl;
54 }
55
SendEvent(bool screenOff,uint8_t * data,size_t dataLen)56 static int32_t SendEvent(bool screenOff, uint8_t *data, size_t dataLen)
57 {
58 return g_mockRet;
59 }
60
StopEvent()61 static int32_t StopEvent()
62 {
63 return g_mockRet;
64 }
65
RegisterEventListener(bool deduplicate,void * onBroadCastRecvFunc)66 static int32_t RegisterEventListener(bool deduplicate, void *onBroadCastRecvFunc)
67 {
68 return g_mockRet;
69 }
70
UnregisterEventListener(bool deduplicate,void * onBroadCastRecvFunc)71 static int32_t UnregisterEventListener(bool deduplicate, void *onBroadCastRecvFunc)
72 {
73 return g_mockRet;
74 }
75
76 /**
77 * @tc.name: SendSoftbusEvent_001
78 * @tc.desc: call SendSoftbusEvent from distributedsched
79 * @tc.type: FUNC
80 */
81 HWTEST_F(SoftbusAdapterTest, SendSoftbusEvent_001, TestSize.Level3)
82 {
83 DTEST_LOG << "SoftbusAdapterTest SendSoftbusEvent_001 begin" << std::endl;
84 size_t sendDataLen = 1;
85 std::shared_ptr<DSchedDataBuffer> buffer = std::make_shared<DSchedDataBuffer>(sendDataLen);
86 SoftbusAdapter::GetInstance().eventHandler_ = nullptr;
87 int32_t result = SoftbusAdapter::GetInstance().SendSoftbusEvent(buffer);
88 EXPECT_EQ(result, SOFTBUS_OK);
89
90 SoftbusAdapter::GetInstance().Init();
91 usleep(WAITTIME);
92 result = SoftbusAdapter::GetInstance().SendSoftbusEvent(buffer);
93 EXPECT_EQ(result, SOFTBUS_OK);
94 SoftbusAdapter::GetInstance().UnInit();
95 DTEST_LOG << "SoftbusAdapterTest SendSoftbusEvent_001 end" << std::endl;
96 }
97
98 /**
99 * @tc.name: DealSendSoftbusEvent_001
100 * @tc.desc: call DealSendSoftbusEvent
101 * @tc.type: FUNC
102 */
103 HWTEST_F(SoftbusAdapterTest, DealSendSoftbusEvent_001, TestSize.Level3)
104 {
105 DTEST_LOG << "SoftbusAdapterTest DealSendSoftbusEvent_001 begin" << std::endl;
106 size_t sendDataLen = 1;
107 int32_t retry = 0;
108 std::shared_ptr<DSchedDataBuffer> buffer = std::make_shared<DSchedDataBuffer>(sendDataLen);
109 SoftbusAdapter::GetInstance().eventHandler_ = nullptr;
110 int32_t result = SoftbusAdapter::GetInstance().DealSendSoftbusEvent(nullptr, retry);
111 EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
112
113 SoftbusAdapter::GetInstance().Init();
114 usleep(WAITTIME);
115 result = SoftbusAdapter::GetInstance().DealSendSoftbusEvent(nullptr, retry);
116 EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
117
118 result = SoftbusAdapter::GetInstance().DealSendSoftbusEvent(buffer, retry);
119 EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
120 SoftbusAdapter::GetInstance().UnInit();
121 DTEST_LOG << "SoftbusAdapterTest DealSendSoftbusEvent_001 end" << std::endl;
122 }
123
124 /**
125 * @tc.name: RetrySendSoftbusEvent_001
126 * @tc.desc: call RetrySendSoftbusEvent
127 * @tc.type: FUNC
128 */
129 HWTEST_F(SoftbusAdapterTest, RetrySendSoftbusEvent_001, TestSize.Level3)
130 {
131 DTEST_LOG << "SoftbusAdapterTest RetrySendSoftbusEvent_001 begin" << std::endl;
132 size_t sendDataLen = 1;
133 int32_t retry = RETRY_SENT_EVENT_MAX_TIME;
134 std::shared_ptr<DSchedDataBuffer> buffer = std::make_shared<DSchedDataBuffer>(sendDataLen);
135 SoftbusAdapter::GetInstance().eventHandler_ = nullptr;
136 int32_t result = SoftbusAdapter::GetInstance().RetrySendSoftbusEvent(nullptr, retry);
137 EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
138
139 retry = 0;
140 SoftbusAdapter::GetInstance().eventHandler_ = nullptr;
141 result = SoftbusAdapter::GetInstance().RetrySendSoftbusEvent(buffer, retry);
142 EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
143
144 SoftbusAdapter::GetInstance().Init();
145 usleep(WAITTIME);
146 result = SoftbusAdapter::GetInstance().RetrySendSoftbusEvent(buffer, retry);
147 EXPECT_EQ(result, ERR_OK);
148 SoftbusAdapter::GetInstance().UnInit();
149 DTEST_LOG << "SoftbusAdapterTest RetrySendSoftbusEvent_001 end" << std::endl;
150 }
151
152 /**
153 * @tc.name: StopSoftbusEvent_001
154 * @tc.desc: call StopSoftbusEvent from distributedsched
155 * @tc.type: FUNC
156 */
157 HWTEST_F(SoftbusAdapterTest, StopSoftbusEvent_001, TestSize.Level3)
158 {
159 DTEST_LOG << "SoftbusAdapterTest StopSoftbusEvent_001 begin" << std::endl;
160 int32_t result = SoftbusAdapter::GetInstance().StopSoftbusEvent();
161 EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
162 DTEST_LOG << "SoftbusAdapterTest StopSoftbusEvent_001 end" << std::endl;
163 }
164
165 /**
166 * @tc.name: RegisterSoftbusEventListener_001
167 * @tc.desc: call RegisterSoftbusEventListener from distributedsched
168 * @tc.type: FUNC
169 */
170 HWTEST_F(SoftbusAdapterTest, RegisterSoftbusEventListener_001, TestSize.Level3)
171 {
172 DTEST_LOG << "SoftbusAdapterTest OnBroadCastRecv_001 begin" << std::endl;
173 std::string networkId = NETWORKID_01;
174 uint8_t* sendData = nullptr;
175 uint32_t sendDataLen = 1;
176 SoftbusAdapter::GetInstance().OnBroadCastRecv(networkId, sendData, sendDataLen);
177 DTEST_LOG << "SoftbusAdapterTest OnBroadCastRecv_001 end" << std::endl;
178
179 DTEST_LOG << "SoftbusAdapterTest RegisterSoftbusEventListener_001 begin" << std::endl;
180 std::shared_ptr<SubSoftbusAdapterListener> listener = std::make_shared<SubSoftbusAdapterListener>();
181 int32_t result = SoftbusAdapter::GetInstance().RegisterSoftbusEventListener(listener);
182 EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
183 DTEST_LOG << "SoftbusAdapterTest RegisterSoftbusEventListener_001 end" << std::endl;
184 }
185
186 /**
187 * @tc.name: UnregisterSoftbusEventListener_001
188 * @tc.desc: call UnregisterSoftbusEventListener from distributedsched
189 * @tc.type: FUNC
190 */
191 HWTEST_F(SoftbusAdapterTest, UnregisterSoftbusEventListener_001, TestSize.Level3)
192 {
193 DTEST_LOG << "SoftbusAdapterTest UnregisterSoftbusEventListener_001 begin" << std::endl;
194 std::shared_ptr<SubSoftbusAdapterListener> listener = std::make_shared<SubSoftbusAdapterListener>();
195 int32_t result = SoftbusAdapter::GetInstance().UnregisterSoftbusEventListener(listener);
196 EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
197 DTEST_LOG << "SoftbusAdapterTest UnregisterSoftbusEventListener_001 end" << std::endl;
198 }
199
200 /**
201 * @tc.name: RegisterSoftbusEventListener_002
202 * @tc.desc: call RegisterSoftbusEventListener from distributedsched
203 * @tc.type: FUNC
204 */
205 HWTEST_F(SoftbusAdapterTest, RegisterSoftbusEventListener_002, TestSize.Level3)
206 {
207 DTEST_LOG << "SoftbusAdapterTest RegisterSoftbusEventListener_002 begin" << std::endl;
208 std::shared_ptr<SubSoftbusAdapterListener> listener = nullptr;
209 int32_t result = SoftbusAdapter::GetInstance().RegisterSoftbusEventListener(listener);
210 EXPECT_EQ(result, SOFTBUS_INVALID_PARAM);
211 DTEST_LOG << "SoftbusAdapterTest RegisterSoftbusEventListener_002 end" << std::endl;
212 }
213
214 /**
215 * @tc.name: RegisterSoftbusEventListener_003
216 * @tc.desc: call RegisterSoftbusEventListener from distributedsched
217 * @tc.type: FUNC
218 */
219 HWTEST_F(SoftbusAdapterTest, RegisterSoftbusEventListener_003, TestSize.Level3)
220 {
221 DTEST_LOG << "SoftbusAdapterTest RegisterSoftbusEventListener_003 begin" << std::endl;
222 std::shared_ptr<SubSoftbusAdapterListener> listener;
223 int32_t result = SoftbusAdapter::GetInstance().RegisterSoftbusEventListener(listener);
224 EXPECT_EQ(result, SOFTBUS_INVALID_PARAM);
225 DTEST_LOG << "SoftbusAdapterTest RegisterSoftbusEventListener_003 end" << std::endl;
226 }
227
228 /**
229 * @tc.name: RegisterSoftbusEventListener_004
230 * @tc.desc: call RegisterSoftbusEventListener from distributedsched
231 * @tc.type: FUNC
232 */
233 HWTEST_F(SoftbusAdapterTest, RegisterSoftbusEventListener_004, TestSize.Level3)
234 {
235 DTEST_LOG << "SoftbusAdapterTest RegisterSoftbusEventListener_004 begin" << std::endl;
236 std::shared_ptr<SubSoftbusAdapterListener> listener;
237 SoftbusAdapter::GetInstance().pkgName_ = "oh";
238 int32_t result = SoftbusAdapter::GetInstance().RegisterSoftbusEventListener(listener);
239 EXPECT_EQ(result, SOFTBUS_INVALID_PARAM);
240 DTEST_LOG << "SoftbusAdapterTest RegisterSoftbusEventListener_004 end" << std::endl;
241 }
242
243 /**
244 * @tc.name: UnregisterSoftbusEventListener_002
245 * @tc.desc: call UnregisterSoftbusEventListener from distributedsched
246 * @tc.type: FUNC
247 */
248 HWTEST_F(SoftbusAdapterTest, UnregisterSoftbusEventListener_002, TestSize.Level3)
249 {
250 DTEST_LOG << "SoftbusAdapterTest UnregisterSoftbusEventListener_002 begin" << std::endl;
251 std::shared_ptr<SubSoftbusAdapterListener> listener;
252 int32_t result = SoftbusAdapter::GetInstance().UnregisterSoftbusEventListener(listener);
253 EXPECT_EQ(result, SOFTBUS_INVALID_PARAM);
254 DTEST_LOG << "SoftbusAdapterTest UnregisterSoftbusEventListener_002 end" << std::endl;
255 }
256
257 #ifdef DMSFWK_INTERACTIVE_ADAPTER
258 /**
259 * @tc.name: UnregisterSoftbusEventListener_003
260 * @tc.desc: call UnregisterSoftbusEventListener
261 * @tc.type: FUNC
262 */
263 HWTEST_F(SoftbusAdapterTest, UnregisterSoftbusEventListener_003, TestSize.Level3)
264 {
265 DTEST_LOG << "SoftbusAdapterTest UnregisterSoftbusEventListener_003 begin" << std::endl;
266 std::shared_ptr<SubSoftbusAdapterListener> listener = std::make_shared<SubSoftbusAdapterListener>();
267 SoftbusAdapter::GetInstance().pkgName_ = "oh";
268 SoftbusAdapter::GetInstance().dmsAdapetr_.SendSoftbusEvent = SendEvent;
269 result = SoftbusAdapter::GetInstance().DealSendSoftbusEvent(buffer, retry);
270 EXPECT_EQ(result, ERR_OK);
271
272 SoftbusAdapter::GetInstance().dmsAdapetr_.StopSoftbusEvent = StopEvent;
273 result = SoftbusAdapter::GetInstance().StopSoftbusEvent();
274 EXPECT_EQ(result, SOFTBUS_OK);
275
276 SoftbusAdapter::GetInstance().dmsAdapetr_.RegisterSoftbusEventListener = RegisterEventListener;
277 result = SoftbusAdapter::GetInstance().RegisterSoftbusEventListener(listener);
278 EXPECT_EQ(result, SOFTBUS_OK);
279
280 SoftbusAdapter::GetInstance().dmsAdapetr_.UnregisterSoftbusEventListener = UnregisterEventListener;
281 int32_t result = SoftbusAdapter::GetInstance().UnregisterSoftbusEventListener(listener);
282 EXPECT_EQ(result, SOFTBUS_OK);
283 DTEST_LOG << "SoftbusAdapterTest UnregisterSoftbusEventListener_003 end" << std::endl;
284 }
285 #endif
286 }
287 }
288