• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 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 "UTTest_auth_response_state.h"
17 
18 #include "auth_message_processor.h"
19 #include "auth_response_state.h"
20 #include "dm_auth_manager.h"
21 #include "dm_constants.h"
22 #include "dm_log.h"
23 
24 namespace OHOS {
25 namespace DistributedHardware {
SetUp()26 void AuthResponseStateTest::SetUp()
27 {
28 }
TearDown()29 void AuthResponseStateTest::TearDown()
30 {
31 }
SetUpTestCase()32 void AuthResponseStateTest::SetUpTestCase()
33 {
34 }
TearDownTestCase()35 void AuthResponseStateTest::TearDownTestCase()
36 {
37 }
38 
39 namespace {
40 std::shared_ptr<SoftbusConnector> softbusConnector = std::make_shared<SoftbusConnector>();
41 std::shared_ptr<DeviceManagerServiceListener> listener = std::make_shared<DeviceManagerServiceListener>();
42 std::shared_ptr<HiChainConnector> hiChainConnector = std::make_shared<HiChainConnector>();
43 /**
44  * @tc.name: AuthResponseInitState::SetAuthManager_001
45  * @tc.desc: 1 set authManager not null
46  *           2 call AuthResponseInitState::SetAuthManager with authManager != null
47  *           3 check ret is authResponseState->authManager_.use_count()
48  * @tc.type: FUNC
49  * @tc.require: AR000GHSJK
50  */
51 HWTEST_F(AuthResponseStateTest, SetAuthManager_001, testing::ext::TestSize.Level0)
52 {
53     std::shared_ptr<DmAuthManager> authManager =
54         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
55     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseInitState>();
56     authResponseState->SetAuthManager(authManager);
57     int32_t ret = authResponseState->authManager_.use_count();
58     ASSERT_EQ(ret, 1);
59 }
60 
61 /**
62  * @tc.name: AuthResponseInitState::SetAuthManager_002
63  * @tc.desc: 1 set authManager to null
64  *           2 call AuthResponseInitState::SetAuthManager with authManager = null
65  *           3 check ret is authResponseState->authManager_.use_count()
66  * @tc.type: FUNC
67  * @tc.require: AR000GHSJK
68  */
69 HWTEST_F(AuthResponseStateTest, SetAuthManager_002, testing::ext::TestSize.Level0)
70 {
71     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseInitState>();
72     authResponseState->SetAuthManager(nullptr);
73     int32_t ret = authResponseState->authManager_.use_count();
74     ASSERT_EQ(ret, 0);
75 }
76 
77 /**
78  * @tc.name: AuthResponseInitState::TransitionTo_001
79  * @tc.desc: 1 set authManager to null
80  *           2 call AuthResponseInitState::TransitionTo with authManager = null
81  *           4 check ret is DM_FAILED
82  * @tc.type: FUNC
83  * @tc.require: AR000GHSJK
84  */
85 HWTEST_F(AuthResponseStateTest, TransitionTo_001, testing::ext::TestSize.Level0)
86 {
87     std::shared_ptr<DmAuthManager> authManager =
88         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
89     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseInitState>();
90     authManager = nullptr;
91     authResponseState->authManager_ = authManager;
92     int32_t ret = authResponseState->TransitionTo(std::make_shared<AuthResponseNegotiateState>());
93     ASSERT_EQ(ret, DM_FAILED);
94 }
95 
96 /**
97  * @tc.name: AuthResponseInitState::TransitionTo_002
98  * @tc.desc: 1 set authManager not null
99  *           2 call AuthResponseInitState::TransitionTo with authManager != null
100  *           4 check ret is DM_OK
101  * @tc.type: FUNC
102  * @tc.require: AR000GHSJK
103  */
104 HWTEST_F(AuthResponseStateTest, TransitionTo_002, testing::ext::TestSize.Level0)
105 {
106     std::shared_ptr<DmAuthManager> authManager =
107         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
108     std::shared_ptr<DmAuthResponseContext> context = std::make_shared<DmAuthResponseContext>();
109     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseInitState>();
110     authManager->authResponseState_ = std::make_shared<AuthResponseInitState>();
111     authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
112     authManager->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager);
113     context->sessionId = 123456;
114     authResponseState->SetAuthContext(context);
115     authResponseState->SetAuthManager(authManager);
116     int32_t ret = authResponseState->TransitionTo(std::make_shared<AuthResponseInitState>());
117     ASSERT_EQ(ret, DM_OK);
118 }
119 
120 /**
121  * @tc.name: AuthResponseInitState::GetStateType_001
122  * @tc.desc: 1 call AuthResponseInitState::GetStateType
123  *           2 check ret is AuthState::AUTH_RESPONSE_INIT
124  * @tc.type: FUNC
125  * @tc.require: AR000GHSJK
126  */
127 HWTEST_F(AuthResponseStateTest, GetStateType_001, testing::ext::TestSize.Level0)
128 {
129     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseInitState>();
130     int32_t ret = authResponseState->GetStateType();
131     ASSERT_EQ(ret, AuthState::AUTH_RESPONSE_INIT);
132 }
133 
134 /**
135  * @tc.name: AuthResponseInitState::Enter_001
136  * @tc.desc: 1 call AuthResponseInitState::GetStateType
137  *           2 check ret is AuthResponseInitState::Enter
138  * @tc.type: FUNC
139  * @tc.require: AR000GHSJK
140  */
141 HWTEST_F(AuthResponseStateTest, Enter_001, testing::ext::TestSize.Level0)
142 {
143     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseInitState>();
144     int32_t ret = authResponseState->Enter();
145     ASSERT_EQ(ret, DM_OK);
146 }
147 
148 /**
149  * @tc.name: AuthResponseNegotiateState::GetStateType_002
150  * @tc.desc: 1 call AuthResponseNegotiateState::GetStateType
151  *           2 check ret is AuthState::AUTH_RESPONSE_NEGOTIATE
152  * @tc.type: FUNC
153  * @tc.require: AR000GHSJK
154  */
155 HWTEST_F(AuthResponseStateTest, GetStateType_002, testing::ext::TestSize.Level0)
156 {
157     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseNegotiateState>();
158     int32_t ret = authResponseState->GetStateType();
159     ASSERT_EQ(ret, AuthState::AUTH_RESPONSE_NEGOTIATE);
160 }
161 
162 /**
163  * @tc.name: AuthResponseNegotiateState::Enter_002
164  * @tc.desc: 1 set authManager to null
165  *           2 call AuthResponseNegotiateState::Enter with authManager = null
166  *           3 check ret is DM_FAILED
167  * @tc.type: FUNC
168  * @tc.require: AR000GHSJK
169  */
170 HWTEST_F(AuthResponseStateTest, Enter_002, testing::ext::TestSize.Level0)
171 {
172     std::shared_ptr<DmAuthManager> authManager =
173         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
174     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseNegotiateState>();
175     authManager = nullptr;
176     authResponseState->SetAuthManager(authManager);
177     int32_t ret = authResponseState->Enter();
178     ASSERT_EQ(ret, DM_FAILED);
179 }
180 
181 /**
182  * @tc.name: AuthResponseNegotiateState::Enter_003
183  * @tc.desc: 1 set authManager not null
184  *           2 call AuthResponseNegotiateState::Enter with authManager != null
185  *           3 check ret is DM_OK
186  * @tc.type: FUNC
187  * @tc.require: AR000GHSJK
188  */
189 HWTEST_F(AuthResponseStateTest, Enter_003, testing::ext::TestSize.Level0)
190 {
191     std::shared_ptr<DmAuthManager> authManager =
192         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
193     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseNegotiateState>();
194     authManager->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager);
195     authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
196     authManager->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
197     authManager->authResponseState_ = std::make_shared<AuthResponseNegotiateState>();
198     authManager->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
199     authManager->authResponseContext_->deviceId = "111";
200     authManager->authResponseContext_->localDeviceId = "222";
201     authManager->authPtr_ = authManager->authenticationMap_[1];
202     authManager->authMessageProcessor_->SetResponseContext(authManager->authResponseContext_);
203     authManager->authMessageProcessor_->SetRequestContext(authManager->authRequestContext_);
204     authManager->softbusConnector_->GetSoftbusSession()->RegisterSessionCallback(authManager);
205     authManager->timer_ = std::make_shared<DmTimer>();
206     authResponseState->SetAuthManager(authManager);
207     std::shared_ptr<DmAuthResponseContext> context = std::make_shared<DmAuthResponseContext>();
208     context->deviceId = "123456";
209     context->sessionId = 22222;
210     authResponseState->SetAuthContext(context);
211     int32_t ret = authResponseState->Enter();
212     ASSERT_EQ(ret, DM_OK);
213 }
214 
215 /**
216  * @tc.name: AuthResponseConfirmState::GetStateType_003
217  * @tc.desc: 1 call AuthResponseConfirmState::GetStateType
218  *           2 check ret is AuthState::AUTH_RESPONSE_CONFIRM
219  * @tc.type: FUNC
220  * @tc.require: AR000GHSJK
221  */
222 HWTEST_F(AuthResponseStateTest, GetStateType_003, testing::ext::TestSize.Level0)
223 {
224     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseConfirmState>();
225     int32_t ret = authResponseState->GetStateType();
226     ASSERT_EQ(ret, AuthState::AUTH_RESPONSE_CONFIRM);
227 }
228 
229 /**
230  * @tc.name: AuthResponseConfirmState::Enter_004
231  * @tc.desc: 1 set authManager to null
232  *           2 call AuthResponseConfirmState::Enter with authManager = null
233  *           3 check ret is DM_FAILED
234  * @tc.type: FUNC
235  * @tc.require: AR000GHSJK
236  */
237 HWTEST_F(AuthResponseStateTest, Enter_004, testing::ext::TestSize.Level0)
238 {
239     std::shared_ptr<DmAuthManager> authManager =
240         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
241     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseConfirmState>();
242     authResponseState->SetAuthManager(nullptr);
243     int32_t ret = authResponseState->Enter();
244     ASSERT_EQ(ret, DM_FAILED);
245 }
246 
247 /**
248  * @tc.name: AuthResponseConfirmState::Enter_005
249  * @tc.desc: 1 set authManager not null
250  *           2 call AuthResponseConfirmState::Enter with authManager != null
251  *           3 check ret is DM_OK
252  * @tc.type: FUNC
253  * @tc.require: AR000GHSJK
254  */
255 HWTEST_F(AuthResponseStateTest, Enter_005, testing::ext::TestSize.Level0)
256 {
257     std::shared_ptr<DmAuthManager> authManager =
258         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
259     authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
260     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseConfirmState>();
261     authResponseState->SetAuthManager(authManager);
262     int32_t ret = authResponseState->Enter();
263     ASSERT_EQ(ret, DM_OK);
264 }
265 
266 /**
267  * @tc.name: AuthResponseGroupState::GetStateType_004
268  * @tc.desc: 1 call AuthResponseGroupState::GetStateType
269  *           2 check ret is AuthState::AUTH_RESPONSE_GROUP
270  * @tc.type: FUNC
271  * @tc.require: AR000GHSJK
272  */
273 HWTEST_F(AuthResponseStateTest, GetStateType_004, testing::ext::TestSize.Level0)
274 {
275     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseGroupState>();
276     int32_t ret = authResponseState->GetStateType();
277     ASSERT_EQ(ret, AuthState::AUTH_RESPONSE_GROUP);
278 }
279 
280 /**
281  * @tc.name: AuthResponseGroupState::Enter_006
282  * @tc.desc: 1 set authManager to null
283  *           2 call AuthResponseGroupState::Enter with authManager = null
284  *           3 check ret is DM_FAILED
285  * @tc.type: FUNC
286  * @tc.require: AR000GHSJK
287  */
288 HWTEST_F(AuthResponseStateTest, Enter_006, testing::ext::TestSize.Level0)
289 {
290     std::shared_ptr<DmAuthManager> authManager =
291         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
292     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseGroupState>();
293     authResponseState->SetAuthManager(nullptr);
294     int32_t ret = authResponseState->Enter();
295     ASSERT_EQ(ret, DM_FAILED);
296 }
297 
298 /**
299  * @tc.name: AuthResponseGroupState::Enter_007
300  * @tc.desc: 1 set authManager not null
301  *           2 call AuthResponseGroupState::Enter with authManager != null
302  *           3 check ret is DM_OK
303  * @tc.type: FUNC
304  * @tc.require: AR000GHSJK
305  */
306 HWTEST_F(AuthResponseStateTest, Enter_007, testing::ext::TestSize.Level0)
307 {
308     std::shared_ptr<DmAuthManager> authManager =
309         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
310     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseGroupState>();
311     authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
312     authManager->authResponseState_ = std::make_shared<AuthResponseGroupState>();
313     authResponseState->SetAuthManager(authManager);
314     int32_t ret = authResponseState->Enter();
315     ASSERT_EQ(ret, DM_OK);
316 }
317 
318 /**
319  * @tc.name: AuthResponseShowState::GetStateType_005
320  * @tc.desc: 1 call AuthResponseShowState::GetStateType
321  *           2 check ret is AuthState::AUTH_RESPONSE_SHOW
322  * @tc.type: FUNC
323  * @tc.require: AR000GHSJK
324  */
325 HWTEST_F(AuthResponseStateTest, GetStateType_005, testing::ext::TestSize.Level0)
326 {
327     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseShowState>();
328     int32_t ret = authResponseState->GetStateType();
329     ASSERT_EQ(ret, AuthState::AUTH_RESPONSE_SHOW);
330 }
331 
332 /**
333  * @tc.name: AuthResponseShowState::Enter_008
334  * @tc.desc: 1 set authManager to null
335  *           2 call AuthResponseShowState::Enter with authManager = null
336  *           3 check ret is DM_FAILED
337  * @tc.type: FUNC
338  * @tc.require: AR000GHSJK
339  */
340 HWTEST_F(AuthResponseStateTest, Enter_008, testing::ext::TestSize.Level0)
341 {
342     std::shared_ptr<DmAuthManager> authManager =
343         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
344     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseShowState>();
345     authResponseState->SetAuthManager(nullptr);
346     int32_t ret = authResponseState->Enter();
347     ASSERT_EQ(ret, DM_FAILED);
348 }
349 
350 /**
351  * @tc.name: AuthResponseShowState::Enter_009
352  * @tc.desc: 1 set authManager not null
353  *           2 call AuthResponseShowState::Enter with authManager != null
354  *           3 check ret is DM_OK
355  * @tc.type: FUNC
356  * @tc.require: AR000GHSJK
357  */
358 HWTEST_F(AuthResponseStateTest, Enter_009, testing::ext::TestSize.Level0)
359 {
360     std::shared_ptr<DmAuthManager> authManager =
361         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
362     authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
363     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseShowState>();
364     authManager->authPtr_ = authManager->authenticationMap_[1];
365     authManager->authResponseContext_->code = 123456;
366     authResponseState->SetAuthManager(authManager);
367     int32_t ret = authResponseState->Enter();
368     ASSERT_EQ(ret, DM_OK);
369 }
370 
371 /**
372  * @tc.name: AuthResponseFinishState::GetStateType_006
373  * @tc.desc: 1 call AuthResponseShowState::GetStateType
374  *           2 check ret is AuthState::AUTH_RESPONSE_SHOW
375  * @tc.type: FUNC
376  * @tc.require: AR000GHSJK
377  */
378 HWTEST_F(AuthResponseStateTest, GetStateType_006, testing::ext::TestSize.Level0)
379 {
380     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseFinishState>();
381     int32_t ret = authResponseState->GetStateType();
382     ASSERT_EQ(ret, AuthState::AUTH_RESPONSE_FINISH);
383 }
384 
385 /**
386  * @tc.name: AuthResponseFinishState::Enter_010
387  * @tc.desc: 1 set authManager to null
388  *           2 call AuthResponseFinishState::Enter with authManager = null
389  *           3 check ret is DM_FAILED
390  * @tc.type: FUNC
391  * @tc.require: AR000GHSJK
392  */
393 HWTEST_F(AuthResponseStateTest, Enter_010, testing::ext::TestSize.Level0)
394 {
395     std::shared_ptr<DmAuthManager> authManager =
396         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
397     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseFinishState>();
398     authResponseState->SetAuthManager(nullptr);
399     int32_t ret = authResponseState->Enter();
400     ASSERT_EQ(ret, DM_FAILED);
401 }
402 
403 /**
404  * @tc.name: AuthResponseFinishState::Enter_011
405  * @tc.desc: 1 set authManager not null
406  *           2 call AuthResponseFinishState::Enter with authManager != null
407  *           3 check ret is DM_OK
408  * @tc.type: FUNC
409  * @tc.require: AR000GHSJK
410  */
411 HWTEST_F(AuthResponseStateTest, Enter_011, testing::ext::TestSize.Level0)
412 {
413     std::shared_ptr<DmAuthManager> authManager =
414         std::make_shared<DmAuthManager>(softbusConnector, listener, hiChainConnector);
415     std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseFinishState>();
416     authManager->authRequestState_ = std::make_shared<AuthRequestFinishState>();
417     authManager->authResponseState_ = std::make_shared<AuthResponseFinishState>();
418     authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
419     authManager->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
420     authManager->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager);
421     authManager->listener_ = std::make_shared<DeviceManagerServiceListener>();
422     authManager->authPtr_ = authManager->authenticationMap_[1];
423     authManager->authResponseContext_->sessionId = 1;
424     authManager->authRequestContext_->deviceId = "2";
425     authManager->authRequestContext_->hostPkgName = "3";
426     authManager->authRequestContext_->token = "4";
427     authManager->authResponseContext_->reply = 5;
428     authManager->authRequestContext_->reason = 6;
429     authManager->SetAuthResponseState(authResponseState);
430     authManager->timer_ = std::make_shared<DmTimer>();
431     authResponseState->SetAuthManager(authManager);
432     std::shared_ptr<DmAuthResponseContext> context = std::make_shared<DmAuthResponseContext>();
433     authResponseState->SetAuthContext(context);
434     int32_t ret = authResponseState->Enter();
435     ASSERT_EQ(ret, DM_OK);
436 }
437 } // namespace
438 } // namespace DistributedHardware
439 } // namespace OHOS
440