1 /*
2  * Copyright (c) 2021-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 "distributed_input_sinktrans_test.h"
17 
18 #include "nlohmann/json.hpp"
19 #include "dinput_errcode.h"
20 #include "distributed_input_sink_manager.h"
21 
22 using namespace testing::ext;
23 using namespace OHOS::DistributedHardware::DistributedInput;
24 using namespace std;
25 namespace OHOS {
26 namespace DistributedHardware {
27 namespace DistributedInput {
28 namespace {
29     const int32_t MESSAGE_MAX_SIZE = 46 * 1024;
30     const int32_t SESSIONID = 1;
31     const int32_t INT_DEVID = 1000;
32     const int32_t INT_VECTORDHIDS = 123;
33     const uint32_t INPUTTYPE = static_cast<uint32_t>(DInputDeviceType::ALL);
34     const std::string DEVID = "umkyu1b165e1be98151891erbe8r91ev";
35     const std::string DHID = "Input_1ds56v18e1v21v8v1erv15r1v8r1j1ty8";
36     const std::string SINKID = "networkidc08647073e02e7a78f09473aa122ff57fc81c00";
37     const std::string VECTORDHIDS = "Input_1ds56v18e1v21v8v1erv15r1v8r1j1ty8.Input_145adssphjknnk5877df";
38     const std::string STR_SESSIONID = "100";
39     const std::string STR_INPUTTYPE = "111";
40     const std::string SOFTBUSCMDTYPE = "softbus_cmd_type";
41 }
42 
SetUp()43 void DistributedInputSinkTransTest::SetUp()
44 {
45 }
46 
TearDown()47 void DistributedInputSinkTransTest::TearDown()
48 {
49 }
50 
SetUpTestCase()51 void DistributedInputSinkTransTest::SetUpTestCase()
52 {
53 }
54 
TearDownTestCase()55 void DistributedInputSinkTransTest::TearDownTestCase()
56 {
57 }
58 
59 HWTEST_F(DistributedInputSinkTransTest, Init, testing::ext::TestSize.Level0)
60 {
61     int32_t ret = DistributedInputSinkTransport::GetInstance().Init();
62     EXPECT_EQ(DH_SUCCESS, ret);
63 }
64 
65 HWTEST_F(DistributedInputSinkTransTest, RespPrepareRemoteInput01, testing::ext::TestSize.Level1)
66 {
67     DistributedInputSinkManager sinkMgr(4810, false);
68     std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
69         std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
70     DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
71 
72     int32_t sessionId = 1;
73     jsonStr1_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_PREPARE;
74     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr1_.dump());
75     jsonStr1_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
76     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr1_.dump());
77 
78     jsonStr8_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_PREPARE_FOR_REL;
79     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr8_.dump());
80     jsonStr8_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;;
81     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr8_.dump());
82     jsonStr8_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
83     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr8_.dump());
84     jsonStr8_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
85     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr8_.dump());
86     sessionId = -1;
87     std::string smsg = "";
88     int32_t ret = DistributedInputSinkTransport::GetInstance().RespPrepareRemoteInput(sessionId, smsg);
89     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPPREPARE_FAIL, ret);
90 }
91 
92 HWTEST_F(DistributedInputSinkTransTest, RespPrepareRemoteInput02, testing::ext::TestSize.Level1)
93 {
94     int32_t sessionId = 0;
95     std::string smsg = "";
96     int32_t ret = DistributedInputSinkTransport::GetInstance().RespPrepareRemoteInput(sessionId, smsg);
97     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPPREPARE_FAIL, ret);
98 }
99 
100 HWTEST_F(DistributedInputSinkTransTest, RespPrepareRemoteInput03, testing::ext::TestSize.Level1)
101 {
102     int32_t sessionId = 1;
103     std::string smsg = "";
104     int32_t ret = DistributedInputSinkTransport::GetInstance().RespPrepareRemoteInput(sessionId, smsg);
105     EXPECT_EQ(DH_SUCCESS, ret);
106 }
107 
108 HWTEST_F(DistributedInputSinkTransTest, RespPrepareRemoteInput04, testing::ext::TestSize.Level1)
109 {
110     int32_t sessionId = 1;
111     std::string smsg(MESSAGE_MAX_SIZE, 'a');
112     int32_t ret = DistributedInputSinkTransport::GetInstance().RespPrepareRemoteInput(sessionId, smsg);
113     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPPREPARE_FAIL, ret);
114 }
115 
116 HWTEST_F(DistributedInputSinkTransTest, RespUnprepareRemoteInput01, testing::ext::TestSize.Level0)
117 {
118     DistributedInputSinkManager sinkMgr(4810, false);
119     std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
120         std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
121     DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
122     int32_t sessionId = 1;
123     jsonStr2_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_UNPREPARE;
124     jsonStr2_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
125     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr2_.dump());
126 
127     jsonStr2_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
128     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr2_.dump());
129 
130     jsonStr9_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_UNPREPARE_FOR_REL;
131     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr9_.dump());
132     jsonStr9_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
133     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr9_.dump());
134     jsonStr9_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
135     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr9_.dump());
136 
137     jsonStr9_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
138     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr9_.dump());
139     jsonStr9_[DINPUT_SOFTBUS_KEY_SESSION_ID] = SESSIONID;
140     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr9_.dump());
141     sessionId = -1;
142     std::string smsg = "";
143     int32_t ret = DistributedInputSinkTransport::GetInstance().RespUnprepareRemoteInput(sessionId, smsg);
144     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPUNPREPARE_FAIL, ret);
145 }
146 
147 HWTEST_F(DistributedInputSinkTransTest, RespUnprepareRemoteInput02, testing::ext::TestSize.Level1)
148 {
149     int32_t sessionId = 0;
150     std::string smsg = "";
151     int32_t ret = DistributedInputSinkTransport::GetInstance().RespUnprepareRemoteInput(sessionId, smsg);
152     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPUNPREPARE_FAIL, ret);
153 }
154 
155 HWTEST_F(DistributedInputSinkTransTest, RespUnprepareRemoteInput03, testing::ext::TestSize.Level1)
156 {
157     int32_t sessionId = 1;
158     std::string smsg = "";
159     int32_t ret = DistributedInputSinkTransport::GetInstance().RespUnprepareRemoteInput(sessionId, smsg);
160     EXPECT_EQ(DH_SUCCESS, ret);
161 }
162 
163 HWTEST_F(DistributedInputSinkTransTest, RespUnprepareRemoteInput04, testing::ext::TestSize.Level1)
164 {
165     int32_t sessionId = 1;
166     std::string smsg(MESSAGE_MAX_SIZE, 'a');
167     int32_t ret = DistributedInputSinkTransport::GetInstance().RespUnprepareRemoteInput(sessionId, smsg);
168     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPUNPREPARE_FAIL, ret);
169 }
170 
171 HWTEST_F(DistributedInputSinkTransTest, RespStartRemoteInput01, testing::ext::TestSize.Level1)
172 {
173     DistributedInputSinkManager sinkMgr(4810, false);
174     std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
175         std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
176     DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
177     int32_t sessionId = 1;
178     jsonStr11_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_START_TYPE_FOR_REL;
179     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
180     jsonStr11_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
181     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
182     jsonStr11_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
183     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
184     jsonStr11_[DINPUT_SOFTBUS_KEY_INPUT_TYPE] = STR_INPUTTYPE;
185     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
186 
187     jsonStr11_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
188     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
189     jsonStr11_[DINPUT_SOFTBUS_KEY_SESSION_ID] = SESSIONID;
190     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
191     jsonStr11_[DINPUT_SOFTBUS_KEY_INPUT_TYPE] = INPUTTYPE;
192     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
193 
194     jsonStr10_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_START_DHID_FOR_REL;
195     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
196     jsonStr10_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
197     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
198     jsonStr10_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
199     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
200     jsonStr10_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = INT_VECTORDHIDS;
201     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
202 
203     jsonStr10_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
204     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
205     jsonStr10_[DINPUT_SOFTBUS_KEY_SESSION_ID] = SESSIONID;
206     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
207     jsonStr10_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = VECTORDHIDS;
208     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
209     sessionId = -1;
210     std::string smsg = "";
211     int32_t ret = DistributedInputSinkTransport::GetInstance().RespStartRemoteInput(sessionId, smsg);
212     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTART_FAIL, ret);
213 }
214 
215 HWTEST_F(DistributedInputSinkTransTest, RespStartRemoteInput02, testing::ext::TestSize.Level1)
216 {
217     int32_t sessionId = 0;
218     std::string smsg = "";
219     int32_t ret = DistributedInputSinkTransport::GetInstance().RespStartRemoteInput(sessionId, smsg);
220     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTART_FAIL, ret);
221 }
222 
223 HWTEST_F(DistributedInputSinkTransTest, RespStartRemoteInput03, testing::ext::TestSize.Level1)
224 {
225     int32_t sessionId = 1;
226     std::string smsg = "";
227     int32_t ret = DistributedInputSinkTransport::GetInstance().RespStartRemoteInput(sessionId, smsg);
228     EXPECT_EQ(DH_SUCCESS, ret);
229 }
230 
231 HWTEST_F(DistributedInputSinkTransTest, RespStartRemoteInput04, testing::ext::TestSize.Level1)
232 {
233     DistributedInputSinkManager sinkMgr(4810, false);
234     std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
235         std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
236     DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
237     int32_t sessionId = 1;
238     jsonStr6_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_START_DHID;
239     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr6_.dump());
240     jsonStr6_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
241     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr6_.dump());
242     jsonStr6_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = INT_VECTORDHIDS;
243     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr6_.dump());
244 
245     jsonStr6_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
246     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr6_.dump());
247     jsonStr6_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = VECTORDHIDS;
248     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr6_.dump());
249     std::string smsg(MESSAGE_MAX_SIZE, 'a');
250     int32_t ret = DistributedInputSinkTransport::GetInstance().RespStartRemoteInput(sessionId, smsg);
251     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTART_FAIL, ret);
252 }
253 
254 HWTEST_F(DistributedInputSinkTransTest, RespStopRemoteInput01, testing::ext::TestSize.Level1)
255 {
256     DistributedInputSinkManager sinkMgr(4810, false);
257     std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
258         std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
259     DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
260     int32_t sessionId = 1;
261     jsonStr12_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_STOP_TYPE_FOR_REL;
262     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
263     jsonStr12_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
264     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
265     jsonStr12_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
266     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
267     jsonStr12_[DINPUT_SOFTBUS_KEY_INPUT_TYPE] = STR_INPUTTYPE;
268     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
269 
270     jsonStr12_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
271     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
272     jsonStr12_[DINPUT_SOFTBUS_KEY_SESSION_ID] = SESSIONID;
273     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
274     jsonStr12_[DINPUT_SOFTBUS_KEY_INPUT_TYPE] = INPUTTYPE;
275     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
276 
277     jsonStr11_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_STOP_DHID_FOR_REL;
278     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
279     jsonStr11_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
280     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
281     jsonStr11_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
282     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
283     jsonStr11_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = INT_VECTORDHIDS;
284     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
285 
286     jsonStr11_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
287     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
288     jsonStr11_[DINPUT_SOFTBUS_KEY_SESSION_ID] = SESSIONID;
289     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
290     jsonStr11_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = VECTORDHIDS;
291     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
292     sessionId = -1;
293     std::string smsg = "";
294     int32_t ret = DistributedInputSinkTransport::GetInstance().RespStopRemoteInput(sessionId, smsg);
295     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTOP_FAIL, ret);
296 }
297 
298 HWTEST_F(DistributedInputSinkTransTest, RespStopRemoteInput02, testing::ext::TestSize.Level1)
299 {
300     int32_t sessionId = 0;
301     std::string smsg = "";
302     int32_t ret = DistributedInputSinkTransport::GetInstance().RespStopRemoteInput(sessionId, smsg);
303     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTOP_FAIL, ret);
304 }
305 
306 HWTEST_F(DistributedInputSinkTransTest, RespStopRemoteInput03, testing::ext::TestSize.Level1)
307 {
308     int32_t sessionId = 1;
309     std::string smsg = "";
310     int32_t ret = DistributedInputSinkTransport::GetInstance().RespStopRemoteInput(sessionId, smsg);
311     EXPECT_EQ(DH_SUCCESS, ret);
312 }
313 
314 HWTEST_F(DistributedInputSinkTransTest, RespStopRemoteInput04, testing::ext::TestSize.Level1)
315 {
316     DistributedInputSinkManager sinkMgr(4810, false);
317     std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
318         std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
319     DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
320     int32_t sessionId = 1;
321     jsonStr7_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_STOP_DHID;
322     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr7_.dump());
323     jsonStr7_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
324     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr7_.dump());
325     jsonStr7_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = INT_VECTORDHIDS;
326     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr7_.dump());
327 
328     jsonStr7_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
329     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr7_.dump());
330     jsonStr7_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = VECTORDHIDS;
331     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr7_.dump());
332 
333     std::string smsg(MESSAGE_MAX_SIZE, 'a');
334     int32_t ret = DistributedInputSinkTransport::GetInstance().RespStopRemoteInput(sessionId, smsg);
335     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTOP_FAIL, ret);
336 }
337 
338 HWTEST_F(DistributedInputSinkTransTest, GetEventHandler, testing::ext::TestSize.Level1)
339 {
340     std::shared_ptr<OHOS::AppExecFwk::EventHandler> eventHd =
341         DistributedInputSinkTransport::GetInstance().GetEventHandler();
342     EXPECT_NE(nullptr, eventHd);
343 }
344 
345 HWTEST_F(DistributedInputSinkTransTest, StartSwitch01, testing::ext::TestSize.Level1)
346 {
347     int32_t sessionId = 1000;
348     DistributedInputSinkSwitch::GetInstance().AddSession(sessionId);
349     int32_t ret = DistributedInputSinkSwitch::GetInstance().StartSwitch(sessionId);
350     EXPECT_EQ(DH_SUCCESS, ret);
351 }
352 
353 HWTEST_F(DistributedInputSinkTransTest, StartSwitch02, testing::ext::TestSize.Level1)
354 {
355     int32_t sessionId = 1000;
356     DistributedInputSinkSwitch::GetInstance().AddSession(sessionId);
357     int32_t ret = DistributedInputSinkSwitch::GetInstance().StartSwitch(sessionId+10);
358     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_START_SWITCH_FAIL, ret);
359 }
360 
361 HWTEST_F(DistributedInputSinkTransTest, StartSwitch03, testing::ext::TestSize.Level1)
362 {
363     DistributedInputSinkSwitch::GetInstance().InitSwitch();
364     int32_t sessionId = 1002;
365     int32_t ret = DistributedInputSinkSwitch::GetInstance().StartSwitch(sessionId);
366     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_START_SWITCH_FAIL, ret);
367 }
368 
369 HWTEST_F(DistributedInputSinkTransTest, StopSwitch01, testing::ext::TestSize.Level1)
370 {
371     int32_t sessionId = 1000;
372     SwitchStateData switchStateData {sessionId, true};
373     DistributedInputSinkSwitch::GetInstance().switchVector_.clear();
374     DistributedInputSinkSwitch::GetInstance().StopSwitch(sessionId);
375     DistributedInputSinkSwitch::GetInstance().switchVector_.push_back(switchStateData);
376     DistributedInputSinkSwitch::GetInstance().StopSwitch(sessionId);
377     EXPECT_EQ(false, DistributedInputSinkSwitch::GetInstance().switchVector_[0].switchState);
378     sessionId = 2000;
379     DistributedInputSinkSwitch::GetInstance().StopSwitch(sessionId);
380 }
381 
382 HWTEST_F(DistributedInputSinkTransTest, StopAllSwitch01, testing::ext::TestSize.Level1)
383 {
384     int32_t sessionId = 1000;
385     SwitchStateData switchStateData {sessionId, true};
386     DistributedInputSinkSwitch::GetInstance().switchVector_.push_back(switchStateData);
387     DistributedInputSinkSwitch::GetInstance().StopAllSwitch();
388     EXPECT_EQ(false, DistributedInputSinkSwitch::GetInstance().switchVector_[0].switchState);
389 }
390 
391 HWTEST_F(DistributedInputSinkTransTest, RemoveSession01, testing::ext::TestSize.Level1)
392 {
393     DistributedInputSinkSwitch::GetInstance().switchVector_.clear();
394     int32_t sessionId = 1000;
395     SwitchStateData switchStateData {sessionId, true};
396     DistributedInputSinkSwitch::GetInstance().RemoveSession(sessionId);
397     DistributedInputSinkSwitch::GetInstance().switchVector_.push_back(switchStateData);
398     DistributedInputSinkSwitch::GetInstance().RemoveSession(sessionId);
399     EXPECT_EQ(0, DistributedInputSinkSwitch::GetInstance().switchVector_.size());
400 }
401 
402 HWTEST_F(DistributedInputSinkTransTest, GetAllSessionId, testing::ext::TestSize.Level1)
403 {
404     DistributedInputSinkSwitch::GetInstance().InitSwitch();
405     int32_t sessionId = 1000;
406     DistributedInputSinkSwitch::GetInstance().AddSession(sessionId);
407     DistributedInputSinkSwitch::GetInstance().AddSession(sessionId + 1);
408     DistributedInputSinkSwitch::GetInstance().AddSession(sessionId + 2);
409     std::vector<int32_t> tmpVecSession = DistributedInputSinkSwitch::GetInstance().GetAllSessionId();
410     EXPECT_EQ(3, tmpVecSession.size());
411 }
412 
413 HWTEST_F(DistributedInputSinkTransTest, GetSwitchOpenedSession01, testing::ext::TestSize.Level1)
414 {
415     int32_t sessionId = 1010;
416     DistributedInputSinkSwitch::GetInstance().AddSession(sessionId);
417     DistributedInputSinkSwitch::GetInstance().AddSession(sessionId + 1);
418     DistributedInputSinkSwitch::GetInstance().AddSession(sessionId + 2);
419     int32_t ret = DistributedInputSinkSwitch::GetInstance().GetSwitchOpenedSession();
420     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_GET_OPEN_SESSION_FAIL, ret);
421 }
422 
423 HWTEST_F(DistributedInputSinkTransTest, GetSwitchOpenedSession02, testing::ext::TestSize.Level1)
424 {
425     DistributedInputSinkSwitch::GetInstance().switchVector_.clear();
426     int32_t ret = DistributedInputSinkSwitch::GetInstance().GetSwitchOpenedSession();
427     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_GET_OPEN_SESSION_FAIL, ret);
428 }
429 
430 HWTEST_F(DistributedInputSinkTransTest, GetSwitchOpenedSession03, testing::ext::TestSize.Level1)
431 {
432     int32_t sessionId = 1013;
433     DistributedInputSinkSwitch::GetInstance().AddSession(sessionId);
434     DistributedInputSinkSwitch::GetInstance().StartSwitch(sessionId);
435     int32_t ret = DistributedInputSinkSwitch::GetInstance().GetSwitchOpenedSession();
436     EXPECT_EQ(sessionId, ret);
437 }
438 
439 HWTEST_F(DistributedInputSinkTransTest, RespLatency01, testing::ext::TestSize.Level1)
440 {
441     int32_t sessionId = 0;
442     std::string smsg = "";
443     int32_t ret = DistributedInputSinkTransport::GetInstance().RespLatency(sessionId, smsg);
444     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESP_LATENCY_FAIL, ret);
445 }
446 
447 HWTEST_F(DistributedInputSinkTransTest, RespLatency02, testing::ext::TestSize.Level1)
448 {
449     DistributedInputSinkManager sinkMgr(4810, false);
450     std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
451         std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
452     DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
453     int32_t sessionId = 1;
454     jsonStr5_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_LATENCY;
455     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr5_.dump());
456     jsonStr5_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
457     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr5_.dump());
458 
459     jsonStr5_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
460     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr5_.dump());
461 
462     std::string message = "";
463     DistributedInputSinkTransport::GetInstance().callback_ = nullptr;
464     DistributedInputSinkTransport::GetInstance().HandleData(sessionId, message);
465     std::string smsg = "";
466     int32_t ret = DistributedInputSinkTransport::GetInstance().RespLatency(sessionId, smsg);
467     EXPECT_EQ(DH_SUCCESS, ret);
468 }
469 
470 HWTEST_F(DistributedInputSinkTransTest, RespLatency03, testing::ext::TestSize.Level1)
471 {
472     int32_t sessionId = 1;
473     std::string smsg(MESSAGE_MAX_SIZE, 'a');
474     int32_t ret = DistributedInputSinkTransport::GetInstance().RespLatency(sessionId, smsg);
475     EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESP_LATENCY_FAIL, ret);
476 }
477 
478 HWTEST_F(DistributedInputSinkTransTest, SendMessage_001, testing::ext::TestSize.Level1)
479 {
480     int32_t sessionId = 1;
481     std::string smsg = "qwerzsdgertgdfgbrtyhuert6345634tgadsgfq13451234rfaDSFQ34FQQWEFWQERQWEFQWEFASEFQWERQWERQWER123";
482     int32_t ret = DistributedInputSinkTransport::GetInstance().SendMessage(sessionId, smsg);
483     EXPECT_EQ(DH_SUCCESS, ret);
484 }
485 } // namespace DistributedInput
486 } // namespace DistributedHardware
487 } // namespace OHOS