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