• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 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 <cstdint>
17 #include <cstdlib>
18 #include <cstring>
19 #include <fcntl.h>
20 
21 #include "gtest/gtest.h"
22 #include <gmock/gmock-actions.h>
23 
24 #include "lnn_ohos_account_adapter.h"
25 #include "lnn_ohos_account_adapter_mock.h"
26 #include "softbus_adapter_mem.h"
27 #include "softbus_error_code.h"
28 #include "softbus_utils.h"
29 
30 using namespace std;
31 using namespace testing::ext;
32 
33 namespace OHOS::SoftBus {
34 #define DEFAULT_ACCOUNT_NAME "ohosAnonymousName"
35 
36 constexpr char LNN_OHOS_ACCOUNT_ADAPTER_TEST_ID_LEN = 10;
37 
38 class LnnOhosAccountAdapterTest : public testing::Test {
39 protected:
40     static void SetUpTestCase(void);
41     static void TearDownTestCase(void);
42     void SetUp();
43     void TearDown();
44 };
SetUpTestCase(void)45 void LnnOhosAccountAdapterTest::SetUpTestCase(void) { }
TearDownTestCase(void)46 void LnnOhosAccountAdapterTest::TearDownTestCase(void) { }
SetUp(void)47 void LnnOhosAccountAdapterTest::SetUp(void) { }
TearDown(void)48 void LnnOhosAccountAdapterTest::TearDown(void) { }
49 
50 /**
51  * @tc.name: GetOsAccountId_001
52  * @tc.desc:  GetOsAccountId
53  * @tc.type: FUN
54  * @tc.require: 1
55  */
56 HWTEST_F(LnnOhosAccountAdapterTest, GetOsAccountId_001, TestSize.Level1)
57 {
58     uint32_t len = 0;
59     char *accountInfo = (char *)SoftBusCalloc(LNN_OHOS_ACCOUNT_ADAPTER_TEST_ID_LEN * HEXIFY_UNIT_LEN);
60     ASSERT_NE(accountInfo, nullptr);
61     EXPECT_EQ(GetOsAccountId(nullptr, LNN_OHOS_ACCOUNT_ADAPTER_TEST_ID_LEN, &len), SOFTBUS_INVALID_PARAM);
62     EXPECT_EQ(GetOsAccountId(accountInfo, 0, &len), SOFTBUS_INVALID_PARAM);
63     EXPECT_EQ(GetOsAccountId(accountInfo, LNN_OHOS_ACCOUNT_ADAPTER_TEST_ID_LEN, nullptr), SOFTBUS_INVALID_PARAM);
64     if (accountInfo != nullptr) {
65         SoftBusFree(accountInfo);
66     }
67 }
68 
69 /**
70  * @tc.name: GetOsAccountId_002
71  * @tc.desc:  GetOsAccountId
72  * @tc.type: FUN
73  * @tc.require: 1
74  */
75 HWTEST_F(LnnOhosAccountAdapterTest, GetOsAccountId_002, TestSize.Level1)
76 {
77     uint32_t len = 0;
78     char *accountInfo = (char *)SoftBusCalloc(LNN_OHOS_ACCOUNT_ADAPTER_TEST_ID_LEN * HEXIFY_UNIT_LEN);
79     ASSERT_NE(accountInfo, nullptr);
80     AccountSA::OhosAccountKitsMock mock;
81     EXPECT_CALL(mock, IsSameAccountGroupDevice()).Times(1).WillOnce(testing::Return(false));
82     EXPECT_EQ(GetOsAccountId(accountInfo, LNN_OHOS_ACCOUNT_ADAPTER_TEST_ID_LEN, &len), SOFTBUS_AUTH_INNER_ERR);
83     if (accountInfo != nullptr) {
84         SoftBusFree(accountInfo);
85     }
86 }
87 
88 /**
89  * @tc.name: GetOsAccountId_003
90  * @tc.desc:  GetOsAccountId
91  * @tc.type: FUN
92  * @tc.require: 1
93  */
94 HWTEST_F(LnnOhosAccountAdapterTest, GetOsAccountId_003, TestSize.Level1)
95 {
96     char *accountInfo = (char *)SoftBusCalloc(LNN_OHOS_ACCOUNT_ADAPTER_TEST_ID_LEN * HEXIFY_UNIT_LEN);
97     ASSERT_NE(accountInfo, nullptr);
98     uint32_t len = 0;
99     OHOS::AccountSA::OhosAccountInfo oh_acc_info;
100     std::pair<bool, OHOS::AccountSA::OhosAccountInfo> oh_acc_info_pair = { false, oh_acc_info };
101     AccountSA::OhosAccountKitsMock mock;
102     EXPECT_CALL(mock, IsSameAccountGroupDevice()).Times(1).WillOnce(testing::Return(true));
103     EXPECT_CALL(mock, QueryOhosAccountInfo()).Times(1).WillOnce(testing::Return(oh_acc_info_pair));
104     EXPECT_EQ(GetOsAccountId(accountInfo, LNN_OHOS_ACCOUNT_ADAPTER_TEST_ID_LEN, &len),
105         SOFTBUS_NETWORK_GET_ACCOUNT_INFO_FAILED);
106     if (accountInfo != nullptr) {
107         SoftBusFree(accountInfo);
108     }
109 }
110 
111 /**
112  * @tc.name: GetOsAccountId_004
113  * @tc.desc:  GetOsAccountId
114  * @tc.type: FUN
115  * @tc.require: 1
116  */
117 HWTEST_F(LnnOhosAccountAdapterTest, GetOsAccountId_004, TestSize.Level1)
118 {
119     char *accountInfo = (char *)SoftBusCalloc(LNN_OHOS_ACCOUNT_ADAPTER_TEST_ID_LEN * HEXIFY_UNIT_LEN);
120     ASSERT_NE(accountInfo, nullptr);
121     uint32_t len = 0;
122     OHOS::AccountSA::OhosAccountInfo oh_acc_info;
123     oh_acc_info.name_ = "";
124     std::pair<bool, OHOS::AccountSA::OhosAccountInfo> oh_acc_info_pair = { true, oh_acc_info };
125     OHOS::AccountSA::OhosAccountKitsMock mock;
126     EXPECT_CALL(mock, IsSameAccountGroupDevice()).Times(1).WillOnce(testing::Return(true));
127     EXPECT_CALL(mock, QueryOhosAccountInfo()).Times(1).WillOnce(testing::Return(oh_acc_info_pair));
128     EXPECT_EQ(GetOsAccountId(accountInfo, LNN_OHOS_ACCOUNT_ADAPTER_TEST_ID_LEN, &len),
129         SOFTBUS_NETWORK_GET_ACCOUNT_INFO_FAILED);
130 
131     if (accountInfo != nullptr) {
132         SoftBusFree(accountInfo);
133     }
134 }
135 
136 /**
137  * @tc.name: GetCurrentAccount_001
138  * @tc.desc:  GetCurrentAccount
139  * @tc.type: FUN
140  * @tc.require: 1
141  */
142 HWTEST_F(LnnOhosAccountAdapterTest, GetCurrentAccount_001, TestSize.Level1)
143 {
144     int64_t account = 10;
145     EXPECT_EQ(GetCurrentAccount(nullptr), SOFTBUS_INVALID_PARAM);
146     OHOS::AccountSA::OhosAccountKitsMock mock;
147     EXPECT_CALL(mock, IsSameAccountGroupDevice()).Times(1).WillOnce(testing::Return(false));
148     EXPECT_EQ(GetCurrentAccount(&account), SOFTBUS_AUTH_INNER_ERR);
149 }
150 
151 /**
152  * @tc.name: GetCurrentAccount_002
153  * @tc.desc:  GetCurrentAccount
154  * @tc.type: FUN
155  * @tc.require: 1
156  */
157 HWTEST_F(LnnOhosAccountAdapterTest, GetCurrentAccount_002, TestSize.Level1)
158 {
159     int64_t account = 10;
160     OHOS::AccountSA::OhosAccountInfo oh_acc_info;
161     std::pair<bool, OHOS::AccountSA::OhosAccountInfo> oh_acc_info_pair = { false, oh_acc_info };
162     OHOS::AccountSA::OhosAccountKitsMock mock;
163     EXPECT_CALL(mock, IsSameAccountGroupDevice()).Times(1).WillOnce(testing::Return(true));
164     EXPECT_CALL(mock, QueryOhosAccountInfo()).Times(1).WillOnce(testing::Return(oh_acc_info_pair));
165     EXPECT_EQ(GetCurrentAccount(&account), SOFTBUS_NETWORK_GET_ACCOUNT_INFO_FAILED);
166 }
167 
168 /**
169  * @tc.name: GetCurrentAccount_003
170  * @tc.desc: GetCurrentAccount
171  * @tc.type: FUN
172  * @tc.require: 1
173  */
174 HWTEST_F(LnnOhosAccountAdapterTest, GetCurrentAccount_003, TestSize.Level1)
175 {
176     int64_t account = 10;
177     OHOS::AccountSA::OhosAccountInfo oh_acc_info;
178     oh_acc_info.name_ = "";
179     std::pair<bool, OHOS::AccountSA::OhosAccountInfo> oh_acc_info_pair = { true, oh_acc_info };
180     OHOS::AccountSA::OhosAccountKitsMock mock;
181     EXPECT_CALL(mock, IsSameAccountGroupDevice()).Times(1).WillOnce(testing::Return(true));
182     EXPECT_CALL(mock, QueryOhosAccountInfo()).Times(1).WillOnce(testing::Return(oh_acc_info_pair));
183     EXPECT_EQ(GetCurrentAccount(&account), SOFTBUS_OK);
184 }
185 
186 /**
187  * @tc.name: GetCurrentAccount_004
188  * @tc.desc: GetCurrentAccount
189  * @tc.type: FUN
190  * @tc.require: 1
191  */
192 HWTEST_F(LnnOhosAccountAdapterTest, GetCurrentAccount_004, TestSize.Level1)
193 {
194     int64_t account = 10;
195     OHOS::AccountSA::OhosAccountInfo oh_acc_info;
196     oh_acc_info.name_ = DEFAULT_ACCOUNT_NAME;
197     std::pair<bool, OHOS::AccountSA::OhosAccountInfo> oh_acc_info_pair = { true, oh_acc_info };
198     OHOS::AccountSA::OhosAccountKitsMock mock;
199     EXPECT_CALL(mock, IsSameAccountGroupDevice()).Times(1).WillOnce(testing::Return(true));
200     EXPECT_CALL(mock, QueryOhosAccountInfo()).Times(1).WillOnce(testing::Return(oh_acc_info_pair));
201     EXPECT_EQ(GetCurrentAccount(&account), SOFTBUS_OK);
202 }
203 
204 /**
205  * @tc.name: GetCurrentAccount_005
206  * @tc.desc: GetCurrentAccount
207  * @tc.type: FUN
208  * @tc.require: 1
209  */
210 HWTEST_F(LnnOhosAccountAdapterTest, GetCurrentAccount_005, TestSize.Level1)
211 {
212     int64_t account = 10;
213     OHOS::AccountSA::OhosAccountInfo oh_acc_info;
214     oh_acc_info.name_ = "ACCOUNT_NAME";
215     std::pair<bool, OHOS::AccountSA::OhosAccountInfo> oh_acc_info_pair = { true, oh_acc_info };
216     OHOS::AccountSA::OhosAccountKitsMock mock;
217     EXPECT_CALL(mock, IsSameAccountGroupDevice()).Times(1).WillOnce(testing::Return(true));
218     EXPECT_CALL(mock, QueryOhosAccountInfo()).Times(1).WillOnce(testing::Return(oh_acc_info_pair));
219     EXPECT_EQ(GetCurrentAccount(&account), SOFTBUS_OK);
220 }
221 
222 /**
223  * @tc.name: GetCurrentAccount_006
224  * @tc.desc:  GetCurrentAccount
225  * @tc.type: FUN
226  * @tc.require: 1
227  */
228 HWTEST_F(LnnOhosAccountAdapterTest, GetCurrentAccount_006, TestSize.Level1)
229 {
230     int64_t account = 10;
231     OHOS::AccountSA::OhosAccountInfo oh_acc_info;
232     oh_acc_info.name_ = "123456";
233     std::pair<bool, OHOS::AccountSA::OhosAccountInfo> oh_acc_info_pair = { true, oh_acc_info };
234     OHOS::AccountSA::OhosAccountKitsMock mock;
235     EXPECT_CALL(mock, IsSameAccountGroupDevice()).Times(1).WillOnce(testing::Return(true));
236     EXPECT_CALL(mock, QueryOhosAccountInfo()).Times(1).WillOnce(testing::Return(oh_acc_info_pair));
237     EXPECT_EQ(GetCurrentAccount(&account), SOFTBUS_OK);
238 }
239 } // namespace OHOS::SoftBus