1/*
2 * Copyright (c) 2022-2024 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_request_state.h"
17
18#include "auth_message_processor.h"
19#include "dm_auth_manager.h"
20#include "dm_constants.h"
21#include "device_manager_service_listener.h"
22
23namespace OHOS {
24namespace DistributedHardware {
25void AuthRequestStateTest::SetUp()
26{
27}
28void AuthRequestStateTest::TearDown()
29{
30}
31void AuthRequestStateTest::SetUpTestCase()
32{
33}
34void AuthRequestStateTest::TearDownTestCase()
35{
36}
37
38namespace {
39std::shared_ptr<SoftbusConnector> softbusConnector = std::make_shared<SoftbusConnector>();
40std::shared_ptr<DeviceManagerServiceListener> listener = std::make_shared<DeviceManagerServiceListener>();
41std::shared_ptr<HiChainConnector> hiChainConnector = std::make_shared<HiChainConnector>();
42std::shared_ptr<HiChainAuthConnector> hiChainAuthConnector = std::make_shared<HiChainAuthConnector>();
43
44/**
45 * @tc.name: AuthResponseInitState::Leave_001
46 * @tc.desc: 1 set authManager not null
47 *           2 call AuthResponseInitState::Leave with authManager != null
48 *           3 check ret is authResponseState->authManager_.use_count()
49 * @tc.type: FUNC
50 * @tc.require: AR000GHSJK
51 */
52HWTEST_F(AuthRequestStateTest, Leave_001, testing::ext::TestSize.Level0)
53{
54    std::shared_ptr<DmAuthManager> authManager =
55        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
56    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestInitState>();
57    int32_t ret = authRequestState->Leave();
58    ASSERT_EQ(ret, DM_OK);
59}
60
61/**
62 * @tc.name: AuthRequestInitState::SetAuthContext_001
63 * @tc.desc: 1 set authManager not null
64 *           2 call AuthRequestInitState::SetAuthManager with authManager != null
65 *           3 check ret is authResponseState->authManager_.use_count()
66 * @tc.type: FUNC
67 * @tc.require: AR000GHSJK
68 */
69HWTEST_F(AuthRequestStateTest, SetAuthContext_001, testing::ext::TestSize.Level0)
70{
71    std::shared_ptr<DmAuthManager> authManager =
72        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
73    std::shared_ptr<DmAuthRequestContext> context = std::make_shared<DmAuthRequestContext>();
74    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestInitState>();
75    authRequestState->SetAuthContext(context);
76    int32_t ret = authRequestState->context_.use_count();
77    authRequestState->context_.reset();
78    ASSERT_EQ(ret, 2);
79}
80
81/**
82 * @tc.name: AuthRequestInitState::SetAuthManager_002
83 * @tc.desc: 1 set authManager to null
84 *           2 call AuthRequestInitState::SetAuthManager with authManager = null
85 *           3 check ret is authResponseState->authManager_.use_count()
86 * @tc.type: FUNC
87 * @tc.require: AR000GHSJK
88 */
89HWTEST_F(AuthRequestStateTest, SetAuthContext_002, testing::ext::TestSize.Level0)
90{
91    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestInitState>();
92    authRequestState->SetAuthContext(nullptr);
93    int32_t ret = authRequestState->authManager_.use_count();
94    authRequestState->authManager_.reset();
95    ASSERT_EQ(ret, 0);
96}
97
98/**
99 * @tc.name: AuthRequestInitState::GetAuthContext_001
100 * @tc.desc: 1 set authManager not null
101 *           2 call AuthRequestInitState::GetAuthContext with authManager != null
102 *           3 check ret is authResponseState->authManager_.use_count()
103 * @tc.type: FUNC
104 * @tc.require: AR000GHSJK
105 */
106HWTEST_F(AuthRequestStateTest, GetAuthContext_001, testing::ext::TestSize.Level0)
107{
108    std::shared_ptr<DmAuthManager> authManager =
109        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
110    std::shared_ptr<DmAuthRequestContext> context = std::make_shared<DmAuthRequestContext>();
111    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestInitState>();
112    authRequestState->GetAuthContext();
113    int32_t ret = authRequestState->context_.use_count();
114    authRequestState->context_.reset();
115    ASSERT_EQ(ret, 0);
116}
117
118/**
119 * @tc.name: AuthRequestInitState::SetAuthManager_001
120 * @tc.desc: 1 set authManager not null
121 *           2 call AuthRequestInitState::SetAuthManager with authManager != null
122 *           3 check ret is authResponseState->authManager_.use_count()
123 * @tc.type: FUNC
124 * @tc.require: AR000GHSJK
125 */
126HWTEST_F(AuthRequestStateTest, SetAuthManager_001, testing::ext::TestSize.Level0)
127{
128    std::shared_ptr<DmAuthManager> authManager =
129        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
130    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestInitState>();
131    authRequestState->SetAuthManager(authManager);
132    int32_t ret = authRequestState->authManager_.use_count();
133    authRequestState->authManager_.reset();
134    ASSERT_EQ(ret, 1);
135}
136
137/**
138 * @tc.name: AuthRequestInitState::SetAuthManager_002
139 * @tc.desc: 1 set authManager to null
140 *           2 call AuthRequestInitState::SetAuthManager with authManager = null
141 *           3 check ret is authResponseState->authManager_.use_count()
142 * @tc.type: FUNC
143 * @tc.require: AR000GHSJK
144 */
145HWTEST_F(AuthRequestStateTest, SetAuthManager_002, testing::ext::TestSize.Level0)
146{
147    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestInitState>();
148    authRequestState->SetAuthManager(nullptr);
149    int32_t ret = authRequestState->authManager_.use_count();
150    authRequestState->authManager_.reset();
151    ASSERT_EQ(ret, 0);
152}
153
154/**
155 * @tc.name: AuthRequestNegotiateState::TransitionTo_001
156 * @tc.desc: 1 set authManager to null
157 *           2 call AuthRequestInitState::TransitionTo with authManager = null
158 *           4 check ret is ERR_DM_FAILED
159 * @tc.type: FUNC
160 * @tc.require: AR000GHSJK
161 */
162HWTEST_F(AuthRequestStateTest, TransitionTo_001, testing::ext::TestSize.Level0)
163{
164    std::shared_ptr<DmAuthManager> authManager =
165        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
166    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestInitState>();
167    authManager = nullptr;
168    authRequestState->authManager_ = authManager;
169    int32_t ret = authRequestState->TransitionTo(std::make_shared<AuthRequestNegotiateState>());
170    ASSERT_EQ(ret, ERR_DM_FAILED);
171}
172
173/**
174 * @tc.name: AuthRequestInitState::TransitionTo_002
175 * @tc.desc: 1 set authManager not null
176 *           2 call AuthRequestInitState::TransitionTo with authManager != null
177 *           4 check ret is DM_OK
178 * @tc.type: FUNC
179 * @tc.require: AR000GHSJK
180 */
181HWTEST_F(AuthRequestStateTest, TransitionTo_002, testing::ext::TestSize.Level0)
182{
183    std::shared_ptr<DmAuthManager> authManager =
184        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
185    std::shared_ptr<DmAuthRequestContext> context = std::make_shared<DmAuthRequestContext>();
186    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestNegotiateDoneState>();
187    authManager->timer_ = std::make_shared<DmTimer>();
188    authManager->authRequestState_ = std::make_shared<AuthRequestNegotiateDoneState>();
189    authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
190    authManager->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
191    authManager->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager);
192    authManager->authMessageProcessor_->SetResponseContext(authManager->authResponseContext_);
193    authManager->authMessageProcessor_->SetRequestContext(authManager->authRequestContext_);
194    context->sessionId = 123456;
195    authManager->SetAuthRequestState(authRequestState);
196    authManager->softbusConnector_->GetSoftbusSession()->RegisterSessionCallback(authManager);
197    authRequestState->SetAuthContext(context);
198    authRequestState->SetAuthManager(authManager);
199    int32_t ret = authRequestState->TransitionTo(std::make_shared<AuthRequestNegotiateDoneState>());
200    ASSERT_EQ(ret, DM_OK);
201}
202
203/**
204 * @tc.name: AuthRequestInitState::GetStateType_001
205 * @tc.desc: 1 call AuthRequestInitState::GetStateType
206 *           2 check ret is AuthState::AUTH_RESPONSE_INIT
207 * @tc.type: FUNC
208 * @tc.require: AR000GHSJK
209 */
210HWTEST_F(AuthRequestStateTest, GetStateType_001, testing::ext::TestSize.Level0)
211{
212    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestInitState>();
213    int32_t ret = authRequestState->GetStateType();
214    ASSERT_EQ(ret, AuthState::AUTH_REQUEST_INIT);
215}
216
217/**
218 * @tc.name: AuthRequestInitState::Enter_001
219 * @tc.desc: 1 set authManager to null
220 *           2 call AuthRequestInitState::Enter with authManager = null
221 *           3 check ret is ERR_DM_FAILED
222 * @tc.type: FUNC
223 * @tc.require: AR000GHSJK
224 */
225HWTEST_F(AuthRequestStateTest, Enter_001, testing::ext::TestSize.Level0)
226{
227    std::shared_ptr<DmAuthManager> authManager =
228        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
229    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestInitState>();
230    authManager = nullptr;
231    authRequestState->SetAuthManager(authManager);
232    int32_t ret = authRequestState->Enter();
233    ASSERT_EQ(ret, ERR_DM_FAILED);
234}
235
236/**
237 * @tc.name: AuthRequestInitState::Enter_002
238 * @tc.desc: 1 set authManager not null
239 *           2 call AuthRequestInitState::Enter with authManager != null
240 *           3 check ret is ERR_DM_FAILED
241 * @tc.type: FUNC
242 * @tc.require: AR000GHSJK
243 */
244HWTEST_F(AuthRequestStateTest, Enter_002, testing::ext::TestSize.Level0)
245{
246    std::shared_ptr<DmAuthManager> authManager =
247        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
248    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestInitState>();
249    authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
250    authManager->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
251    authManager->authRequestState_ = std::make_shared<AuthRequestInitState>();
252    authRequestState->SetAuthManager(authManager);
253    std::shared_ptr<DmAuthRequestContext> context = std::make_shared<DmAuthRequestContext>();
254    context->deviceId = "123456";
255    authRequestState->SetAuthContext(context);
256    int32_t ret = authRequestState->Enter();
257    ASSERT_EQ(ret, DM_OK);
258}
259
260/**
261 * @tc.name: AuthRequestNegotiateState::GetStateType_002
262 * @tc.desc: 1 call AuthRequestNegotiateState::GetStateType
263 *           2 check ret is AuthState::AUTH_RESPONSE_NEGOTIATE
264 * @tc.type: FUNC
265 * @tc.require: AR000GHSJK
266 */
267HWTEST_F(AuthRequestStateTest, GetStateType_002, testing::ext::TestSize.Level0)
268{
269    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestNegotiateState>();
270    int32_t ret = authRequestState->GetStateType();
271    ASSERT_EQ(ret, AuthState::AUTH_REQUEST_NEGOTIATE);
272}
273
274/**
275 * @tc.name: AuthRequestNegotiateState::Enter_001
276 * @tc.desc: 1 set authManager to null
277 *           2 call AuthRequestNegotiateState::Enter with authManager = null
278 *           3 check ret is ERR_DM_FAILED
279 * @tc.type: FUNC
280 * @tc.require: AR000GHSJK
281 */
282HWTEST_F(AuthRequestStateTest, Enter_003, testing::ext::TestSize.Level0)
283{
284    std::shared_ptr<DmAuthManager> authManager =
285        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
286    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestNegotiateState>();
287    authRequestState->SetAuthManager(nullptr);
288    int32_t ret = authRequestState->Enter();
289    ASSERT_EQ(ret, ERR_DM_FAILED);
290}
291
292/**
293 * @tc.name: AuthRequestNegotiateState::Enter_004
294 * @tc.desc: 1 set authManager not null
295 *           2 call AuthRequestNegotiateState::Enter with authManager != null
296 *           3 check ret is DM_OK
297 * @tc.type: FUNC
298 * @tc.require: AR000GHSJK
299 */
300HWTEST_F(AuthRequestStateTest, Enter_004, testing::ext::TestSize.Level0)
301{
302    std::shared_ptr<DmAuthManager> authManager =
303        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
304    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestNegotiateState>();
305    authManager->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager);
306    authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
307    authManager->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
308    authManager->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
309    authManager->authRequestContext_->deviceId = "111";
310    authManager->authMessageProcessor_->SetRequestContext(authManager->authRequestContext_);
311    authManager->authMessageProcessor_->SetResponseContext(authManager->authResponseContext_);
312    authManager->timer_ = std::make_shared<DmTimer>();
313    authRequestState->SetAuthManager(authManager);
314    std::shared_ptr<DmAuthRequestContext> context = std::make_shared<DmAuthRequestContext>();
315    context->deviceId = "123456";
316    context->sessionId = 22222;
317    authRequestState->SetAuthContext(context);
318    int32_t ret = authRequestState->Enter();
319    ASSERT_EQ(ret, DM_OK);
320}
321
322/**
323 * @tc.name: AuthRequestNegotiateDoneState::GetStateType_003
324 * @tc.desc: 1 call AuthRequestNegotiateDoneState::GetStateType
325 *           2 check ret is AuthState::AUTH_REQUEST_NEGOTIATE_DONE
326 * @tc.type: FUNC
327 * @tc.require: AR000GHSJK
328 */
329HWTEST_F(AuthRequestStateTest, GetStateType_003, testing::ext::TestSize.Level0)
330{
331    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestNegotiateDoneState>();
332    int32_t ret = authRequestState->GetStateType();
333    ASSERT_EQ(ret, AuthState::AUTH_REQUEST_NEGOTIATE_DONE);
334}
335
336/**
337 * @tc.name: AuthRequestNegotiateDoneState::Enter_005
338 * @tc.desc: 1 set authManager to null
339 *           2 call AuthRequestNegotiateDoneState::Enter with authManager = null
340 *           3 check ret is ERR_DM_FAILED
341 * @tc.type: FUNC
342 * @tc.require: AR000GHSJK
343 */
344HWTEST_F(AuthRequestStateTest, Enter_005, testing::ext::TestSize.Level0)
345{
346    std::shared_ptr<DmAuthManager> authManager =
347        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
348    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestNegotiateDoneState>();
349    authRequestState->SetAuthManager(nullptr);
350    int32_t ret = authRequestState->Enter();
351    ASSERT_EQ(ret, ERR_DM_FAILED);
352}
353
354/**
355 * @tc.name: AuthRequestNegotiateDoneState::Enter_006
356 * @tc.desc: 1 set authManager not null
357 *           2 call AuthRequestNegotiateDoneState::Enter with authManager != null
358 *           3 check ret is DM_OK
359 * @tc.type: FUNC
360 * @tc.require: AR000GHSJK
361 */
362HWTEST_F(AuthRequestStateTest, Enter_006, testing::ext::TestSize.Level0)
363{
364    std::shared_ptr<DmAuthManager> authManager =
365        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
366    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestNegotiateDoneState>();
367    authManager->timer_ = std::make_shared<DmTimer>();
368    authManager->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager);
369    authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
370    authManager->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
371    authManager->authMessageProcessor_->SetRequestContext(authManager->authRequestContext_);
372    authManager->authMessageProcessor_->SetResponseContext(authManager->authResponseContext_);
373    authManager->softbusConnector_->GetSoftbusSession()->RegisterSessionCallback(authManager);
374    authManager->SetAuthRequestState(authRequestState);
375    authRequestState->SetAuthManager(authManager);
376    std::shared_ptr<DmAuthRequestContext> context = std::make_shared<DmAuthRequestContext>();
377    context->sessionId = 333333;
378    authRequestState->SetAuthContext(context);
379    int32_t ret = authRequestState->Enter();
380    ASSERT_EQ(ret, DM_OK);
381}
382
383/**
384 * @tc.name: AuthRequestReplyState::GetStateType_004
385 * @tc.desc: 1 call AuthRequestReplyState::GetStateType
386 *           2 check ret is AuthState::AUTH_REQUEST_REPLY
387 * @tc.type: FUNC
388 * @tc.require: AR000GHSJK
389 */
390HWTEST_F(AuthRequestStateTest, GetStateType_004, testing::ext::TestSize.Level0)
391{
392    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestReplyState>();
393    int32_t ret = authRequestState->GetStateType();
394    ASSERT_EQ(ret, AuthState::AUTH_REQUEST_REPLY);
395}
396
397/**
398 * @tc.name: AuthRequestReplyState::Enter_007
399 * @tc.desc: 1 set authManager to null
400 *           2 call AuthRequestReplyState::Enter with authManager = null
401 *           3 check ret is ERR_DM_FAILED
402 * @tc.type: FUNC
403 * @tc.require: AR000GHSJK
404 */
405HWTEST_F(AuthRequestStateTest, Enter_007, testing::ext::TestSize.Level0)
406{
407    std::shared_ptr<DmAuthManager> authManager =
408        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
409    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestReplyState>();
410    authRequestState->SetAuthManager(nullptr);
411    int32_t ret = authRequestState->Enter();
412    ASSERT_EQ(ret, ERR_DM_FAILED);
413}
414
415/**
416 * @tc.name: AuthRequestReplyState::Enter_008
417 * @tc.desc: 1 set authManager not null
418 *           2 call AuthRequestReplyState::Enter with authManager != null
419 *           3 check ret is DM_OK
420 * @tc.type: FUNC
421 * @tc.require: AR000GHSJK
422 */
423HWTEST_F(AuthRequestStateTest, Enter_008, testing::ext::TestSize.Level0)
424{
425    std::shared_ptr<DmAuthManager> authManager =
426        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
427    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestReplyState>();
428    authManager->timer_ = std::make_shared<DmTimer>();
429    authManager->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager);
430    authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
431    authManager->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
432    authManager->authRequestState_ = std::make_shared<AuthRequestReplyState>();
433    authManager->authResponseContext_->sessionId = 1;
434    authManager->authPtr_ = authManager->authenticationMap_[1];
435    authManager->authMessageProcessor_->SetResponseContext(authManager->authResponseContext_);
436    authManager->authMessageProcessor_->SetRequestContext(authManager->authRequestContext_);
437    authManager->SetAuthRequestState(authRequestState);
438    authRequestState->SetAuthManager(authManager);
439    std::shared_ptr<DmAuthRequestContext> context = std::make_shared<DmAuthRequestContext>();
440    context->sessionId = 333333;
441    authRequestState->SetAuthContext(context);
442    int32_t ret = authRequestState->Enter();
443    ASSERT_EQ(ret, DM_OK);
444}
445
446/**
447 * @tc.name: AuthRequestJoinState::GetStateType_006
448 * @tc.desc: 1 call AuthRequestJoinState::GetStateType
449 *           2 check ret is AuthState::AUTH_REQUEST_JOIN
450 * @tc.type: FUNC
451 * @tc.require: AR000GHSJK
452 */
453HWTEST_F(AuthRequestStateTest, GetStateType_006, testing::ext::TestSize.Level0)
454{
455    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestJoinState>();
456    int32_t ret = authRequestState->GetStateType();
457    ASSERT_EQ(ret, AuthState::AUTH_REQUEST_JOIN);
458}
459
460/**
461 * @tc.name: AuthRequestJoinState::Enter_011
462 * @tc.desc: 1 set authManager to null
463 *           2 call AuthRequestJoinState::Enter with authManager = null
464 *           3 check ret is ERR_DM_FAILED
465 * @tc.type: FUNC
466 * @tc.require: AR000GHSJK
467 */
468HWTEST_F(AuthRequestStateTest, Enter_011, testing::ext::TestSize.Level0)
469{
470    std::shared_ptr<DmAuthManager> authManager =
471        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
472    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestJoinState>();
473    authRequestState->SetAuthManager(nullptr);
474    int32_t ret = authRequestState->Enter();
475    ASSERT_EQ(ret, ERR_DM_FAILED);
476}
477
478/**
479 * @tc.name: AuthRequestJoinState::Enter_012
480 * @tc.desc: 1 set authManager not null
481 *           2 call AuthRequestJoinState::Enter with authManager != null
482 *           3 check ret is DM_OK
483 * @tc.type: FUNC
484 * @tc.require: AR000GHSJK
485 */
486HWTEST_F(AuthRequestStateTest, Enter_012, testing::ext::TestSize.Level0)
487{
488    std::shared_ptr<DmAuthManager> authManager =
489        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
490    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestJoinState>();
491    authManager->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
492    authManager->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager);
493    authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
494    authManager->authPtr_ = authManager->authenticationMap_[1];
495    authManager->authResponseContext_->groupId = "111";
496    authManager->authResponseContext_->groupName = "222";
497    authManager->authResponseContext_->code = 123;
498    authManager->authResponseContext_->requestId = 234;
499    authManager->authResponseContext_->deviceId = "234";
500    authRequestState->SetAuthManager(authManager);
501    authManager->timer_ = std::make_shared<DmTimer>();
502    authManager->SetAuthRequestState(authRequestState);
503    authManager->hiChainConnector_->RegisterHiChainCallback(authManager);
504    authManager->softbusConnector_->GetSoftbusSession()->RegisterSessionCallback(authManager);
505    std::shared_ptr<DmAuthRequestContext> context = std::make_shared<DmAuthRequestContext>();
506    context->deviceId = "44444";
507    context->sessionId = 55555;
508    authRequestState->SetAuthContext(context);
509    int32_t ret = authRequestState->Enter();
510    ASSERT_EQ(ret, DM_OK);
511}
512
513/**
514 * @tc.name: AuthRequestNetworkState::GetStateType_007
515 * @tc.desc: 1 call AuthRequestNetworkState::GetStateType
516 *           2 check ret is AuthState::AUTH_REQUEST_NETWORK
517 * @tc.type: FUNC
518 * @tc.require: AR000GHSJK
519 */
520HWTEST_F(AuthRequestStateTest, GetStateType_007, testing::ext::TestSize.Level0)
521{
522    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestNetworkState>();
523    int32_t ret = authRequestState->GetStateType();
524    ASSERT_EQ(ret, AuthState::AUTH_REQUEST_NETWORK);
525}
526
527/**
528 * @tc.name: AuthRequestNetworkState::Enter_013
529 * @tc.desc: 1 set authManager to null
530 *           2 call AuthRequestNetworkState::Enter with authManager = null
531 *           3 check ret is ERR_DM_FAILED
532 * @tc.type: FUNC
533 * @tc.require: AR000GHSJK
534 */
535HWTEST_F(AuthRequestStateTest, Enter_013, testing::ext::TestSize.Level0)
536{
537    std::shared_ptr<DmAuthManager> authManager =
538        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
539    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestNetworkState>();
540    authRequestState->SetAuthManager(nullptr);
541    int32_t ret = authRequestState->Enter();
542    ASSERT_EQ(ret, ERR_DM_FAILED);
543}
544
545/**
546 * @tc.name: AuthRequestNetworkState::Enter_014
547 * @tc.desc: 1 set authManager not null
548 *           2 call AuthRequestNetworkState::Enter with authManager != null
549 *           3 check ret is DM_OK
550 * @tc.type: FUNC
551 * @tc.require: AR000GHSJK
552 */
553HWTEST_F(AuthRequestStateTest, Enter_014, testing::ext::TestSize.Level0)
554{
555    std::shared_ptr<DmAuthManager> authManager =
556        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
557    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestNetworkState>();
558    authManager->timer_ = std::make_shared<DmTimer>();
559    authManager->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager);
560    authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
561    authManager->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
562    authManager->authRequestState_ = std::make_shared<AuthRequestNetworkState>();
563    authManager->authPtr_ = authManager->authenticationMap_[1];
564    authManager->authMessageProcessor_->SetResponseContext(authManager->authResponseContext_);
565    authManager->authMessageProcessor_->SetRequestContext(authManager->authRequestContext_);
566    authManager->softbusConnector_->GetSoftbusSession()->RegisterSessionCallback(authManager);
567    authManager->SetAuthRequestState(authRequestState);
568    authRequestState->SetAuthManager(authManager);
569    int32_t ret = authRequestState->Enter();
570    ASSERT_EQ(ret, DM_OK);
571}
572
573/**
574 * @tc.name: AuthRequestFinishState::GetStateType_008
575 * @tc.desc: 1 call AuthRequestFinishState::GetStateType
576 *           2 check ret is AuthState::AUTH_REQUEST_FINISH
577 * @tc.type: FUNC
578 * @tc.require: AR000GHSJK
579 */
580HWTEST_F(AuthRequestStateTest, GetStateType_008, testing::ext::TestSize.Level0)
581{
582    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestFinishState>();
583    int32_t ret = authRequestState->GetStateType();
584    ASSERT_EQ(ret, AuthState::AUTH_REQUEST_FINISH);
585}
586
587/**
588 * @tc.name: AuthRequestFinishState::Enter_015
589 * @tc.desc: 1 set authManager to null
590 *           2 call AuthRequestFinishState::Enter with authManager = null
591 *           3 check ret is ERR_DM_FAILED
592 * @tc.type: FUNC
593 * @tc.require: AR000GHSJK
594 */
595HWTEST_F(AuthRequestStateTest, Enter_015, testing::ext::TestSize.Level0)
596{
597    std::shared_ptr<DmAuthManager> authManager =
598        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
599    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestFinishState>();
600    authRequestState->SetAuthManager(nullptr);
601    int32_t ret = authRequestState->Enter();
602    ASSERT_EQ(ret, ERR_DM_FAILED);
603}
604
605/**
606 * @tc.name: AuthRequestFinishState::Enter_016
607 * @tc.desc: 1 set authManager not null
608 *           2 call AuthRequestNetworkState::Enter with authManager != null
609 *           3 check ret is DM_OK
610 * @tc.type: FUNC
611 * @tc.require: AR000GHSJK
612 */
613HWTEST_F(AuthRequestStateTest, Enter_016, testing::ext::TestSize.Level0)
614{
615    std::shared_ptr<DmAuthManager> authManager =
616        std::make_shared<DmAuthManager>(softbusConnector, hiChainConnector, listener, hiChainAuthConnector);
617    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestFinishState>();
618    authManager->timer_ = std::make_shared<DmTimer>();
619    authManager->authPtr_ = authManager->authenticationMap_[1];
620    authManager->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager);
621    authManager->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
622    authManager->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
623    authManager->authResponseState_ = std::make_shared<AuthResponseFinishState>();
624    authManager->authRequestState_ = std::make_shared<AuthRequestFinishState>();
625    authManager->authResponseContext_->sessionId = 1;
626    authManager->authMessageProcessor_->SetResponseContext(authManager->authResponseContext_);
627    authManager->authMessageProcessor_->SetRequestContext(authManager->authRequestContext_);
628    authManager->SetAuthRequestState(authRequestState);
629    authRequestState->SetAuthManager(authManager);
630    std::shared_ptr<DmAuthRequestContext> context = std::make_shared<DmAuthRequestContext>();
631    context->sessionId = 333333;
632    authRequestState->SetAuthContext(context);
633    int32_t ret = authRequestState->Enter();
634    ASSERT_EQ(ret, DM_OK);
635}
636
637/**
638 * @tc.name: AuthRequestCredential::GetStateType_005
639 * @tc.desc: 1 call AuthRequestCredential::GetStateType
640 *           2 check ret is AuthState::AUTH_REQUEST_CREDENTIAL
641 * @tc.type: FUNC
642 * @tc.require: AR000GHSJK
643 */
644HWTEST_F(AuthRequestStateTest, GetStateType_005, testing::ext::TestSize.Level0)
645{
646    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestCredential>();
647    int32_t ret = authRequestState->GetStateType();
648    ASSERT_EQ(ret, AuthState::AUTH_REQUEST_CREDENTIAL);
649}
650
651/**
652 * @tc.name: AuthRequestCredential::Enter_009
653 * @tc.desc: 1 call AuthRequestCredential::Enter
654 *           2 check ret is ERR_DM_FAILED
655 * @tc.type: FUNC
656 * @tc.require: AR000GHSJK
657 */
658HWTEST_F(AuthRequestStateTest, Enter_009, testing::ext::TestSize.Level0)
659{
660    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestCredential>();
661    int32_t ret = authRequestState->Enter();
662    ASSERT_EQ(ret, ERR_DM_FAILED);
663}
664
665/**
666 * @tc.name: AuthRequestCredentialDone::GetStateType_009
667 * @tc.desc: 1 call AuthRequestCredentialDone::GetStateType
668 *           2 check ret is AUTH_REQUEST_CREDENTIAL_DONE
669 * @tc.type: FUNC
670 * @tc.require: AR000GHSJK
671 */
672HWTEST_F(AuthRequestStateTest, GetStateType_009, testing::ext::TestSize.Level0)
673{
674    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestCredentialDone>();
675    int32_t ret = authRequestState->GetStateType();
676    ASSERT_EQ(ret, AUTH_REQUEST_CREDENTIAL_DONE);
677}
678
679/**
680 * @tc.name: AuthRequestCredentialDone::Enter_010
681 * @tc.desc: 1 call AuthRequestCredentialDone::Enter
682 *           2 check ret is ERR_DM_FAILED
683 * @tc.type: FUNC
684 * @tc.require: AR000GHSJK
685 */
686HWTEST_F(AuthRequestStateTest, Enter_010, testing::ext::TestSize.Level0)
687{
688    std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestCredentialDone>();
689    int32_t ret = authRequestState->Enter();
690    ASSERT_EQ(ret, ERR_DM_FAILED);
691}
692} // namespace
693} // namespace DistributedHardware
694} // namespace OHOS
695