• 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_app_info.h"
24 #include "softbus_server_frame.h"
25 #include "softbus_adapter_mem.h"
26 #include "client_trans_session_manager.h"
27 #include "client_trans_session_service.h"
28 #include "client_trans_session_callback.h"
29 #include "client_trans_session_callback.c"
30 #include "softbus_config_type.h"
31 
32 #define TRANS_TEST_SESSION_ID 10
33 #define TRANS_TEST_PID 0
34 #define TRANS_TEST_UID 0
35 #define TRANS_TEST_CHANNEL_ID 1000
36 #define TRANS_TEST_FILE_ENCRYPT 10
37 #define TRANS_TEST_ALGORITHM 1
38 #define TRANS_TEST_CRC 1
39 #define TRANS_TEST_EVENT_ID 1
40 #define TRANS_TEST_TV_COUNT 1
41 #define TRANS_TEST_AUTH_DATA "test auth message data"
42 
43 #define TRANS_TEST_INVALID_CHANNEL_ID (-1)
44 
45 #define MAX_SESSION_SERVER_NUM 32
46 
47 using namespace testing::ext;
48 
49 namespace OHOS {
50 
51 const char *g_pkgName = "dms";
52 const char *g_sessionName = "ohos.distributedschedule.dms.test";
53 const char *g_networkId = "ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF0";
54 const char *g_deviceId = "ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF0";
55 const char *g_groupid = "TEST_GROUP_ID";
56 static SessionAttribute g_sessionAttr = {
57     .dataType = TYPE_BYTES,
58 };
59 class TransClientSessionCallbackTest : public testing::Test {
60 public:
TransClientSessionCallbackTest()61     TransClientSessionCallbackTest()
62     {}
~TransClientSessionCallbackTest()63     ~TransClientSessionCallbackTest()
64     {}
65     static void SetUpTestCase(void);
66     static void TearDownTestCase(void);
SetUp()67     void SetUp() override
68     {}
TearDown()69     void TearDown() override
70     {}
71 };
72 
SetUpTestCase(void)73 void TransClientSessionCallbackTest::SetUpTestCase(void)
74 {
75     InitSoftBusServer();
76     int32_t ret = TransClientInit();
77     ASSERT_EQ(ret, SOFTBUS_OK);
78 }
79 
TearDownTestCase(void)80 void TransClientSessionCallbackTest::TearDownTestCase(void)
81 {
82 }
83 
OnSessionOpened(int sessionId,int result)84 static int OnSessionOpened(int sessionId, int result)
85 {
86     LOG_INFO("session opened,sesison id = %d\r\n", sessionId);
87     return SOFTBUS_OK;
88 }
89 
OnSessionClosed(int sessionId)90 static void OnSessionClosed(int sessionId)
91 {
92     LOG_INFO("session closed, session id = %d\r\n", sessionId);
93 }
94 
OnBytesReceived(int sessionId,const void * data,unsigned int len)95 static void OnBytesReceived(int sessionId, const void *data, unsigned int len)
96 {
97     LOG_INFO("session bytes received, session id = %d\r\n", sessionId);
98 }
99 
OnMessageReceived(int sessionId,const void * data,unsigned int len)100 static void OnMessageReceived(int sessionId, const void *data, unsigned int len)
101 {
102     LOG_INFO("session msg received, session id = %d\r\n", sessionId);
103 }
104 
OnStreamReceived(int sessionId,const StreamData * data,const StreamData * ext,const StreamFrameInfo * param)105 static void OnStreamReceived(int sessionId, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param)
106 {
107     LOG_INFO("session stream received, session id = %d\r\n", sessionId);
108 }
109 
OnQosEvent(int sessionId,int eventId,int tvCount,const QosTv * tvList)110 static void OnQosEvent(int sessionId, int eventId, int tvCount, const QosTv *tvList)
111 {
112     LOG_INFO("session Qos event emit, session id = %d\r\n", sessionId);
113 }
114 
115 static ISessionListener g_sessionlistener = {
116     .OnSessionOpened = OnSessionOpened,
117     .OnSessionClosed = OnSessionClosed,
118     .OnBytesReceived = OnBytesReceived,
119     .OnMessageReceived = OnMessageReceived,
120     .OnStreamReceived = OnStreamReceived,
121     .OnQosEvent = OnQosEvent,
122 };
123 
TestGenerateCommParam(SessionParam * sessionParam)124 static void TestGenerateCommParam(SessionParam *sessionParam)
125 {
126     sessionParam->sessionName = g_sessionName;
127     sessionParam->peerSessionName = g_sessionName;
128     sessionParam->peerDeviceId = g_deviceId;
129     sessionParam->groupId = g_groupid;
130     sessionParam->attr = &g_sessionAttr;
131 }
132 
TestGenerateChannInfo(ChannelInfo * channel)133 static int32_t TestGenerateChannInfo(ChannelInfo *channel)
134 {
135     char *sessionName = (char*)SoftBusCalloc(SESSION_NAME_SIZE_MAX * sizeof(char));
136     char *deviceId = (char*)SoftBusCalloc(DEVICE_ID_SIZE_MAX * sizeof(char));
137     char *groupId = (char*)SoftBusCalloc(GROUP_ID_SIZE_MAX * sizeof(char));
138 
139     if (sessionName == NULL || deviceId == NULL || groupId == NULL ||
140         strcpy_s(sessionName, SESSION_NAME_SIZE_MAX, g_sessionName) != EOK ||
141         strcpy_s(deviceId, SESSION_NAME_SIZE_MAX, g_deviceId) != EOK ||
142         strcpy_s(groupId, SESSION_NAME_SIZE_MAX, g_groupid) != EOK) {
143         SoftBusFree(sessionName);
144         SoftBusFree(deviceId);
145         SoftBusFree(groupId);
146         return SOFTBUS_ERR;
147     }
148 
149     channel->peerSessionName = sessionName;
150     channel->peerDeviceId = deviceId;
151     channel->groupId = groupId;
152     channel->channelId = TRANS_TEST_CHANNEL_ID;
153     channel->channelType = CHANNEL_TYPE_BUTT;
154     channel->peerPid = TRANS_TEST_PID;
155     channel->peerUid = TRANS_TEST_UID;
156     channel->isServer = false;
157     channel->businessType = BUSINESS_TYPE_BUTT;
158     channel->routeType = ROUTE_TYPE_ALL;
159     channel->encrypt = TRANS_TEST_FILE_ENCRYPT;
160     channel->algorithm = TRANS_TEST_ALGORITHM;
161     channel->crc = TRANS_TEST_CRC;
162 
163     return SOFTBUS_OK;
164 }
165 
TestGenerateSession(const SessionParam * param)166 static SessionInfo *TestGenerateSession(const SessionParam *param)
167 {
168     SessionInfo *session = (SessionInfo*)SoftBusCalloc(sizeof(SessionInfo));
169     if (session == NULL) {
170         return NULL;
171     }
172 
173     if (strcpy_s(session->info.peerSessionName, SESSION_NAME_SIZE_MAX, param->peerSessionName) != EOK ||
174         strcpy_s(session->info.peerDeviceId, DEVICE_ID_SIZE_MAX, param->peerDeviceId) != EOK ||
175         strcpy_s(session->info.groupId, GROUP_ID_SIZE_MAX, param->groupId) != EOK) {
176         SoftBusFree(session);
177         return NULL;
178     }
179 
180     session->sessionId = TRANS_TEST_SESSION_ID;
181     session->channelId = TRANS_TEST_CHANNEL_ID;
182     session->channelType = CHANNEL_TYPE_BUTT;
183     session->isServer = false;
184     session->isEnable = false;
185     session->routeType = ROUTE_TYPE_ALL;
186     session->info.flag = TYPE_BYTES;
187     session->isEncrypt = true;
188     session->algorithm = TRANS_TEST_ALGORITHM;
189     session->fileEncrypt = TRANS_TEST_FILE_ENCRYPT;
190     session->crc = TRANS_TEST_CRC;
191 
192     return session;
193 }
194 
RelesseChannInfo(ChannelInfo * channel)195 static void RelesseChannInfo(ChannelInfo *channel)
196 {
197     if (channel != NULL) {
198         if (channel->peerSessionName != NULL) {
199             SoftBusFree(channel->peerSessionName);
200         }
201         if (channel->peerDeviceId != NULL) {
202             SoftBusFree(channel->peerDeviceId);
203         }
204         if (channel->groupId != NULL) {
205             SoftBusFree(channel->groupId);
206         }
207         SoftBusFree(channel);
208     }
209     channel = NULL;
210 }
211 
212 /**
213  * @tc.name: TransClientSessionCallbackTest01
214  * @tc.desc: Transmission sdk session callback accept session as server with different parameters.
215  * @tc.type: FUNC
216  * @tc.require:
217  */
218 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest01, TestSize.Level1)
219 {
220     int32_t sessionId = 0;
221     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
222     ASSERT_TRUE(sessionParam != NULL);
223     TestGenerateCommParam(sessionParam);
224     int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
225     ASSERT_EQ(ret, SOFTBUS_OK);
226     ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
227     ASSERT_TRUE(channel != NULL);
228     ret = TestGenerateChannInfo(channel);
229     ASSERT_EQ(ret, SOFTBUS_OK);
230     ret = AcceptSessionAsServer(g_sessionName, channel, TYPE_BUTT, &sessionId);
231     EXPECT_EQ(ret, SOFTBUS_OK);
232     const char *sessionName = "com.huawei.devicegroupmanage";
233     ret = AcceptSessionAsServer(sessionName, channel, TYPE_BUTT, &sessionId);
234     EXPECT_EQ(ret, SOFTBUS_ERR);
235     SoftBusFree(channel->groupId);
236     channel->groupId = NULL;
237     ret = AcceptSessionAsServer(g_sessionName, channel, TYPE_BUTT, &sessionId);
238     EXPECT_EQ(ret, SOFTBUS_MEM_ERR);
239     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
240     EXPECT_EQ(ret, SOFTBUS_OK);
241     RelesseChannInfo(channel);
242 }
243 
244 /**
245  * @tc.name: TransClientSessionCallbackTest02
246  * @tc.desc: Transmission sdk session callback get session callback by channe id with different parameters.
247  * @tc.type: FUNC
248  * @tc.require:
249  */
250 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest02, TestSize.Level1)
251 {
252     int32_t sessionId = 0;
253     ISessionListener listener = {0};
254     int32_t ret = GetSessionCallbackByChannelId(TRANS_TEST_INVALID_CHANNEL_ID, CHANNEL_TYPE_BUTT,
255                                                 &sessionId, &listener);
256     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
257     ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, NULL, &listener);
258     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
259     ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, NULL);
260     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
261     ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, &listener);
262     EXPECT_EQ(ret, SOFTBUS_ERR);
263     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
264     EXPECT_EQ(ret, SOFTBUS_OK);
265     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
266     ASSERT_TRUE(sessionParam != NULL);
267     TestGenerateCommParam(sessionParam);
268     SessionInfo *session = TestGenerateSession(sessionParam);
269     ASSERT_TRUE(session != NULL);
270     ret = ClientAddNewSession(g_sessionName, session);
271     ASSERT_EQ(ret, SOFTBUS_OK);
272     ret = GetSessionCallbackByChannelId(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &sessionId, &listener);
273     EXPECT_EQ(ret, SOFTBUS_OK);
274     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
275     EXPECT_EQ(ret, SOFTBUS_OK);
276     SoftBusFree(sessionParam);
277 }
278 
279 /**
280  * @tc.name: TransClientSessionCallbackTest03
281  * @tc.desc: Transmission sdk session callback on session opened with invalid parameters.
282  * @tc.type: FUNC
283  * @tc.require:
284  */
285 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest03, TestSize.Level1)
286 {
287     ISessionListener sessionlistener = {
288         .OnSessionOpened = NULL,
289         .OnSessionClosed = OnSessionClosed,
290         .OnBytesReceived = OnBytesReceived,
291         .OnMessageReceived = OnMessageReceived,
292     };
293     ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
294     ASSERT_TRUE(channel != NULL);
295     int32_t ret = TestGenerateChannInfo(channel);
296     ASSERT_EQ(ret, SOFTBUS_OK);
297     ret = TransOnSessionOpened(NULL, channel, TYPE_BUTT);
298     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
299     ret = TransOnSessionOpened(g_sessionName, NULL, TYPE_BUTT);
300     EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
301     ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BUTT);
302     EXPECT_EQ(ret, SOFTBUS_ERR);
303     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
304     ASSERT_EQ(ret, SOFTBUS_OK);
305     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
306     ASSERT_TRUE(sessionParam != NULL);
307     TestGenerateCommParam(sessionParam);
308     SessionInfo *session = TestGenerateSession(sessionParam);
309     ASSERT_TRUE(session != NULL);
310     ret = ClientAddNewSession(g_sessionName, session);
311     ASSERT_EQ(ret, SOFTBUS_OK);
312     ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BUTT);
313     EXPECT_EQ(ret, SOFTBUS_ERR);
314     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
315     EXPECT_EQ(ret, SOFTBUS_OK);
316     RelesseChannInfo(channel);
317     SoftBusFree(sessionParam);
318 }
319 
320 /**
321  * @tc.name: TransClientSessionCallbackTest04
322  * @tc.desc: Transmission sdk session callback on session opened with different parameters.
323  * @tc.type: FUNC
324  * @tc.require:
325  */
326 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest04, TestSize.Level1)
327 {
328     ChannelInfo *channel = (ChannelInfo*)SoftBusCalloc(sizeof(ChannelInfo));
329     ASSERT_TRUE(channel != NULL);
330     int32_t ret = TestGenerateChannInfo(channel);
331     ASSERT_EQ(ret, SOFTBUS_OK);
332     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
333     ASSERT_EQ(ret, SOFTBUS_OK);
334     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
335     ASSERT_TRUE(sessionParam != NULL);
336     TestGenerateCommParam(sessionParam);
337     SessionInfo *session = TestGenerateSession(sessionParam);
338     ASSERT_TRUE(session != NULL);
339     ret = ClientAddNewSession(g_sessionName, session);
340     ASSERT_EQ(ret, SOFTBUS_OK);
341     channel->channelType = TYPE_BUTT;
342     ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BYTES);
343     EXPECT_EQ(ret, SOFTBUS_ERR);
344     channel->isServer = true;
345     ret = TransOnSessionOpened(g_sessionName, channel, TYPE_BYTES);
346     EXPECT_EQ(ret, SOFTBUS_OK);
347     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
348     EXPECT_EQ(ret, SOFTBUS_OK);
349     RelesseChannInfo(channel);
350     SoftBusFree(sessionParam);
351 }
352 
353 /**
354  * @tc.name: TransClientSessionCallbackTest05
355  * @tc.desc: Transmission sdk session callback on session closed.
356  * @tc.type: FUNC
357  * @tc.require:
358  */
359 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest05, TestSize.Level1)
360 {
361     int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
362     ASSERT_EQ(ret, SOFTBUS_OK);
363     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
364     ASSERT_TRUE(sessionParam != NULL);
365     TestGenerateCommParam(sessionParam);
366     SessionInfo *session = TestGenerateSession(sessionParam);
367     ASSERT_TRUE(session != NULL);
368     ret = ClientAddNewSession(g_sessionName, session);
369     ASSERT_EQ(ret, SOFTBUS_OK);
370     ret = TransOnSessionClosed(INVALID_CHANNEL_ID, CHANNEL_TYPE_BUTT);
371     EXPECT_EQ(ret, SOFTBUS_ERR);
372     ret = TransOnSessionClosed(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT);
373     EXPECT_EQ(ret, SOFTBUS_OK);
374     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
375     EXPECT_EQ(ret, SOFTBUS_OK);
376     SoftBusFree(sessionParam);
377 }
378 
379 /**
380  * @tc.name: TransClientSessionCallbackTest06
381  * @tc.desc: Transmission sdk session callback process receive file data with different parameter.
382  * @tc.type: FUNC
383  * @tc.require:
384  */
385 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest06, TestSize.Level1)
386 {
387     int32_t sessionId = 0;
388     bool isEnabled = false;
389     int32_t ret = ProcessReceivedFileData(TRANS_TEST_SESSION_ID, TRANS_TEST_CHANNEL_ID, TRANS_TEST_AUTH_DATA,
390                                           strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
391     EXPECT_EQ(ret, SOFTBUS_ERR);
392     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
393     ASSERT_EQ(ret, SOFTBUS_OK);
394     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
395     ASSERT_TRUE(sessionParam != NULL);
396     TestGenerateCommParam(sessionParam);
397     ret = ClientAddSession(sessionParam, &sessionId, &isEnabled);
398     ASSERT_EQ(ret, SOFTBUS_OK);
399     ret = ProcessReceivedFileData(sessionId, TRANS_TEST_CHANNEL_ID, TRANS_TEST_AUTH_DATA,
400                                   strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
401     EXPECT_EQ(ret, SOFTBUS_ERR);
402     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
403     EXPECT_EQ(ret, SOFTBUS_OK);
404     SoftBusFree(sessionParam);
405 }
406 
407 /**
408  * @tc.name: TransClientSessionCallbackTest07
409  * @tc.desc: Transmission sdk session callback on data received with different parameter.
410  * @tc.type: FUNC
411  * @tc.require:
412  */
413 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest07, TestSize.Level1)
414 {
415     int32_t ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_AUTH_DATA,
416                                       strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
417     EXPECT_EQ(ret, SOFTBUS_ERR);
418     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
419     ASSERT_EQ(ret, SOFTBUS_OK);
420     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
421     ASSERT_TRUE(sessionParam != NULL);
422     TestGenerateCommParam(sessionParam);
423     SessionInfo *session = TestGenerateSession(sessionParam);
424     ASSERT_TRUE(session != NULL);
425     session->channelType = CHANNEL_TYPE_PROXY;
426     ret = ClientAddNewSession(g_sessionName, session);
427     ASSERT_EQ(ret, SOFTBUS_OK);
428     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
429                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_FILE_FIRST_FRAME);
430     EXPECT_EQ(ret, SOFTBUS_ERR);
431     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
432                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_BYTES);
433     EXPECT_EQ(ret, SOFTBUS_OK);
434     ret = TransOnDataReceived(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_PROXY, TRANS_TEST_AUTH_DATA,
435                               strlen(TRANS_TEST_AUTH_DATA), TRANS_SESSION_MESSAGE);
436     EXPECT_EQ(ret, SOFTBUS_OK);
437     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
438     EXPECT_EQ(ret, SOFTBUS_OK);
439     SoftBusFree(sessionParam);
440 }
441 
442 /**
443  * @tc.name: TransClientSessionCallbackTest08
444  * @tc.desc: Transmission sdk session callback on stream received with different parameter.
445  * @tc.type: FUNC
446  * @tc.require:
447  */
448 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest08, TestSize.Level1)
449 {
450     StreamData data = {0};
451     StreamData ext = {0};
452     StreamFrameInfo param = {0};
453     int32_t ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, &param);
454     EXPECT_EQ(ret, SOFTBUS_ERR);
455     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
456     ASSERT_EQ(ret, SOFTBUS_OK);
457     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
458     ASSERT_TRUE(sessionParam != NULL);
459     TestGenerateCommParam(sessionParam);
460     SessionInfo *session = TestGenerateSession(sessionParam);
461     ASSERT_TRUE(session != NULL);
462     ret = ClientAddNewSession(g_sessionName, session);
463     ASSERT_EQ(ret, SOFTBUS_OK);
464     ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, &param);
465     EXPECT_EQ(ret, SOFTBUS_OK);
466     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
467     EXPECT_EQ(ret, SOFTBUS_OK);
468     SoftBusFree(sessionParam);
469 }
470 
471 /**
472  * @tc.name: TransClientSessionCallbackTest09
473  * @tc.desc: Transmission sdk session callback on stream received no callback.
474  * @tc.type: FUNC
475  * @tc.require:
476  */
477 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest09, TestSize.Level1)
478 {
479     StreamData data = {0};
480     StreamData ext = {0};
481     StreamFrameInfo param = {0};
482     ISessionListener sessionlistener = {
483         .OnSessionOpened = OnSessionOpened,
484         .OnSessionClosed = OnSessionClosed,
485         .OnBytesReceived = OnBytesReceived,
486         .OnMessageReceived = OnMessageReceived,
487         .OnStreamReceived = NULL,
488     };
489     int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
490     ASSERT_EQ(ret, SOFTBUS_OK);
491     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
492     ASSERT_TRUE(sessionParam != NULL);
493     TestGenerateCommParam(sessionParam);
494     SessionInfo *session = TestGenerateSession(sessionParam);
495     ASSERT_TRUE(session != NULL);
496     ret = ClientAddNewSession(g_sessionName, session);
497     ASSERT_EQ(ret, SOFTBUS_OK);
498     ret = TransOnOnStreamRecevied(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, &data, &ext, &param);
499     EXPECT_EQ(ret, SOFTBUS_ERR);
500     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
501     EXPECT_EQ(ret, SOFTBUS_OK);
502     SoftBusFree(sessionParam);
503 }
504 
505 /**
506  * @tc.name: TransClientSessionCallbackTest10
507  * @tc.desc: Transmission sdk session callback on qos with different parameter.
508  * @tc.type: FUNC
509  * @tc.require:
510  */
511 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest10, TestSize.Level1)
512 {
513     QosTv *tvList = (QosTv*)SoftBusCalloc(sizeof(QosTv));
514     ASSERT_TRUE(tvList != NULL);
515     int32_t ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID,
516                                   TRANS_TEST_TV_COUNT, tvList);
517     EXPECT_EQ(ret, SOFTBUS_ERR);
518     ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &g_sessionlistener);
519     ASSERT_EQ(ret, SOFTBUS_OK);
520     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
521     ASSERT_TRUE(sessionParam != NULL);
522     TestGenerateCommParam(sessionParam);
523     SessionInfo *session = TestGenerateSession(sessionParam);
524     ASSERT_TRUE(session != NULL);
525     ret = ClientAddNewSession(g_sessionName, session);
526     ASSERT_EQ(ret, SOFTBUS_OK);
527     ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID, TRANS_TEST_TV_COUNT, tvList);
528     EXPECT_EQ(ret, SOFTBUS_OK);
529     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
530     EXPECT_EQ(ret, SOFTBUS_OK);
531     SoftBusFree(sessionParam);
532     SoftBusFree(tvList);
533 }
534 
535 /**
536  * @tc.name: TransClientSessionCallbackTest11
537  * @tc.desc: Transmission sdk session callback on qos no callback.
538  * @tc.type: FUNC
539  * @tc.require:
540  */
541 HWTEST_F(TransClientSessionCallbackTest, TransClientSessionCallbackTest11, TestSize.Level1)
542 {
543     QosTv *tvList = (QosTv*)SoftBusCalloc(sizeof(QosTv));
544     ASSERT_TRUE(tvList != NULL);
545     ISessionListener sessionlistener = {
546         .OnSessionOpened = OnSessionOpened,
547         .OnSessionClosed = OnSessionClosed,
548         .OnBytesReceived = OnBytesReceived,
549         .OnMessageReceived = OnMessageReceived,
550         .OnStreamReceived = OnStreamReceived,
551         .OnQosEvent = NULL,
552     };
553     int32_t ret = ClientAddSessionServer(SEC_TYPE_PLAINTEXT, g_pkgName, g_sessionName, &sessionlistener);
554     ASSERT_EQ(ret, SOFTBUS_OK);
555     SessionParam *sessionParam = (SessionParam*)SoftBusCalloc(sizeof(SessionParam));
556     ASSERT_TRUE(sessionParam != NULL);
557     TestGenerateCommParam(sessionParam);
558     SessionInfo *session = TestGenerateSession(sessionParam);
559     ASSERT_TRUE(session != NULL);
560     ret = ClientAddNewSession(g_sessionName, session);
561     ASSERT_EQ(ret, SOFTBUS_OK);
562     ret = TransOnQosEvent(TRANS_TEST_CHANNEL_ID, CHANNEL_TYPE_BUTT, TRANS_TEST_EVENT_ID, TRANS_TEST_TV_COUNT, tvList);
563     EXPECT_EQ(ret, SOFTBUS_ERR);
564     ret = ClientDeleteSessionServer(SEC_TYPE_PLAINTEXT, g_sessionName);
565     EXPECT_EQ(ret, SOFTBUS_OK);
566     SoftBusFree(sessionParam);
567     SoftBusFree(tvList);
568 }
569 }