• 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 #include <securec.h>
17 
18 #include <gtest/gtest.h>
19 #include "softbus_def.h"
20 #include "softbus_errcode.h"
21 #include "softbus_log.h"
22 #include "softbus_trans_def.h"
23 #include "softbus_json_utils.h"
24 #include "softbus_app_info.h"
25 #include "softbus_server_frame.h"
26 #include "softbus_adapter_mem.h"
27 #include "softbus_config_type.h"
28 #include "client_trans_session_manager.h"
29 #include "client_trans_session_service.h"
30 #include "client_trans_session_service.c"
31 #include "client_trans_session_manager.c"
32 #include "softbus_access_token_test.h"
33 #include "softbus_common.h"
34 
35 #define TRANS_TEST_SESSION_ID 10
36 #define TRANS_TEST_CHANNEL_ID 1000
37 #define TRANS_TEST_DEVICE_TYPE_ID 3
38 #define TRANS_TEST_FILE_ENCRYPT 10
39 #define TRANS_TEST_ALGORITHM 1
40 #define TRANS_TEST_CRC 1
41 #define TRANS_TEST_AUTH_DATA "test auth message data"
42 #define TRANS_TEST_CONN_IP "192.168.8.1"
43 #define TRANS_TEST_BR_MAC "11:22:33:44:55:66"
44 #define TRANS_TEST_AUTH_PORT 60000
45 #define TRANS_TEST_ADDR_INFO_NUM 2
46 #define TRANS_TEST_MAX_LENGTH 1024
47 #define TRANS_TEST_INVALID_SESSION_ID (-1)
48 #define TRANS_TEST_INVALID_VALUE_SIZE 8
49 
50 using namespace testing::ext;
51 
52 namespace OHOS {
53 
54 const char *g_pkgName = "dms";
55 const char *g_sessionName = "ohos.distributedschedule.dms.test";
56 const char *g_sessionKey = "www.huaweitest.com";
57 const char *g_networkId = "ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF0";
58 const char *g_deviceId = "ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF0";
59 const char *g_groupId = "TEST_GROUP_ID";
60 const char *g_deviceName = "rk3568test";
61 const char *g_rootDir = "/data";
62 static SessionAttribute g_sessionAttr = {
63     .dataType = TYPE_BYTES,
64 };
65 class TransClientSessionTest : public testing::Test {
66 public:
TransClientSessionTest()67     TransClientSessionTest()
68     {}
~TransClientSessionTest()69     ~TransClientSessionTest()
70     {}
71     static void SetUpTestCase(void);
72     static void TearDownTestCase(void);
SetUp()73     void SetUp() override
74     {}
TearDown()75     void TearDown() override
76     {}
77 };
78 
SetUpTestCase(void)79 void TransClientSessionTest::SetUpTestCase(void)
80 {
81     InitSoftBusServer();
82     SetAceessTokenPermission("dsoftbusTransTest");
83     int32_t ret = TransClientInit();
84     ASSERT_EQ(ret,  SOFTBUS_OK);
85 }
86 
TearDownTestCase(void)87 void TransClientSessionTest::TearDownTestCase(void)
88 {
89 }
90 
OnSessionOpened(int sessionId,int result)91 static int OnSessionOpened(int sessionId, int result)
92 {
93     LOG_INFO("session opened,sesison id = %d\r\n", sessionId);
94     return SOFTBUS_OK;
95 }
96 
OnSessionClosed(int sessionId)97 static void OnSessionClosed(int sessionId)
98 {
99     LOG_INFO("session closed, session id = %d\r\n", sessionId);
100 }
101 
OnBytesReceived(int sessionId,const void * data,unsigned int len)102 static void OnBytesReceived(int sessionId, const void *data, unsigned int len)
103 {
104     LOG_INFO("session bytes received, session id = %d\r\n", sessionId);
105 }
106 
OnMessageReceived(int sessionId,const void * data,unsigned int len)107 static void OnMessageReceived(int sessionId, const void *data, unsigned int len)
108 {
109     LOG_INFO("session msg received, session id = %d\r\n", sessionId);
110 }
111 
OnStreamReceived(int sessionId,const StreamData * data,const StreamData * ext,const StreamFrameInfo * param)112 static void OnStreamReceived(int sessionId, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param)
113 {
114     LOG_INFO("session stream received, session id = %d\r\n", sessionId);
115 }
116 
OnQosEvent(int sessionId,int eventId,int tvCount,const QosTv * tvList)117 static void OnQosEvent(int sessionId, int eventId, int tvCount, const QosTv *tvList)
118 {
119     LOG_INFO("session Qos event emit, session id = %d\r\n", sessionId);
120 }
121 
OnSessionOpenedErr(int sessionId,int result)122 static int OnSessionOpenedErr(int sessionId, int result)
123 {
124     LOG_INFO("session opened,sesison id = %d\r\n", sessionId);
125     return SOFTBUS_ERR;
126 }
127 
OnReceiveFileStarted(int sessionId,const char * files,int fileCnt)128 static int OnReceiveFileStarted(int sessionId, const char *files, int fileCnt)
129 {
130     LOG_INFO("receive file start,sesison id = %d\r\n", sessionId);
131     return SOFTBUS_OK;
132 }
133 
OnReceiveFileProcess(int sessionId,const char * firstFile,uint64_t bytesUpload,uint64_t bytesTotal)134 static int OnReceiveFileProcess(int sessionId, const char *firstFile, uint64_t bytesUpload, uint64_t bytesTotal)
135 {
136     LOG_INFO("receive file process,sesison id = %d\r\n", sessionId);
137     return SOFTBUS_OK;
138 }
139 
OnReceiveFileFinished(int sessionId,const char * files,int fileCnt)140 static void OnReceiveFileFinished(int sessionId, const char *files, int fileCnt)
141 {
142     LOG_INFO("receive file finished,sesison id = %d\r\n", sessionId);
143 }
144 
OnFileTransError(int sessionId)145 void OnFileTransError(int sessionId)
146 {
147     LOG_INFO("file transmission error,sesison id = %d\r\n", sessionId);
148 }
149 
OnSendFileProcess(int sessionId,uint64_t bytesUpload,uint64_t bytesTotal)150 int OnSendFileProcess(int sessionId, uint64_t bytesUpload, uint64_t bytesTotal)
151 {
152     LOG_INFO("send file process,sesison id = %d\r\n", sessionId);
153     return SOFTBUS_OK;
154 }
155 
OnSendFileFinished(int sessionId,const char * firstFile)156 int OnSendFileFinished(int sessionId, const char *firstFile)
157 {
158     LOG_INFO("send file finished,sesison id = %d\r\n", sessionId);
159     return SOFTBUS_OK;
160 }
161 
162 static ISessionListener g_sessionlistener = {
163     .OnSessionOpened = OnSessionOpened,
164     .OnSessionClosed = OnSessionClosed,
165     .OnBytesReceived = OnBytesReceived,
166     .OnMessageReceived = OnMessageReceived,
167     .OnStreamReceived = OnStreamReceived,
168     .OnQosEvent = OnQosEvent,
169 };
170 
171 static IFileReceiveListener g_fileRecvListener = {
172     .OnReceiveFileStarted = OnReceiveFileStarted,
173     .OnReceiveFileProcess = OnReceiveFileProcess,
174     .OnReceiveFileFinished = OnReceiveFileFinished,
175     .OnFileTransError = OnFileTransError
176 };
177 
178 static IFileSendListener g_fileSendListener = {
179     .OnSendFileProcess = OnSendFileProcess,
180     .OnSendFileFinished = OnSendFileFinished,
181     .OnFileTransError = OnFileTransError
182 };
183 
TestGenerateCommParam(SessionParam * sessionParam)184 static void TestGenerateCommParam(SessionParam *sessionParam)
185 {
186     sessionParam->sessionName = g_sessionName;
187     sessionParam->peerSessionName = g_sessionName;
188     sessionParam->peerDeviceId = g_deviceId;
189     sessionParam->groupId = g_groupId;
190     sessionParam->attr = &g_sessionAttr;
191 }
192 
TestGenerateSession(const SessionParam * param)193 static SessionInfo *TestGenerateSession(const SessionParam *param)
194 {
195     SessionInfo *session = (SessionInfo*)SoftBusCalloc(sizeof(SessionInfo));
196     if (session == NULL) {
197         return NULL;
198     }
199 
200     if (strcpy_s(session->info.peerSessionName, SESSION_NAME_SIZE_MAX, param->peerSessionName) != EOK ||
201         strcpy_s(session->info.peerDeviceId, DEVICE_ID_SIZE_MAX, param->peerDeviceId) != EOK ||
202         strcpy_s(session->info.groupId, GROUP_ID_SIZE_MAX, param->groupId) != EOK) {
203         SoftBusFree(session);
204         return NULL;
205     }
206 
207     session->sessionId = TRANS_TEST_SESSION_ID;
208     session->channelId = TRANS_TEST_CHANNEL_ID;
209     session->channelType = CHANNEL_TYPE_BUTT;
210     session->isServer = false;
211     session->isEnable = false;
212     session->routeType = ROUTE_TYPE_ALL;
213     session->info.flag = TYPE_BYTES;
214     session->isEncrypt = true;
215     session->algorithm = TRANS_TEST_ALGORITHM;
216     session->fileEncrypt = TRANS_TEST_FILE_ENCRYPT;
217     session->crc = TRANS_TEST_CRC;
218 
219     return session;
220 }
221 
AddSessionServerAndSession(const char * sessionName,int32_t channelType,bool isServer)222 static int32_t AddSessionServerAndSession(const char *sessionName, int32_t channelType, bool isServer)
223 {
224     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
225     if (sessionParam == NULL) {
226         return SOFTBUS_ERR;
227     }
228 
229     TestGenerateCommParam(sessionParam);
230     sessionParam->sessionName = sessionName;
231     int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, sessionName, &g_sessionlistener);
232     if (ret != SOFTBUS_OK) {
233         return SOFTBUS_ERR;
234     }
235 
236     SessionInfo *session = TestGenerateSession(sessionParam);
237     if (session == NULL) {
238         return SOFTBUS_ERR;
239     }
240 
241     session->channelType = (ChannelType)channelType;
242     session->isServer = isServer;
243     ret = ClientAddNewSession(sessionName, session);
244     if (ret != SOFTBUS_OK) {
245         return SOFTBUS_ERR;
246     }
247 
248     int32_t sessionId = 0;
249     ret = ClientGetSessionIdByChannelId(TRANS_TEST_CHANNEL_ID, channelType, &sessionId);
250     if (ret != SOFTBUS_OK) {
251         return SOFTBUS_ERR;
252     }
253 
254     SoftBusFree(sessionParam);
255     return sessionId;
256 }
257 
DeleteSessionServerAndSession(const char * sessionName,int32_t sessionId)258 static void DeleteSessionServerAndSession(const char *sessionName, int32_t sessionId)
259 {
260     (void)ClientDeleteSession(sessionId);
261     (void)ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, sessionName);
262 }
263 
264 /**
265  * @tc.name: TransClientSessionTest01
266  * @tc.desc: Transmission sdk session service open session with existed session callback success.
267  * @tc.type: FUNC
268  * @tc.require:
269  */
270 HWTEST_F(TransClientSessionTest, TransClientSessionTest01, TestSize.Level1)
271 {
272     bool isEnabled = false;
273     int32_t ret = OpenSessionWithExistSession(TRANS_TEST_SESSION_ID, isEnabled);
274     EXPECT_EQ(ret, TRANS_TEST_SESSION_ID);
275     isEnabled = true;
276     ret = OpenSessionWithExistSession(TRANS_TEST_SESSION_ID, isEnabled);
277     EXPECT_EQ(ret, INVALID_SESSION_ID);
278     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
279     ASSERT_EQ(ret, SOFTBUS_OK);
280     SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
281     ASSERT_TRUE(sessionParam != NULL);
282     memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
283     TestGenerateCommParam(sessionParam);
284     SessionInfo *session = TestGenerateSession(sessionParam);
285     ASSERT_TRUE(session != NULL);
286     session->channelType = CHANNEL_TYPE_AUTH;
287     ret = ClientAddNewSession(g_sessionName, session);
288     ASSERT_EQ(ret, SOFTBUS_OK);
289     ret = OpenSessionWithExistSession(session->sessionId, isEnabled);
290     EXPECT_EQ(ret, session->sessionId);
291     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
292     EXPECT_EQ(ret, SOFTBUS_OK);
293     SoftBusFree(sessionParam);
294 }
295 
296 /**
297  * @tc.name: TransClientSessionTest02
298  * @tc.desc: Transmission sdk session service open session with existed session callback error.
299  * @tc.type: FUNC
300  * @tc.require:
301  */
302 HWTEST_F(TransClientSessionTest, TransClientSessionTest02, TestSize.Level1)
303 {
304     bool isEnabled = false;
305     ISessionListener sessionlistener = {
306         .OnSessionOpened = OnSessionOpenedErr,
307         .OnSessionClosed = OnSessionClosed,
308         .OnBytesReceived = OnBytesReceived,
309         .OnMessageReceived = OnMessageReceived,
310         .OnStreamReceived = OnStreamReceived,
311         .OnQosEvent = OnQosEvent,
312     };
313     int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
314     ASSERT_EQ(ret, SOFTBUS_OK);
315     SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
316     ASSERT_TRUE(sessionParam != NULL);
317     memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
318     TestGenerateCommParam(sessionParam);
319     SessionInfo *session = TestGenerateSession(sessionParam);
320     ASSERT_TRUE(session != NULL);
321     session->channelType = CHANNEL_TYPE_AUTH;
322     ret = ClientAddNewSession(g_sessionName, session);
323     ASSERT_EQ(ret, SOFTBUS_OK);
324     isEnabled = true;
325     ret = OpenSessionWithExistSession(session->sessionId, isEnabled);
326     EXPECT_EQ(ret, INVALID_SESSION_ID);
327     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
328     EXPECT_EQ(ret, SOFTBUS_OK);
329     SoftBusFree(sessionParam);
330 }
331 
332 /**
333  * @tc.name: TransClientSessionTest03
334  * @tc.desc: Transmission sdk session service creat session server with different parameters.
335  * @tc.type: FUNC
336  * @tc.require:
337  */
338 HWTEST_F(TransClientSessionTest, TransClientSessionTest03, TestSize.Level1)
339 {
340     const char *pkgName = "package.test";
341     int ret = CreateSessionServer(pkgName, g_sessionName, &g_sessionlistener);
342     EXPECT_EQ(ret, SOFTBUS_PERMISSION_DENIED);
343     ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
344     EXPECT_EQ(ret, SOFTBUS_OK);
345     ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
346     EXPECT_EQ(ret, SOFTBUS_OK);
347     ret = RemoveSessionServer(g_pkgName, g_sessionName);
348     EXPECT_EQ(ret, SOFTBUS_OK);
349 }
350 
351 /**
352  * @tc.name: TransClientSessionTest04
353  * @tc.desc: Transmission sdk session service remove session server with different parameters.
354  * @tc.type: FUNC
355  * @tc.require:
356  */
357 HWTEST_F(TransClientSessionTest, TransClientSessionTest04, TestSize.Level1)
358 {
359     int ret = RemoveSessionServer(g_pkgName, g_sessionName);
360     EXPECT_EQ(ret, SOFTBUS_OK);
361     ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
362     EXPECT_EQ(ret, SOFTBUS_OK);
363     ret = RemoveSessionServer(g_pkgName, g_sessionName);
364     EXPECT_EQ(ret, SOFTBUS_OK);
365 }
366 
367 /**
368  * @tc.name: TransClientSessionTest05
369  * @tc.desc: Transmission sdk session service open session.
370  * @tc.type: FUNC
371  * @tc.require:
372  */
373 HWTEST_F(TransClientSessionTest, TransClientSessionTest05, TestSize.Level1)
374 {
375     int32_t sessionId = 0;
376     bool isEnabled = false;
377     int ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
378     ASSERT_EQ(ret, SOFTBUS_OK);
379     ret = OpenSession(g_sessionName, g_sessionName, g_networkId, g_groupId, &g_sessionAttr);
380     EXPECT_EQ(ret, SOFTBUS_ERR);
381     SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
382     ASSERT_TRUE(sessionParam != NULL);
383     memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
384     TestGenerateCommParam(sessionParam);
385     ret = ClientAddSession(sessionParam, &sessionId, &isEnabled);
386     ASSERT_EQ(ret, SOFTBUS_OK);
387     ret = OpenSession(g_sessionName, g_sessionName, g_networkId, g_groupId, &g_sessionAttr);
388     EXPECT_EQ(ret, sessionId);
389     ret = ClientDeleteSession(sessionId);
390     EXPECT_EQ(ret, SOFTBUS_OK);
391     ret = RemoveSessionServer(g_pkgName, g_sessionName);
392     EXPECT_EQ(ret, SOFTBUS_OK);
393 }
394 
395 /**
396  * @tc.name: TransClientSessionTest06
397  * @tc.desc: Transmission sdk session service convert address string with different parameters.
398  * @tc.type: FUNC
399  * @tc.require:
400  */
401 HWTEST_F(TransClientSessionTest, TransClientSessionTest06, TestSize.Level1)
402 {
403     ConnectionAddr *addrInfo = (ConnectionAddr*)SoftBusMalloc(sizeof(ConnectionAddr));
404     ASSERT_TRUE(addrInfo != NULL);
405     int32_t ret = ConvertAddrStr(TRANS_TEST_AUTH_DATA, addrInfo);
406     EXPECT_EQ(ret, SOFTBUS_PARSE_JSON_ERR);
407     cJSON *msg = cJSON_CreateObject();
408     bool res = AddStringToJsonObject(msg, "ETH_IP", TRANS_TEST_CONN_IP);
409     ASSERT_TRUE(res);
410     res = AddNumberToJsonObject(msg, "ETH_PORT", TRANS_TEST_AUTH_PORT);
411     ASSERT_TRUE(res);
412     char *data = cJSON_PrintUnformatted(msg);
413     ret = ConvertAddrStr(data, addrInfo);
414     EXPECT_EQ(ret, SOFTBUS_OK);
415     cJSON_free(data);
416     cJSON_Delete(msg);
417     msg = cJSON_CreateObject();
418     res = AddStringToJsonObject(msg, "WIFI_IP", TRANS_TEST_CONN_IP);
419     ASSERT_TRUE(res);
420     res = AddNumberToJsonObject(msg, "WIFI_PORT", TRANS_TEST_AUTH_PORT);
421     ASSERT_TRUE(res);
422     data = cJSON_PrintUnformatted(msg);
423     ret = ConvertAddrStr(data, addrInfo);
424     EXPECT_EQ(ret, SOFTBUS_OK);
425     cJSON_free(data);
426     cJSON_Delete(msg);
427     msg = cJSON_CreateObject();
428     res = AddStringToJsonObject(msg, "BR_MAC", TRANS_TEST_BR_MAC);
429     ASSERT_TRUE(res);
430     data = cJSON_PrintUnformatted(msg);
431     ret = ConvertAddrStr(data, addrInfo);
432     EXPECT_EQ(ret, SOFTBUS_OK);
433     cJSON_free(data);
434     cJSON_Delete(msg);
435     msg = cJSON_CreateObject();
436     res = AddStringToJsonObject(msg, "BLE_MAC", TRANS_TEST_BR_MAC);
437     ASSERT_TRUE(res);
438     data = cJSON_PrintUnformatted(msg);
439     ret = ConvertAddrStr(data, addrInfo);
440     EXPECT_EQ(ret, SOFTBUS_OK);
441     cJSON_free(data);
442     cJSON_Delete(msg);
443     SoftBusFree(addrInfo);
444 }
445 
446 /**
447  * @tc.name: TransClientSessionTest07
448  * @tc.desc: Transmission sdk session service is valid addrInfo.
449  * @tc.type: FUNC
450  * @tc.require:
451  */
452 HWTEST_F(TransClientSessionTest, TransClientSessionTest07, TestSize.Level1)
453 {
454     ConnectionAddr addrInfoArr[TRANS_TEST_ADDR_INFO_NUM] = {
455         {.type = CONNECTION_ADDR_MAX},
456         {.type = CONNECTION_ADDR_MAX}
457     };
458     int ret = IsValidAddrInfoArr(addrInfoArr, TRANS_TEST_ADDR_INFO_NUM);
459     EXPECT_EQ(ret, SOFTBUS_ERR);
460 }
461 
462 /**
463  * @tc.name: TransClientSessionTest08
464  * @tc.desc: Transmission sdk session service open auth session with different.
465  * @tc.type: FUNC
466  * @tc.require:
467  */
468 HWTEST_F(TransClientSessionTest, TransClientSessionTest08, TestSize.Level1)
469 {
470     ConnectionAddr addrInfoArr[TRANS_TEST_ADDR_INFO_NUM] = {
471         {.type = CONNECTION_ADDR_MAX},
472         {.type = CONNECTION_ADDR_MAX}
473     };
474     cJSON *msg = cJSON_CreateObject();
475     bool res = AddStringToJsonObject(msg, "BLE_MAC", TRANS_TEST_BR_MAC);
476     ASSERT_TRUE(res);
477     char *data = cJSON_PrintUnformatted(msg);
478     int ret = OpenAuthSession(g_sessionName, addrInfoArr, TRANS_TEST_ADDR_INFO_NUM, data);
479     EXPECT_EQ(ret, SOFTBUS_TRANS_SESSIONSERVER_NOT_CREATED);
480     ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
481     ASSERT_EQ(ret, SOFTBUS_OK);
482     ret = OpenAuthSession(g_sessionName, addrInfoArr, TRANS_TEST_ADDR_INFO_NUM, data);
483     ret = ClientDeleteSession(ret);
484     EXPECT_EQ(ret, SOFTBUS_OK);
485     cJSON_free(data);
486     cJSON_Delete(msg);
487     msg = cJSON_CreateObject();
488     res = AddStringToJsonObject(msg, "WIFI_IP", TRANS_TEST_CONN_IP);
489     ASSERT_TRUE(res);
490     res = AddNumberToJsonObject(msg, "WIFI_PORT", TRANS_TEST_AUTH_PORT);
491     ASSERT_TRUE(res);
492     data = cJSON_PrintUnformatted(msg);
493     ret = OpenAuthSession(g_sessionName, addrInfoArr, TRANS_TEST_ADDR_INFO_NUM, data);
494     EXPECT_EQ(ret, INVALID_SESSION_ID);
495     ret = ClientDeleteSession(ret);
496     EXPECT_EQ(ret, SOFTBUS_ERR);
497     ret = RemoveSessionServer(g_pkgName, g_sessionName);
498     EXPECT_EQ(ret, SOFTBUS_OK);
499     cJSON_free(data);
500     cJSON_Delete(msg);
501 }
502 
503 /**
504  * @tc.name: TransClientSessionTest09
505  * @tc.desc: Transmission sdk session service notify auth success with different parameters.
506  * @tc.type: FUNC
507  * @tc.require:
508  */
509 HWTEST_F(TransClientSessionTest, TransClientSessionTest09, TestSize.Level1)
510 {
511     int32_t sessionId = 0;
512     bool isEnabled = false;
513     int ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
514     ASSERT_EQ(ret, SOFTBUS_OK);
515     SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
516     ASSERT_TRUE(sessionParam != NULL);
517     memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
518     TestGenerateCommParam(sessionParam);
519     ret = ClientAddSession(sessionParam, &sessionId, &isEnabled);
520     ASSERT_EQ(ret, SOFTBUS_OK);
521     NotifyAuthSuccess(sessionId);
522     ret = ClientDeleteSession(sessionId);
523     ASSERT_EQ(ret, SOFTBUS_OK);
524     SessionInfo *session = TestGenerateSession(sessionParam);
525     ASSERT_TRUE(session != NULL);
526     session->isServer = true;
527     ret = ClientAddNewSession(g_sessionName, session);
528     ASSERT_EQ(ret, SOFTBUS_OK);
529     ret = ClientGetSessionIdByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId);
530     EXPECT_EQ(ret, SOFTBUS_OK);
531     NotifyAuthSuccess(sessionId);
532     ret = ClientDeleteSession(sessionId);
533     EXPECT_EQ(ret, SOFTBUS_OK);
534     ret = RemoveSessionServer(g_pkgName, g_sessionName);
535     EXPECT_EQ(ret, SOFTBUS_OK);
536     SoftBusFree(sessionParam);
537 }
538 
539 /**
540  * @tc.name: TransClientSessionTest10
541  * @tc.desc: Transmission sdk session service check whether session is opened with different parameters.
542  * @tc.type: FUNC
543  * @tc.require:
544  */
545 HWTEST_F(TransClientSessionTest, TransClientSessionTest10, TestSize.Level1)
546 {
547     int32_t sessionId = 0;
548     int ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
549     ASSERT_EQ(ret, SOFTBUS_OK);
550     SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
551     ASSERT_TRUE(sessionParam != NULL);
552     memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
553     TestGenerateCommParam(sessionParam);
554     SessionInfo *session = TestGenerateSession(sessionParam);
555     ASSERT_TRUE(session != NULL);
556     session->isEnable = true;
557     ret = CheckSessionIsOpened(TRANS_TEST_CHANNEL_ID);
558     EXPECT_EQ(ret, SOFTBUS_NOT_FIND);
559     ret = ClientAddNewSession(g_sessionName, session);
560     ASSERT_EQ(ret, SOFTBUS_OK);
561     ret = ClientGetSessionIdByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId);
562     EXPECT_EQ(ret, SOFTBUS_OK);
563     ret = CheckSessionIsOpened(sessionId);
564     EXPECT_EQ(ret, SOFTBUS_OK);
565     ret = ClientDeleteSession(sessionId);
566     EXPECT_EQ(ret, SOFTBUS_OK);
567     ret = RemoveSessionServer(g_pkgName, g_sessionName);
568     EXPECT_EQ(ret, SOFTBUS_OK);
569     SoftBusFree(sessionParam);
570 }
571 
572 /**
573  * @tc.name: TransClientSessionTest11
574  * @tc.desc: Transmission sdk session service close session with different parameters.
575  * @tc.type: FUNC
576  * @tc.require:
577  */
578 HWTEST_F(TransClientSessionTest, TransClientSessionTest11, TestSize.Level1)
579 {
580     int32_t sessionId = 0;
581     int ret = CreateSessionServer(g_pkgName, g_sessionName, &g_sessionlistener);
582     ASSERT_EQ(ret, SOFTBUS_OK);
583     CloseSession(TRANS_TEST_INVALID_SESSION_ID);
584     SessionParam *sessionParam = (SessionParam*)SoftBusMalloc(sizeof(SessionParam));
585     ASSERT_TRUE(sessionParam != NULL);
586     memset_s(sessionParam, sizeof(SessionParam), 0, sizeof(SessionParam));
587     TestGenerateCommParam(sessionParam);
588     SessionInfo *session = TestGenerateSession(sessionParam);
589     ASSERT_TRUE(session != NULL);
590     session->channelType = CHANNEL_TYPE_UDP;
591     CloseSession(TRANS_TEST_SESSION_ID);
592     ret = ClientAddNewSession(g_sessionName, session);
593     ASSERT_EQ(ret, SOFTBUS_OK);
594     ret = ClientGetSessionIdByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_UDP, &sessionId);
595     EXPECT_EQ(ret, SOFTBUS_OK);
596     CloseSession(sessionId);
597     ret = ClientDeleteSession(sessionId);
598     EXPECT_EQ(ret, SOFTBUS_ERR);
599     session = TestGenerateSession(sessionParam);
600     ASSERT_TRUE(session != NULL);
601     session->channelType = CHANNEL_TYPE_AUTH;
602     ret = ClientAddNewSession(g_sessionName, session);
603     ASSERT_EQ(ret, SOFTBUS_OK);
604     ret = ClientGetSessionIdByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_AUTH, &sessionId);
605     EXPECT_EQ(ret, SOFTBUS_OK);
606     CloseSession(sessionId);
607     ret = ClientDeleteSession(sessionId);
608     EXPECT_EQ(ret, SOFTBUS_ERR);
609     ret = RemoveSessionServer(g_pkgName, g_sessionName);
610     EXPECT_EQ(ret, SOFTBUS_OK);
611     SoftBusFree(sessionParam);
612 }
613 
614 /**
615  * @tc.name: TransClientSessionTest12
616  * @tc.desc: Transmission sdk session service get my session name with invalid parameters.
617  * @tc.type: FUNC
618  * @tc.require:
619  */
620 HWTEST_F(TransClientSessionTest, TransClientSessionTest12, TestSize.Level1)
621 {
622     char sessionName[SESSION_NAME_SIZE_MAX] = {0};
623     int ret = GetMySessionName(TRANS_TEST_INVALID_SESSION_ID, sessionName, SESSION_NAME_SIZE_MAX);
624     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
625     ret = GetMySessionName(TRANS_TEST_SESSION_ID, NULL, SESSION_NAME_SIZE_MAX);
626     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
627     ret = GetMySessionName(TRANS_TEST_SESSION_ID, sessionName, SESSION_NAME_SIZE_MAX + 1);
628     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
629 }
630 
631 /**
632  * @tc.name: TransClientSessionTest13
633  * @tc.desc: Transmission sdk session service get peer session name with different parameters.
634  * @tc.type: FUNC
635  * @tc.require:
636  */
637 HWTEST_F(TransClientSessionTest, TransClientSessionTest13, TestSize.Level1)
638 {
639     char sessionName[SESSION_NAME_SIZE_MAX] = {0};
640     int ret = GetPeerSessionName(TRANS_TEST_INVALID_SESSION_ID, sessionName, SESSION_NAME_SIZE_MAX);
641     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
642     ret = GetPeerSessionName(TRANS_TEST_SESSION_ID, NULL, SESSION_NAME_SIZE_MAX);
643     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
644     ret = GetPeerSessionName(TRANS_TEST_SESSION_ID, sessionName, SESSION_NAME_SIZE_MAX + 1);
645     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
646     ret = GetPeerSessionName(TRANS_TEST_SESSION_ID, sessionName, SESSION_NAME_SIZE_MAX);
647     EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
648     int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_BUTT, false);
649     ASSERT_GT(sessionId, 0);
650     ret = GetPeerSessionName(sessionId, sessionName, SESSION_NAME_SIZE_MAX);
651     EXPECT_EQ(ret, SOFTBUS_OK);
652     ret = strcmp(g_sessionName, sessionName);
653     EXPECT_EQ(ret, EOK);
654     DeleteSessionServerAndSession(g_sessionName, sessionId);
655 }
656 
657 /**
658  * @tc.name: TransClientSessionTest14
659  * @tc.desc: Transmission sdk session service get peer device Id with different parameters.
660  * @tc.type: FUNC
661  * @tc.require:
662  */
663 HWTEST_F(TransClientSessionTest, TransClientSessionTest14, TestSize.Level1)
664 {
665     char networkId[DEVICE_ID_SIZE_MAX] = {0};
666     int ret = GetPeerDeviceId(TRANS_TEST_INVALID_SESSION_ID, networkId, DEVICE_ID_SIZE_MAX);
667     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
668     ret = GetPeerDeviceId(TRANS_TEST_SESSION_ID, NULL, DEVICE_ID_SIZE_MAX);
669     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
670     ret = GetPeerDeviceId(TRANS_TEST_SESSION_ID, networkId, SESSION_NAME_SIZE_MAX + 1);
671     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
672     ret = GetPeerDeviceId(TRANS_TEST_SESSION_ID, networkId, DEVICE_ID_SIZE_MAX);
673     EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
674     int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_BUTT, false);
675     ASSERT_GT(sessionId, 0);
676     ret = GetPeerDeviceId(sessionId, networkId, DEVICE_ID_SIZE_MAX);
677     EXPECT_EQ(ret, SOFTBUS_OK);
678     ret = strcmp(g_deviceId, networkId);
679     EXPECT_EQ(ret, EOK);
680     DeleteSessionServerAndSession(g_sessionName, sessionId);
681 }
682 
683 /**
684  * @tc.name: TransClientSessionTest15
685  * @tc.desc: Transmission sdk session service judge session server or client.
686  * @tc.type: FUNC
687  * @tc.require:
688  */
689 HWTEST_F(TransClientSessionTest, TransClientSessionTest15, TestSize.Level1)
690 {
691     int32_t ret =  ClientGetSessionSide(TRANS_TEST_SESSION_ID);
692     EXPECT_EQ(ret, SOFTBUS_ERR);
693     int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_BUTT, false);
694     ASSERT_GT(sessionId, 0);
695     ret =  GetSessionSide(sessionId);
696     EXPECT_EQ(ret, IS_CLIENT);
697     DeleteSessionServerAndSession(g_sessionName, sessionId);
698     sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_BUTT, true);
699     ASSERT_GT(sessionId, 0);
700     ret =  GetSessionSide(sessionId);
701     EXPECT_EQ(ret, IS_SERVER);
702     DeleteSessionServerAndSession(g_sessionName, sessionId);
703 }
704 
705 /**
706  * @tc.name: TransClientSessionTest16
707  * @tc.desc: Transmission sdk session service set file receive listener with different parameters.
708  * @tc.type: FUNC
709  * @tc.require:
710  */
711 HWTEST_F(TransClientSessionTest, TransClientSessionTest16, TestSize.Level1)
712 {
713     char sessionName[SESSION_NAME_SIZE_MAX + 2] = {0};
714     memset_s(sessionName, SESSION_NAME_SIZE_MAX + 2, 'A', SESSION_NAME_SIZE_MAX + 1);
715     char pkgName[PKG_NAME_SIZE_MAX + 2] = {0};
716     memset_s(pkgName, PKG_NAME_SIZE_MAX + 2, 'B', PKG_NAME_SIZE_MAX + 1);
717     char rootDir[FILE_RECV_ROOT_DIR_SIZE_MAX + 2] = {0};
718     memset_s(rootDir, FILE_RECV_ROOT_DIR_SIZE_MAX + 2, 'C', FILE_RECV_ROOT_DIR_SIZE_MAX + 1);
719     int ret = SetFileReceiveListener(pkgName, g_sessionName, &g_fileRecvListener, g_rootDir);
720     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
721     ret = SetFileReceiveListener(g_pkgName, sessionName, &g_fileRecvListener, g_rootDir);
722     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
723     ret = SetFileReceiveListener(g_pkgName, g_sessionName, NULL, g_rootDir);
724     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
725     ret = SetFileReceiveListener(g_pkgName, g_sessionName, &g_fileRecvListener, NULL);
726     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
727     ret = SetFileReceiveListener(g_pkgName, g_sessionName, &g_fileRecvListener, g_rootDir);
728     EXPECT_EQ(ret, SOFTBUS_OK);
729 }
730 
731 /**
732  * @tc.name: TransClientSessionTest17
733  * @tc.desc: Transmission sdk session service set file send listener with different parameters.
734  * @tc.type: FUNC
735  * @tc.require:
736  */
737 HWTEST_F(TransClientSessionTest, TransClientSessionTest17, TestSize.Level1)
738 {
739     char sessionName[SESSION_NAME_SIZE_MAX + 2] = {0};
740     memset_s(sessionName, SESSION_NAME_SIZE_MAX + 2, 'A', SESSION_NAME_SIZE_MAX + 1);
741     char pkgName[PKG_NAME_SIZE_MAX + 2] = {0};
742     memset_s(pkgName, PKG_NAME_SIZE_MAX + 2, 'B', PKG_NAME_SIZE_MAX + 1);
743     char rootDir[FILE_RECV_ROOT_DIR_SIZE_MAX + 2] = {0};
744     memset_s(rootDir, FILE_RECV_ROOT_DIR_SIZE_MAX + 2, 'C', FILE_RECV_ROOT_DIR_SIZE_MAX + 1);
745     int ret = SetFileSendListener(pkgName, g_sessionName, &g_fileSendListener);
746     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
747     ret = SetFileSendListener(g_pkgName, sessionName, &g_fileSendListener);
748     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
749     ret = SetFileSendListener(g_pkgName, g_sessionName, NULL);
750     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
751     ret = SetFileSendListener(g_pkgName, g_sessionName, &g_fileSendListener);
752     EXPECT_EQ(ret, SOFTBUS_OK);
753 }
754 
755 /**
756  * @tc.name: TransClientSessionTest18
757  * @tc.desc: Transmission sdk session service judge whether session is DFS with different parameters.
758  * @tc.type: FUNC
759  * @tc.require:
760  */
761 HWTEST_F(TransClientSessionTest, TransClientSessionTest18, TestSize.Level1)
762 {
763     int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_BUTT, false);
764     ASSERT_GT(sessionId, 0);
765     int32_t channelId = 0;
766     int32_t ret = IsValidDFSSession(sessionId, &channelId);
767     EXPECT_EQ(ret, SOFTBUS_TRANS_FUNC_NOT_SUPPORT);
768     DeleteSessionServerAndSession(g_sessionName, sessionId);
769     const char *dfsSessionName = "DistributedFileService";
770     sessionId = AddSessionServerAndSession(dfsSessionName, CHANNEL_TYPE_BUTT, false);
771     ASSERT_GT(sessionId, 0);
772     ret = IsValidDFSSession(sessionId, &channelId);
773     EXPECT_EQ(ret, SOFTBUS_TRANS_FUNC_NOT_SUPPORT);
774     EXPECT_EQ(channelId, TRANS_TEST_CHANNEL_ID);
775     DeleteSessionServerAndSession(dfsSessionName, sessionId);
776     sessionId = AddSessionServerAndSession(dfsSessionName, CHANNEL_TYPE_TCP_DIRECT, false);
777     ASSERT_GT(sessionId, 0);
778     ret = IsValidDFSSession(sessionId, &channelId);
779     EXPECT_EQ(ret, SOFTBUS_OK);
780     EXPECT_EQ(channelId, TRANS_TEST_CHANNEL_ID);
781     DeleteSessionServerAndSession(dfsSessionName, sessionId);
782 }
783 
784 /**
785  * @tc.name: TransClientSessionTest19
786  * @tc.desc: Transmission sdk session service get session key with different parameters.
787  * @tc.type: FUNC
788  * @tc.require:
789  */
790 HWTEST_F(TransClientSessionTest, TransClientSessionTest19, TestSize.Level1)
791 {
792     const char *dfsSessionName = "DistributedFileService";
793     int32_t sessionId = AddSessionServerAndSession(dfsSessionName, CHANNEL_TYPE_TCP_DIRECT, false);
794     ASSERT_GT(sessionId, 0);
795     char sessionKey[SESSION_KEY_LEN] = {0};
796     int32_t ret = GetSessionKey(sessionId, sessionKey, SESSION_KEY_LEN);
797     EXPECT_EQ(ret, SOFTBUS_ERR);
798     DeleteSessionServerAndSession(dfsSessionName, sessionId);
799 }
800 
801 /**
802  * @tc.name: TransClientSessionTest20
803  * @tc.desc: Transmission sdk session service get session handle.
804  * @tc.type: FUNC
805  * @tc.require:
806  */
807 HWTEST_F(TransClientSessionTest, TransClientSessionTest20, TestSize.Level1)
808 {
809     const char *dfsSessionName = "DistributedFileService";
810     int32_t sessionId = AddSessionServerAndSession(dfsSessionName, CHANNEL_TYPE_TCP_DIRECT, false);
811     ASSERT_GT(sessionId, 0);
812     int handle = 0;
813     int32_t ret = GetSessionHandle(sessionId, &handle);
814     EXPECT_EQ(ret, SOFTBUS_ERR);
815     DeleteSessionServerAndSession(dfsSessionName, sessionId);
816 }
817 
818 /**
819  * @tc.name: TransClientSessionTest21
820  * @tc.desc: Transmission sdk session service disable session listener.
821  * @tc.type: FUNC
822  * @tc.require:
823  */
824 HWTEST_F(TransClientSessionTest, TransClientSessionTest21, TestSize.Level1)
825 {
826     const char *dfsSessionName = "DistributedFileService";
827     int32_t sessionId = AddSessionServerAndSession(dfsSessionName, CHANNEL_TYPE_TCP_DIRECT, false);
828     ASSERT_GT(sessionId, 0);
829     int32_t ret = DisableSessionListener(sessionId);
830     EXPECT_EQ(ret, SOFTBUS_ERR);
831     DeleteSessionServerAndSession(dfsSessionName, sessionId);
832 }
833 
834 /**
835  * @tc.name: TransClientSessionTest22
836  * @tc.desc: Transmission sdk session service read max send bytes size with different parameters.
837  * @tc.type: FUNC
838  * @tc.require:
839  */
840 HWTEST_F(TransClientSessionTest, TransClientSessionTest22, TestSize.Level1)
841 {
842     uint32_t value = 0;
843     int ret = ReadMaxSendBytesSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_TCP_DIRECT,
844                                    &value, TRANS_TEST_INVALID_VALUE_SIZE);
845     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
846     ret = ReadMaxSendBytesSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &value, sizeof(value));
847     EXPECT_EQ(ret, SOFTBUS_GET_CONFIG_VAL_ERR);
848     ret = ReadMaxSendBytesSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_TCP_DIRECT, &value, sizeof(value));
849     EXPECT_EQ(ret, SOFTBUS_GET_CONFIG_VAL_ERR);
850 }
851 
852 /**
853  * @tc.name: TransClientSessionTest23
854  * @tc.desc: Transmission sdk session service read max send message size with different parameters.
855  * @tc.type: FUNC
856  * @tc.require:
857  */
858 HWTEST_F(TransClientSessionTest, TransClientSessionTest23, TestSize.Level1)
859 {
860     uint32_t value = 0;
861     int ret = ReadMaxSendMessageSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_TCP_DIRECT,
862                                      &value, TRANS_TEST_INVALID_VALUE_SIZE);
863     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
864     ret = ReadMaxSendMessageSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &value, sizeof(value));
865     EXPECT_EQ(ret, SOFTBUS_GET_CONFIG_VAL_ERR);
866     ret = ReadMaxSendMessageSize(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_TCP_DIRECT, &value, sizeof(value));
867     EXPECT_EQ(ret, SOFTBUS_GET_CONFIG_VAL_ERR);
868 }
869 
870 /**
871  * @tc.name: TransClientSessionTest24
872  * @tc.desc: Transmission sdk session service get session option with different parameters.
873  * @tc.type: FUNC
874  * @tc.require:
875  */
876 HWTEST_F(TransClientSessionTest, TransClientSessionTest24, TestSize.Level1)
877 {
878     uint32_t optionValue = 0;
879     int ret = GetSessionOption(TRANS_TEST_SESSION_ID, SESSION_OPTION_BUTT,
880                                &optionValue, sizeof(optionValue));
881     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
882     ret = GetSessionOption(TRANS_TEST_SESSION_ID, SESSION_OPTION_MAX_SENDBYTES_SIZE,
883                            NULL, sizeof(optionValue));
884     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
885     ret = GetSessionOption(TRANS_TEST_SESSION_ID, SESSION_OPTION_MAX_SENDBYTES_SIZE,
886                            &optionValue, 0);
887     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
888     ret = GetSessionOption(TRANS_TEST_SESSION_ID, SESSION_OPTION_MAX_SENDBYTES_SIZE,
889                            &optionValue, sizeof(optionValue));
890     EXPECT_EQ(ret, SOFTBUS_TRANS_SESSION_INFO_NOT_FOUND);
891     int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_TCP_DIRECT, false);
892     ASSERT_GT(sessionId, 0);
893     ret = GetSessionOption(sessionId, SESSION_OPTION_MAX_SENDBYTES_SIZE,
894                            &optionValue, sizeof(optionValue));
895     EXPECT_EQ(ret, SOFTBUS_OK);
896     DeleteSessionServerAndSession(g_sessionName, sessionId);
897 }
898 
899 /**
900  * @tc.name: TransClientSessionTest25
901  * @tc.desc: Transmission sdk session manager lnn offline process with different parameters.
902  * @tc.type: FUNC
903  * @tc.require:
904  */
905 HWTEST_F(TransClientSessionTest, TransClientSessionTest25, TestSize.Level1)
906 {
907     ClientTransLnnOfflineProc(NULL);
908     int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_TCP_DIRECT, false);
909     ASSERT_GT(sessionId, 0);
910 
911     NodeBasicInfo info;
912     memset_s(&info, sizeof(NodeBasicInfo), 0, sizeof(NodeBasicInfo));
913     int ret = strcpy_s(info.networkId, sizeof(info.networkId), g_networkId);
914     ASSERT_EQ(ret, EOK);
915     ret = strcpy_s(info.deviceName, sizeof(info.deviceName), g_deviceName);
916     ASSERT_EQ(ret, EOK);
917     info.deviceTypeId = TRANS_TEST_DEVICE_TYPE_ID;
918     ClientTransLnnOfflineProc(&info);
919 
920     DeleteSessionServerAndSession(g_sessionName, sessionId);
921 }
922 
923 /**
924  * @tc.name: TransClientSessionTest26
925  * @tc.desc: Transmission sdk session manager judge session whether session is available.
926  * @tc.type: FUNC
927  * @tc.require:
928  */
929 HWTEST_F(TransClientSessionTest, TransClientSessionTest26, TestSize.Level1)
930 {
931     int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_TCP_DIRECT, false);
932     ASSERT_GT(sessionId, 0);
933     DestroyClientSessionServer(NULL, NULL);
934     bool res = SessionIdIsAvailable(sessionId);
935     EXPECT_FALSE(res);
936 
937     DeleteSessionServerAndSession(g_sessionName, sessionId);
938 }
939 
940 /**
941  * @tc.name: TransClientSessionTest27
942  * @tc.desc: Transmission sdk session manager get new session server with different parameters.
943  * @tc.type: FUNC
944  * @tc.require:
945  */
946 HWTEST_F(TransClientSessionTest, TransClientSessionTest27, TestSize.Level1)
947 {
948     ClientSessionServer *server = GetNewSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName, g_pkgName, &g_sessionlistener);
949     ASSERT_TRUE(server != NULL);
950     SoftBusFree(server);
951     char sessionName[SESSION_NAME_SIZE_MAX + 2] = {0};
952     memset_s(sessionName, sizeof(sessionName), 'A', SESSION_NAME_SIZE_MAX + 1);
953     server = GetNewSessionServer(SEC_TYPE_PLAINTEXT, sessionName, g_pkgName, &g_sessionlistener);
954     EXPECT_TRUE(server == NULL);
955     char pkgName[PKG_NAME_SIZE_MAX + 2] = {0};
956     memset_s(pkgName, sizeof(pkgName), 'B', PKG_NAME_SIZE_MAX + 1);
957     server = GetNewSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName, pkgName, &g_sessionlistener);
958     EXPECT_TRUE(server == NULL);
959 }
960 
961 /**
962  * @tc.name: TransClientSessionTest28
963  * @tc.desc: Transmission sdk session manager judge whether parameter is valid with different parameters.
964  * @tc.type: FUNC
965  * @tc.require:
966  */
967 HWTEST_F(TransClientSessionTest, TransClientSessionTest28, TestSize.Level1)
968 {
969     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
970     ASSERT_TRUE(sessionParam != NULL);
971 
972     bool res = IsValidSessionParam(NULL);
973     EXPECT_FALSE(res);
974     res = IsValidSessionParam(sessionParam);
975     EXPECT_FALSE(res);
976     sessionParam->sessionName = g_sessionName;
977     res = IsValidSessionParam(sessionParam);
978     EXPECT_FALSE(res);
979     sessionParam->peerSessionName = g_sessionName;
980     res = IsValidSessionParam(sessionParam);
981     EXPECT_FALSE(res);
982     sessionParam->peerDeviceId = g_deviceId;
983     res = IsValidSessionParam(sessionParam);
984     EXPECT_FALSE(res);
985     sessionParam->groupId = g_groupId;
986     res = IsValidSessionParam(sessionParam);
987     EXPECT_FALSE(res);
988     sessionParam->attr = (const SessionAttribute*)&g_sessionAttr;
989     res = IsValidSessionParam(sessionParam);
990     EXPECT_TRUE(res);
991 
992     SoftBusFree(sessionParam);
993 }
994 
995 /**
996  * @tc.name: TransClientSessionTest29
997  * @tc.desc: Transmission sdk session manager create new session with different parameters.
998  * @tc.type: FUNC
999  * @tc.require:
1000  */
1001 HWTEST_F(TransClientSessionTest, TransClientSessionTest29, TestSize.Level1)
1002 {
1003     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
1004     ASSERT_TRUE(sessionParam != NULL);
1005 
1006     TestGenerateCommParam(sessionParam);
1007     SessionInfo *session = CreateNewSession(sessionParam);
1008     EXPECT_TRUE(session != NULL);
1009     SoftBusFree(session);
1010 
1011     char sessionName[SESSION_NAME_SIZE_MAX + 2] = {0};
1012     memset_s(sessionName, sizeof(sessionName), 'A', SESSION_NAME_SIZE_MAX + 1);
1013     sessionParam->peerSessionName = (const char*)sessionName;
1014     session = CreateNewSession(sessionParam);
1015     EXPECT_TRUE(session == NULL);
1016 
1017     char deviceId[DEVICE_ID_SIZE_MAX + 2] = {0};
1018     memset_s(deviceId, sizeof(deviceId), 'B', DEVICE_ID_SIZE_MAX + 1);
1019     sessionParam->peerSessionName = g_sessionName;
1020     sessionParam->peerDeviceId = (const char*)deviceId;
1021     session = CreateNewSession(sessionParam);
1022     EXPECT_TRUE(session == NULL);
1023 
1024     char groupId[GROUP_ID_SIZE_MAX + 2] = {0};
1025     memset_s(groupId, sizeof(groupId), 'C', GROUP_ID_SIZE_MAX + 1);
1026     sessionParam->peerSessionName = g_sessionName;
1027     sessionParam->peerDeviceId = g_deviceId;
1028     sessionParam->groupId = (const char*)groupId;
1029     session = CreateNewSession(sessionParam);
1030     EXPECT_TRUE(session == NULL);
1031 
1032     SoftBusFree(sessionParam);
1033 }
1034 
1035 /**
1036  * @tc.name: TransClientSessionTest30
1037  * @tc.desc: Transmission sdk session manager get exist session.
1038  * @tc.type: FUNC
1039  * @tc.require:
1040  */
1041 HWTEST_F(TransClientSessionTest, TransClientSessionTest30, TestSize.Level1)
1042 {
1043     int32_t sessionId = AddSessionServerAndSession(g_sessionName, CHANNEL_TYPE_TCP_DIRECT, false);
1044     ASSERT_GT(sessionId, 0);
1045 
1046     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
1047     ASSERT_TRUE(sessionParam != NULL);
1048     TestGenerateCommParam(sessionParam);
1049 
1050     SessionInfo *session = GetExistSession(sessionParam);
1051     ASSERT_TRUE(session != NULL);
1052 
1053     int ret = strcmp(session->info.peerSessionName, sessionParam->peerSessionName);
1054     EXPECT_EQ(ret, EOK);
1055     ret = strcmp(session->info.peerDeviceId, sessionParam->peerDeviceId);
1056     EXPECT_EQ(ret, EOK);
1057     ret = strcmp(session->info.groupId, sessionParam->groupId);
1058     EXPECT_EQ(ret, EOK);
1059 
1060     DeleteSessionServerAndSession(g_sessionName, sessionId);
1061 }
1062 }