• 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 "soft_bus_manager_test.h"
17 #include "soft_bus_manager.h"
18 #include "socket_factory.h"
19 #include "socket.h"
20 #include "remote_connect_listener_manager.h"
21 
22 #include "gtest/gtest.h"
23 
24 namespace OHOS {
25 namespace UserIam {
26 namespace UserAuth {
27 using namespace testing;
28 using namespace testing::ext;
29 
SetUpTestCase()30 void SoftBusManagerTest::SetUpTestCase()
31 {
32 }
33 
TearDownTestCase()34 void SoftBusManagerTest::TearDownTestCase()
35 {
36 }
37 
SetUp()38 void SoftBusManagerTest::SetUp()
39 {
40 }
41 
TearDown()42 void SoftBusManagerTest::TearDown()
43 {
44 }
45 
46 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestCheckAndCopyStr, TestSize.Level0)
47 {
48     char dest[1];
49     uint32_t destLen = 2;
50     const std::string src = "123123123";
51     EXPECT_EQ(SoftBusManager::GetInstance().CheckAndCopyStr(dest, destLen, src), false);
52 }
53 
54 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOnBind_001, TestSize.Level0)
55 {
56     PeerSocketInfo info;
57     EXPECT_NO_THROW(SoftBusManager::GetInstance().OnBind(-2, info));
58 }
59 
60 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestSocketUnInit_001, TestSize.Level0)
61 {
62     EXPECT_NO_THROW({
63         SoftBusManager::GetInstance().ServiceSocketUnInit();
64     });
65 }
66 
67 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestRegistSoftBusListener, TestSize.Level0)
68 {
69     EXPECT_NO_THROW({
70         SoftBusManager::GetInstance().RegistSoftBusListener();
71         SoftBusManager::GetInstance().RegistSoftBusListener();
72     });
73 }
74 
75 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestSocketInit, TestSize.Level0)
76 {
77     EXPECT_NO_THROW({
78         SoftBusManager::GetInstance().ServiceSocketInit();
79     });
80 }
81 
82 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestSocketUnInit_002, TestSize.Level0)
83 {
84     EXPECT_NO_THROW({
85         SoftBusManager::GetInstance().ServiceSocketUnInit();
86     });
87 }
88 
89 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestUnRegistSoftBusListener, TestSize.Level0)
90 {
91     EXPECT_NO_THROW({
92         SoftBusManager::GetInstance().UnRegistSoftBusListener();
93         SoftBusManager::GetInstance().UnRegistSoftBusListener();
94     });
95 }
96 
97 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestDeleteSocket, TestSize.Level0)
98 {
99     EXPECT_NO_THROW({
100         SoftBusManager::GetInstance().DeleteSocket(600);
101     });
102 }
103 
104 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestServiceSocketListen, TestSize.Level0)
105 {
106     int32_t socketId = 100;
107     SoftBusManager::GetInstance().RegistSoftBusListener();
108     SoftBusManager::GetInstance().ServiceSocketInit();
109     std::shared_ptr<BaseSocket> serverSocket = SocketFactory::CreateServerSocket(socketId);
110     int ret = SoftBusManager::GetInstance().ServiceSocketListen(socketId);
111     EXPECT_EQ(ret, LISTEN_SOCKET_FAILED);
112 
113     PeerSocketInfo info;
114     EXPECT_NO_THROW(SoftBusManager::GetInstance().OnBind(socketId, info));
115 
116     SoftBusManager::GetInstance().AddSocket(socketId, serverSocket);
117     SoftBusManager::GetInstance().SetServerSocket(serverSocket);
118 
119     int32_t clientSocketId = 200;
120     const std::string connectionName = "testConnection";
121     const uint32_t tokenId = 1234;
122     const std::string networkId = "networkId";
123     SoftBusManager::GetInstance().DoOpenConnection(connectionName, tokenId, networkId);
124     auto clientSocket = SocketFactory::CreateClientSocket(clientSocketId, connectionName, networkId);
125     EXPECT_EQ(SoftBusManager::GetInstance().ClientSocketBind(clientSocketId), GENERAL_ERROR);
126     SoftBusManager::GetInstance().AddConnection(connectionName, clientSocket);
127     SoftBusManager::GetInstance().AddSocket(clientSocketId, clientSocket);
128     RemoteConnectListenerManager::GetInstance().OnConnectionUp(connectionName);
129 
130     const std::string srcEndPoint = "123";
131     const std::string destEndPoint = "456";
132     const std::shared_ptr<Attributes> attributes = Common::MakeShared<Attributes>();
133     ASSERT_NE(attributes, nullptr);
134     MsgCallback callback;
135     EXPECT_EQ(SoftBusManager::GetInstance().SendMessage(connectionName, srcEndPoint, destEndPoint, attributes,
136         callback), 2);
137 
138     EXPECT_EQ(SoftBusManager::GetInstance().DoCloseConnection(connectionName), SUCCESS);
139     SoftBusManager::GetInstance().ServiceSocketUnInit();
140     SoftBusManager::GetInstance().UnRegistSoftBusListener();
141     SoftBusManager::GetInstance().DeleteSocket(socketId);
142     SoftBusManager::GetInstance().DeleteSocket(clientSocketId);
143 }
144 
145 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOpenConnection, TestSize.Level0)
146 {
147     const std::string connectionName = "testConnection";
148     const uint32_t tokenId = 1234;
149     const std::string networkId = "networkId";
150     SoftBusManager::GetInstance().DoOpenConnection(connectionName, tokenId, networkId);
151     EXPECT_EQ(SoftBusManager::GetInstance().DoCloseConnection(connectionName), GENERAL_ERROR);
152 }
153 
154 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestServiceSocketUnInit_003, TestSize.Level0)
155 {
156     int32_t socketId = 100;
157     int32_t clientSocketId = 200;
158     const std::string connectionName = "testConnection";
159     const std::string networkId = "networkId";
160 
161     SoftBusManager::GetInstance().ServiceSocketInit();
162     std::shared_ptr<BaseSocket> serverSocket = SocketFactory::CreateServerSocket(socketId);
163     std::shared_ptr<BaseSocket> clientSocket = SocketFactory::CreateClientSocket(clientSocketId,
164         connectionName, networkId);
165     SoftBusManager::GetInstance().AddSocket(socketId, serverSocket);
166     SoftBusManager::GetInstance().AddSocket(clientSocketId, clientSocket);
167     SoftBusManager::GetInstance().SetServerSocket(serverSocket);
168     auto findSocket = SoftBusManager::GetInstance().FindSocketBySocketId(socketId);
169     EXPECT_NE(findSocket, nullptr);
170     SoftBusManager::GetInstance().ServiceSocketUnInit();
171     SoftBusManager::GetInstance().DeleteSocket(socketId);
172     SoftBusManager::GetInstance().DeleteSocket(clientSocketId);
173 }
174 
175 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOnServerBytes_001, TestSize.Level0)
176 {
177     const void *data = new char[10];
178     uint32_t dataLen = 3;
179     int32_t socketId = 100;
180     int32_t clientSocketId = 200;
181     const std::string connectionName = "testConnection";
182     const std::string networkId = "networkId";
183     std::shared_ptr<BaseSocket> serverSocket = SocketFactory::CreateServerSocket(socketId);
184     std::shared_ptr<BaseSocket> clientSocket = SocketFactory::CreateClientSocket(clientSocketId,
185         connectionName, networkId);
186     SoftBusManager::GetInstance().AddSocket(socketId, serverSocket);
187     SoftBusManager::GetInstance().AddSocket(clientSocketId, clientSocket);
188     SoftBusManager::GetInstance().SetServerSocket(serverSocket);
189     EXPECT_NO_THROW({
190         SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
191         SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
192     });
193     SoftBusManager::GetInstance().ServiceSocketUnInit();
194     SoftBusManager::GetInstance().DeleteSocket(socketId);
195     SoftBusManager::GetInstance().DeleteSocket(clientSocketId);
196 }
197 
198 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOnShutdown_001, TestSize.Level0)
199 {
200     ShutdownReason reason = SHUTDOWN_REASON_UNKNOWN;
201     EXPECT_NO_THROW(SoftBusManager::GetInstance().OnShutdown(-2, reason));
202     int32_t socketId = 100;
203     std::shared_ptr<BaseSocket> serverSocket = SocketFactory::CreateServerSocket(socketId);
204     SoftBusManager::GetInstance().AddSocket(socketId, serverSocket);
205     SoftBusManager::GetInstance().SetServerSocket(serverSocket);
206     EXPECT_NO_THROW(SoftBusManager::GetInstance().OnShutdown(600, reason));
207     SoftBusManager::GetInstance().ServiceSocketUnInit();
208     SoftBusManager::GetInstance().DeleteSocket(socketId);
209 }
210 
211 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOnServerBytes_002, TestSize.Level0)
212 {
213     int32_t socketId = 100;
214     const void *data = new char[10];
215     uint32_t dataLen = 3;
216     EXPECT_NO_THROW({
217         SoftBusManager::GetInstance().ClearServerSocket();
218         SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
219         SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
220     });
221 }
222 
223 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOnServerBytes_003, TestSize.Level0)
224 {
225     int32_t socketId = -2;
226     const void *data = new char[10];
227     uint32_t dataLen = 3;
228     EXPECT_NO_THROW({
229         SoftBusManager::GetInstance().ClearServerSocket();
230         SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
231         SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
232     });
233 }
234 } // namespace UserAuth
235 } // namespace UserIam
236 } // namespace OHOS
237