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 #include "soft_bus_base_socket_test.h"
17 #include "soft_bus_base_socket.h"
18 #include "soft_bus_manager.h"
19 #include "remote_connect_listener_manager.h"
20
21 #include "gtest/gtest.h"
22 #include "gmock/gmock.h"
23
24 namespace OHOS {
25 namespace UserIam {
26 namespace UserAuth {
27 using namespace testing;
28 using namespace testing::ext;
29
SetUpTestCase()30 void SoftBusBaseSocketTest::SetUpTestCase()
31 {
32 }
33
TearDownTestCase()34 void SoftBusBaseSocketTest::TearDownTestCase()
35 {
36 }
37
SetUp()38 void SoftBusBaseSocketTest::SetUp()
39 {
40 }
41
TearDown()42 void SoftBusBaseSocketTest::TearDown()
43 {
44 }
45
46 class BaseSocketTest : public BaseSocket {
47 public:
48 explicit BaseSocketTest(const int32_t socketId);
49 ~BaseSocketTest();
50 ResultCode SendMessage(const std::string &connectionName, const std::string &srcEndPoint,
51 const std::string &destEndPoint, const std::shared_ptr<Attributes> &attributes, MsgCallback &callback);
52
53 void OnBind(int32_t socketId, PeerSocketInfo info);
54 void OnShutdown(int32_t socketId, ShutdownReason reason);
55 void OnBytes(int32_t socketId, const void *data, uint32_t dataLen);
56 void OnQos(int32_t socketId, QoSEvent eventId, const QosTV *qos, uint32_t qosCount);
57
58 std::string GetConnectionName() override;
59 std::string GetNetworkId();
60 };
61
BaseSocketTest(const int32_t socketId)62 BaseSocketTest::BaseSocketTest(const int32_t socketId)
63 : BaseSocket(socketId)
64 {
65 }
66
~BaseSocketTest()67 BaseSocketTest::~BaseSocketTest()
68 {
69 }
70
SendMessage(const std::string & connectionName,const std::string & srcEndPoint,const std::string & destEndPoint,const std::shared_ptr<Attributes> & attributes,MsgCallback & callback)71 ResultCode BaseSocketTest::SendMessage(const std::string &connectionName, const std::string &srcEndPoint,
72 const std::string &destEndPoint, const std::shared_ptr<Attributes> &attributes, MsgCallback &callback)
73 {
74 return SUCCESS;
75 }
76
OnBind(int32_t socketId,PeerSocketInfo info)77 void BaseSocketTest::OnBind(int32_t socketId, PeerSocketInfo info)
78 {
79 return;
80 }
81
OnShutdown(int32_t socketId,ShutdownReason reason)82 void BaseSocketTest::OnShutdown(int32_t socketId, ShutdownReason reason)
83 {
84 return;
85 }
86
OnBytes(int32_t socketId,const void * data,uint32_t dataLen)87 void BaseSocketTest::OnBytes(int32_t socketId, const void *data, uint32_t dataLen)
88 {
89 return;
90 }
91
OnQos(int32_t socketId,QoSEvent eventId,const QosTV * qos,uint32_t qosCount)92 void BaseSocketTest::OnQos(int32_t socketId, QoSEvent eventId, const QosTV *qos, uint32_t qosCount)
93 {
94 return;
95 }
96
GetConnectionName()97 std::string BaseSocketTest::GetConnectionName()
98 {
99 return "connectionName";
100 }
101
GetNetworkId()102 std::string BaseSocketTest::GetNetworkId()
103 {
104 return "networkId";
105 }
106
107
108 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestInsertMsgCallback, TestSize.Level0)
109 {
110 int32_t socketId = 1;
111 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
112 uint32_t messageSeq = 123;
113 const std::string connectionName = "connectionName";
114 MsgCallback callback;
115 uint32_t timerId = 456;
116 EXPECT_NO_THROW(baseSocket->InsertMsgCallback(messageSeq, connectionName, callback, timerId));
117 delete baseSocket;
118 }
119
120 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestRemoveMsgCallback, TestSize.Level0)
121 {
122 int32_t socketId = 1;
123 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
124 uint32_t messageSeq = 123;
125 EXPECT_NO_THROW(baseSocket->RemoveMsgCallback(messageSeq));
126 delete baseSocket;
127 }
128
129 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestGetMsgCallback, TestSize.Level0)
130 {
131 int32_t socketId = 1;
132 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
133 uint32_t messageSeq = 123;
134 EXPECT_NO_THROW(baseSocket->GetMsgCallback(messageSeq));
135 delete baseSocket;
136 }
137
138 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestPrintTransferDuration, TestSize.Level0)
139 {
140 int32_t socketId = 1;
141 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
142 uint32_t messageSeq = 123;
143 EXPECT_NO_THROW(baseSocket->PrintTransferDuration(messageSeq));
144 delete baseSocket;
145 }
146
147 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestGetReplyTimer, TestSize.Level0)
148 {
149 int32_t socketId = 1;
150 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
151 uint32_t messageSeq = 123;
152 EXPECT_NO_THROW(baseSocket->GetReplyTimer(messageSeq));
153 delete baseSocket;
154 }
155
156 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestStartReplyTimer, TestSize.Level0)
157 {
158 int32_t socketId = 1;
159 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
160 uint32_t messageSeq = 123;
161 EXPECT_NO_THROW(baseSocket->StartReplyTimer(messageSeq));
162 delete baseSocket;
163 }
164
165 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestStopReplyTimer, TestSize.Level0)
166 {
167 int32_t socketId = 1;
168 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
169 uint32_t messageSeq = 123;
170 EXPECT_NO_THROW(baseSocket->StopReplyTimer(messageSeq));
171 delete baseSocket;
172 }
173
174 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestReplyTimerTimeOut, TestSize.Level0)
175 {
176 int32_t socketId = 1;
177 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
178 uint32_t messageSeq = 123;
179 EXPECT_NO_THROW(baseSocket->ReplyTimerTimeOut(messageSeq));
180 delete baseSocket;
181 }
182
183 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestSetDeviceNetworkId, TestSize.Level0)
184 {
185 int32_t socketId = 1;
186 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
187 std::string networkId = "456";
188 std::shared_ptr<Attributes> attributes = Common::MakeShared<Attributes>();
189 ASSERT_NE(attributes, nullptr);
190 EXPECT_NO_THROW(baseSocket->SetDeviceNetworkId(networkId, attributes));
191 delete baseSocket;
192 }
193
194 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestSendRequest, TestSize.Level0)
195 {
196 int32_t socketId = 1;
197 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
198 std::string connectionName = "connectionName";
199 std::string srcEndPoint = "123";
200 std::string destEndPoint = "456";
201 std::shared_ptr<Attributes> attributes = Common::MakeShared<Attributes>();
202 ASSERT_NE(attributes, nullptr);
203 attributes->SetInt32Value(Attributes::ATTR_MSG_TYPE, 1);
204 MsgCallback callback;
205 const BaseSocket::ConnectionInfo connectionInfo = {
206 .socketId = socketId,
207 .connectionName = connectionName,
208 .srcEndPoint = srcEndPoint,
209 .destEndPoint = destEndPoint,
210 .attributes = attributes,
211 .callback = callback
212 };
213 EXPECT_EQ(baseSocket->SendRequest(connectionInfo), GENERAL_ERROR);
214 delete baseSocket;
215 }
216
217 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestSendResponse, TestSize.Level0)
218 {
219 int32_t socketId = 1;
220 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
221 std::string connectionName = "connectionName";
222 std::string srcEndPoint = "123";
223 std::string destEndPoint = "456";
224 std::shared_ptr<Attributes> attributes = Common::MakeShared<Attributes>();
225 ASSERT_NE(attributes, nullptr);
226 attributes->SetInt32Value(Attributes::ATTR_MSG_TYPE, 1);
227 uint32_t messageSeq = 123;
228 EXPECT_EQ(baseSocket->SendResponse(socketId, connectionName, srcEndPoint, destEndPoint, attributes,
229 messageSeq), GENERAL_ERROR);
230 delete baseSocket;
231 }
232
233 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestParseMessage_001, TestSize.Level0)
234 {
235 int32_t socketId = 1;
236 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
237 std::string networkId = "networkId";
238 void *message = nullptr;
239 uint32_t messageLen = 0;
240 std::shared_ptr<SoftBusMessage> result = baseSocket->ParseMessage(networkId, message, messageLen);
241 ASSERT_EQ(result, nullptr);
242 delete baseSocket;
243 }
244
245 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestParseMessage_002, TestSize.Level0)
246 {
247 int32_t socketId = 1;
248 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
249 std::string networkId = "networkId";
250 void *message = new char[10];
251 uint32_t messageLen = 0;
252 std::shared_ptr<SoftBusMessage> result = baseSocket->ParseMessage(networkId, message, messageLen);
253 ASSERT_EQ(result, nullptr);
254 delete baseSocket;
255 }
256
257 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestParseMessage_003, TestSize.Level0)
258 {
259 int32_t socketId = 1;
260 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
261 std::string networkId = "networkId";
262 void *message = new char[10];
263 uint32_t messageLen = 10;
264 std::shared_ptr<SoftBusMessage> result = baseSocket->ParseMessage(networkId, message, messageLen);
265 ASSERT_EQ(result, nullptr);
266 delete baseSocket;
267 }
268
269 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestProcessMessage_001, TestSize.Level0)
270 {
271 int32_t socketId = 1;
272 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
273 std::shared_ptr<SoftBusMessage> softBusMessage = Common::MakeShared<SoftBusMessage>(0, "", "", "", nullptr);
274 std::shared_ptr<Attributes> attributes = Common::MakeShared<Attributes>();
275 ASSERT_NE(attributes, nullptr);
276 EXPECT_NO_THROW(baseSocket->ProcessMessage(softBusMessage, attributes));
277 delete baseSocket;
278 }
279
280 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestProcDataReceive_001, TestSize.Level0)
281 {
282 int32_t socketId = 1;
283 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
284 std::shared_ptr<SoftBusMessage> softBusMessage = nullptr;
285 ResultCode result = baseSocket->ProcDataReceive(socketId, softBusMessage);
286 ASSERT_EQ(result, INVALID_PARAMETERS);
287 delete baseSocket;
288 }
289
290 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestProcDataReceive_002, TestSize.Level0)
291 {
292 int32_t socketId = 1;
293 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
294 std::shared_ptr<SoftBusMessage> softBusMessage = Common::MakeShared<SoftBusMessage>(0, "", "", "", nullptr);
295 ResultCode result = baseSocket->ProcDataReceive(socketId, softBusMessage);
296 ASSERT_EQ(result, 2);
297 delete baseSocket;
298 }
299
300 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestProcDataReceive_003, TestSize.Level0)
301 {
302 int32_t socketId = 1;
303 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
304 std::shared_ptr<SoftBusMessage> softBusMessage = Common::MakeShared<SoftBusMessage>(0, "", "", "", nullptr);
305 softBusMessage->isAck_ = true;
306 ResultCode result = baseSocket->ProcDataReceive(socketId, softBusMessage);
307 ASSERT_EQ(result, 2);
308 delete baseSocket;
309 }
310
311
312 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestProcDataReceive_004, TestSize.Level0)
313 {
314 int32_t socketId = 1;
315 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
316 std::shared_ptr<SoftBusMessage> softBusMessage = Common::MakeShared<SoftBusMessage>(0, "", "", "", nullptr);
317 softBusMessage->isAck_ = true;
318 softBusMessage->CreateMessage(true);
319 ResultCode result = baseSocket->ProcDataReceive(socketId, softBusMessage);
320 ASSERT_EQ(result, 2);
321 delete baseSocket;
322 }
323
324 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestProcDataReceive_005, TestSize.Level0)
325 {
326 int32_t socketId = 1;
327 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
328 std::shared_ptr<SoftBusMessage> softBusMessage = Common::MakeShared<SoftBusMessage>(0, "", "", "", nullptr);
329 softBusMessage->isAck_ = true;
330 softBusMessage->CreateMessage(true);
331 ResultCode result = baseSocket->ProcDataReceive(socketId, softBusMessage);
332 ASSERT_EQ(result, 2);
333 delete baseSocket;
334 }
335
336 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestProcDataReceive_006, TestSize.Level0)
337 {
338 int32_t socketId = 1;
339 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
340 const std::string connectionName = "connectionName";
341 const std::string srcEndPoint = "srcEndPoint";
342 const std::string destEndPoint = "destEndPoint";
343 std::shared_ptr<Attributes> attributes = Common::MakeShared<Attributes>();
344 ASSERT_NE(attributes, nullptr);
345 attributes->SetInt32Value(Attributes::ATTR_MSG_TYPE, 1);
346 attributes->SetBoolValue(Attributes::ATTR_MSG_ACK, true);
347 std::shared_ptr<SoftBusMessage> softBusMessage = Common::MakeShared<SoftBusMessage>(0, connectionName, srcEndPoint,
348 destEndPoint, attributes);
349 ResultCode result = baseSocket->ProcDataReceive(socketId, softBusMessage);
350 ASSERT_EQ(result, 0);
351 delete baseSocket;
352 }
353
354 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestProcDataReceive_007, TestSize.Level0)
355 {
356 int32_t socketId = 1;
357 BaseSocketTest *baseSocket = new BaseSocketTest(socketId);
358 const std::string connectionName = "connectionName";
359 const std::string srcEndPoint = "srcEndPoint";
360 const std::string destEndPoint = "destEndPoint";
361 std::shared_ptr<Attributes> attributes = Common::MakeShared<Attributes>();
362 ASSERT_NE(attributes, nullptr);
363 attributes->SetInt32Value(Attributes::ATTR_MSG_TYPE, 1);
364 attributes->SetBoolValue(Attributes::ATTR_MSG_ACK, false);
365 std::shared_ptr<SoftBusMessage> softBusMessage = Common::MakeShared<SoftBusMessage>(0, connectionName, srcEndPoint,
366 destEndPoint, attributes);
367 ResultCode result = baseSocket->ProcDataReceive(socketId, softBusMessage);
368 ASSERT_EQ(result, 0);
369 delete baseSocket;
370 }
371
372 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestParseMessage_004, TestSize.Level0)
373 {
374 std::shared_ptr<SoftBusMessage> softBusMessage = Common::MakeShared<SoftBusMessage>(0, "", "", "", nullptr);
375 void *message = new char[10];
376 uint32_t messageLen = 0;
377 std::shared_ptr<Attributes> attributes = softBusMessage->ParseMessage(message, messageLen);
378 ASSERT_EQ(attributes, nullptr);
379 }
380
381 HWTEST_F(SoftBusBaseSocketTest, SoftBusBaseSocketTestParseMessage_005, TestSize.Level0)
382 {
383 std::shared_ptr<SoftBusMessage> softBusMessage = Common::MakeShared<SoftBusMessage>(0, "", "", "", nullptr);
384 void *message = new char[10];
385 uint32_t messageLen = 10;
386 std::shared_ptr<Attributes> attributes = softBusMessage->ParseMessage(message, messageLen);
387 ASSERT_EQ(attributes, nullptr);
388 }
389 } // namespace UserAuth
390 } // namespace UserIam
391 } // namespace OHOS
392