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 <gtest/gtest.h>
17 #include <string>
18
19 #include "lnn_ohos_account.h"
20 #include "lnn_ohos_account_mock.h"
21 #include "softbus_common.h"
22 #include "softbus_error_code.h"
23 #include "gmock/gmock.h"
24 #include "gtest/gtest.h"
25
26 using namespace std;
27 using namespace testing;
28 using namespace testing::ext;
29 using ::testing::Return;
30
31 namespace OHOS {
32 class LNNOhosAccountTest : public testing::Test {
33 protected:
34 static void SetUpTestCase(void);
35 static void TearDownTestCase(void);
36 void SetUp();
37 void TearDown();
38 };
39
SetUpTestCase(void)40 void LNNOhosAccountTest::SetUpTestCase(void) { }
41
TearDownTestCase(void)42 void LNNOhosAccountTest::TearDownTestCase(void) { }
43
SetUp()44 void LNNOhosAccountTest::SetUp() { }
45
TearDown()46 void LNNOhosAccountTest::TearDown() { }
47
48 /**
49 * @tc.name: LNN_GET_OHOS_ACCOUNT_INFO_001
50 * @tc.desc: test accountHash == nullptr || len != SHA_256_HASH_LEN
51 * @tc.type: FUNC
52 * @tc.require:
53 */
54 HWTEST_F(LNNOhosAccountTest, LNN_GET_OHOS_ACCOUNT_INFO_001, TestSize.Level1)
55 {
56 int32_t ret = SOFTBUS_OK;
57 ret = LnnGetOhosAccountInfo(nullptr, SHA_256_HASH_LEN);
58 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
59
60 uint8_t accountHash[SHA_256_HASH_LEN - 1] = { 0 };
61 ret = LnnGetOhosAccountInfo(accountHash, SHA_256_HASH_LEN - 1);
62 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
63 }
64
65 /**
66 * @tc.name: LNN_GET_OHOS_ACCOUNT_INFO_002
67 * @tc.desc: test SoftBusGenerateStrHash return not ok
68 * @tc.type: FUNC
69 * @tc.require:
70 */
71 HWTEST_F(LNNOhosAccountTest, LNN_GET_OHOS_ACCOUNT_INFO_002, TestSize.Level1)
72 {
73 LnnOhosAccountInterfaceMock mocker;
74 uint8_t accountHash[SHA_256_HASH_LEN] = { 0 };
75 int32_t ret = SOFTBUS_OK;
76 EXPECT_CALL(mocker, SoftBusGenerateStrHash).WillOnce(Return(SOFTBUS_INVALID_PARAM));
77 ret = LnnGetOhosAccountInfo(accountHash, SHA_256_HASH_LEN);
78 EXPECT_NE(ret, SOFTBUS_OK);
79 }
80
81 /**
82 * @tc.name: LNN_GET_OHOS_ACCOUNT_INFO_003
83 * @tc.desc: test LnnGetOhosAccountInfo return success.
84 * @tc.type: FUNC
85 * @tc.require:
86 */
87 HWTEST_F(LNNOhosAccountTest, LNN_GET_OHOS_ACCOUNT_INFO_003, TestSize.Level1)
88 {
89 LnnOhosAccountInterfaceMock mocker;
90 uint8_t accountHash[SHA_256_HASH_LEN] = { 0 };
91 int32_t ret = SOFTBUS_OK;
92 EXPECT_CALL(mocker, SoftBusGenerateStrHash).WillRepeatedly(Return(SOFTBUS_OK));
93
94 EXPECT_CALL(mocker, GetOsAccountId).WillOnce(Return(SOFTBUS_OK));
95
96 ret = LnnGetOhosAccountInfo(accountHash, SHA_256_HASH_LEN);
97 EXPECT_EQ(ret, SOFTBUS_OK);
98 }
99
100 /**
101 * @tc.name: LNN_INIT_OHOS_ACCOUNT
102 * @tc.desc: InitOhosAccount generate default str hash fail.
103 * @tc.type: FUNC
104 * @tc.require:
105 */
106 HWTEST_F(LNNOhosAccountTest, LNN_INIT_OHOS_ACCOUNT, TestSize.Level1)
107 {
108 LnnOhosAccountInterfaceMock mocker;
109 int32_t ret = SOFTBUS_OK;
110 EXPECT_CALL(mocker, SoftBusGenerateStrHash).WillRepeatedly(Return(SOFTBUS_INVALID_PARAM));
111 ret = LnnInitOhosAccount();
112 EXPECT_NE(ret, SOFTBUS_OK);
113 }
114
115 /**
116 * @tc.name: LNN_UPDATE_OHOS_ACCOUNT_001
117 * @tc.desc: OnAccountChanged get local account hash fail
118 * @tc.type: FUNC
119 * @tc.require:
120 */
121 HWTEST_F(LNNOhosAccountTest, LNN_UPDATE_OHOS_ACCOUNT_001, TestSize.Level1)
122 {
123 NiceMock<LnnOhosAccountInterfaceMock> mocker;
124 ON_CALL(mocker, LnnGetLocalByteInfo).WillByDefault(Return(SOFTBUS_INVALID_PARAM));
125 EXPECT_CALL(mocker, SoftBusGenerateStrHash).Times(0);
126 LnnUpdateOhosAccount(UPDATE_HEARTBEAT);
127 bool ret = LnnIsDefaultOhosAccount();
128 EXPECT_FALSE(ret);
129 }
130
131 /**
132 * @tc.name: LNN_UPDATE_OHOS_ACCOUNT_001
133 * @tc.desc: generate default str hash fail
134 * @tc.type: FUNC
135 * @tc.require:
136 */
137 HWTEST_F(LNNOhosAccountTest, LNN_UPDATE_OHOS_ACCOUNT_002, TestSize.Level1)
138 {
139 NiceMock<LnnOhosAccountInterfaceMock> mocker;
140 ON_CALL(mocker, SoftBusGenerateStrHash).WillByDefault(Return(SOFTBUS_INVALID_PARAM));
141 ON_CALL(mocker, LnnGetLocalByteInfo).WillByDefault(Return(SOFTBUS_OK));
142 EXPECT_CALL(mocker, UpdateRecoveryDeviceInfoFromDb).Times(0);
143 LnnUpdateOhosAccount(UPDATE_HEARTBEAT);
144 bool ret = LnnIsDefaultOhosAccount();
145 EXPECT_FALSE(ret);
146 }
147
148 /**
149 * @tc.name: LNN_UPDATE_OHOS_ACCOUNT_001
150 * @tc.desc: generate default str hash fail
151 * @tc.type: FUNC
152 * @tc.require:
153 */
154 HWTEST_F(LNNOhosAccountTest, LNN_ON_OHOS_ACCOUNT_LOGOUT_001, TestSize.Level1)
155 {
156 NiceMock<LnnOhosAccountInterfaceMock> mocker;
157 ON_CALL(mocker, SoftBusGenerateStrHash).WillByDefault(Return(SOFTBUS_INVALID_PARAM));
158 EXPECT_CALL(mocker, UpdateRecoveryDeviceInfoFromDb).Times(0);
159 LnnOnOhosAccountLogout();
160 bool ret = LnnIsDefaultOhosAccount();
161 EXPECT_FALSE(ret);
162 }
163
164 /**
165 * @tc.name: LNN_IS_DEFAULT_OHOS_ACCOUNT_001
166 * @tc.desc: get local accountHash fail
167 * @tc.type: FUNC
168 * @tc.require:
169 */
170 HWTEST_F(LNNOhosAccountTest, LNN_IS_DEFAULT_OHOS_ACCOUNT_001, TestSize.Level1)
171 {
172 NiceMock<LnnOhosAccountInterfaceMock> mocker;
173 ON_CALL(mocker, LnnGetLocalByteInfo).WillByDefault(Return(SOFTBUS_INVALID_PARAM));
174 bool ret = LnnIsDefaultOhosAccount();
175 EXPECT_FALSE(ret);
176 }
177
178 /**
179 * @tc.name: LNN_IS_DEFAULT_OHOS_ACCOUNT_001
180 * @tc.desc: generate default str hash fail
181 * @tc.type: FUNC
182 * @tc.require:
183 */
184 HWTEST_F(LNNOhosAccountTest, LNN_IS_DEFAULT_OHOS_ACCOUNT_002, TestSize.Level1)
185 {
186 NiceMock<LnnOhosAccountInterfaceMock> mocker;
187 ON_CALL(mocker, LnnGetLocalByteInfo).WillByDefault(Return(SOFTBUS_OK));
188 ON_CALL(mocker, SoftBusGenerateStrHash).WillByDefault(Return(SOFTBUS_INVALID_PARAM));
189 bool ret = LnnIsDefaultOhosAccount();
190 EXPECT_FALSE(ret);
191 }
192 } // namespace OHOS
193