• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2023 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 <gmock/gmock.h>
17 #include <gtest/gtest.h>
18 
19 #define private public
20 #include "module_ipc/svc_restore_deps_manager.h"
21 
22 namespace OHOS::FileManagement::Backup {
23 using namespace std;
24 using namespace testing;
25 
26 namespace {
27 const string BUNDLE_NAME = "com.example.app";
28 } // namespace
29 
30 class SvcRestoreDepsManagerTest : public testing::Test {
31 public:
SetUpTestCase(void)32     static void SetUpTestCase(void) {};
TearDownTestCase()33     static void TearDownTestCase() {};
SetUp()34     void SetUp() {};
TearDown()35     void TearDown() {};
36 };
37 
ClearCache()38 static void ClearCache()
39 {
40     SvcRestoreDepsManager::GetInstance().depsMap_.clear();
41     SvcRestoreDepsManager::GetInstance().allBundles_.clear();
42     SvcRestoreDepsManager::GetInstance().toRestoreBundleMap_.clear();
43     SvcRestoreDepsManager::GetInstance().restoredBundles_.clear();
44 }
45 
IsEqual(const vector<string> & lf,const vector<string> & rh)46 static bool IsEqual(const vector<string> &lf, const vector<string> &rh)
47 {
48     if (lf.size() != rh.size()) {
49         return false;
50     }
51     for (auto i = 0; i < lf.size(); ++i) {
52         if (lf.at(i) != rh.at(i)) {
53             return false;
54         }
55     }
56     return true;
57 }
58 
59 /**
60  * @tc.number: SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0100
61  * @tc.name: SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0100
62  * @tc.desc: 测试 GetRestoreBundleNames 获取应用恢复列表接口调用成功和失败
63  * @tc.size: MEDIUM
64  * @tc.type: FUNC
65  * @tc.level Level 1
66  * @tc.require: I6F3GV
67  */
68 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0100, testing::ext::TestSize.Level1)
69 {
70     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0100";
71     vector<BJsonEntityCaps::BundleInfo> bundleInfos1 {};
72     RestoreTypeEnum restoreType = RESTORE_DATA_WAIT_SEND;
73     auto bundleNames = SvcRestoreDepsManager::GetInstance().GetRestoreBundleNames(bundleInfos1, restoreType);
74     EXPECT_EQ(bundleNames.size(), 0);
75     ClearCache();
76     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0100";
77 }
78 
79 /**
80  * @tc.number: SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0200
81  * @tc.name: SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0200
82  * @tc.desc: 测试 GetRestoreBundleNames 获取应用恢复列表接口调用成功和失败
83  * @tc.size: MEDIUM
84  * @tc.type: FUNC
85  * @tc.level Level 1
86  * @tc.require: I6F3GV
87  */
88 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0200, testing::ext::TestSize.Level1)
89 {
90     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0200";
91     BJsonEntityCaps::BundleInfo info1 = {.name = "com.example.app1",
92                                          .versionCode = 1000000,
93                                          .spaceOccupied = 0,
94                                          .versionName = "1.0.0",
95                                          .allToBackup = false,
96                                          .fullBackupOnly = false,
97                                          .extensionName = "",
98                                          .restoreDeps = ""};
99     BJsonEntityCaps::BundleInfo info2 = {.name = "com.example.app2",
100                                          .versionCode = 1000000,
101                                          .spaceOccupied = 0,
102                                          .versionName = "1.0.0",
103                                          .allToBackup = false,
104                                          .fullBackupOnly = false,
105                                          .extensionName = "",
106                                          .restoreDeps = "com.example.app1"};
107     vector<BJsonEntityCaps::BundleInfo> bundleInfos {info1, info2};
108     RestoreTypeEnum restoreType = RESTORE_DATA_WAIT_SEND;
109     auto bundleNames = SvcRestoreDepsManager::GetInstance().GetRestoreBundleNames(bundleInfos, restoreType);
110     EXPECT_EQ(bundleNames.size(), 2);
111     EXPECT_TRUE(SvcRestoreDepsManager::GetInstance().IsAllBundlesRestored());
112     ClearCache();
113     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0200";
114 }
115 
116 /**
117  * @tc.number: SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0300
118  * @tc.name: SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0300
119  * @tc.desc: 测试 GetRestoreBundleNames 获取应用恢复列表接口调用成功和失败
120  * @tc.size: MEDIUM
121  * @tc.type: FUNC
122  * @tc.level Level 1
123  * @tc.require: I6F3GV
124  */
125 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0300, testing::ext::TestSize.Level1)
126 {
127     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0300";
128     BJsonEntityCaps::BundleInfo info = {.name = BUNDLE_NAME,
129                                         .versionCode = 1000000,
130                                         .versionName = "1.0.0",
131                                         .spaceOccupied = 0,
132                                         .allToBackup = false,
133                                         .fullBackupOnly = false,
134                                         .extensionName = "",
135                                         .restoreDeps = "com.example.app1"};
136     vector<BJsonEntityCaps::BundleInfo> bundleInfos {info};
137     RestoreTypeEnum restoreType = RESTORE_DATA_WAIT_SEND;
138     vector<string> depList = {};
139     SvcRestoreDepsManager::GetInstance().depsMap_.emplace(make_pair(BUNDLE_NAME, depList));
140     SvcRestoreDepsManager::GetInstance().restoredBundles_.insert("com.example.app1");
141     auto bundleNames = SvcRestoreDepsManager::GetInstance().GetRestoreBundleNames(bundleInfos, restoreType);
142     EXPECT_EQ(bundleNames.size(), 1);
143     EXPECT_TRUE(SvcRestoreDepsManager::GetInstance().IsAllBundlesRestored());
144     ClearCache();
145     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_GetRestoreBundleNames_0300";
146 }
147 
148 /**
149  * @tc.number: SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0100
150  * @tc.name: SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0100
151  * @tc.desc: 测试 GetRestoreBundleMap 需要恢复的应用列表接口调用成功和失败
152  * @tc.size: MEDIUM
153  * @tc.type: FUNC
154  * @tc.level Level 1
155  * @tc.require: I6F3GV
156  */
157 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0100, testing::ext::TestSize.Level1)
158 {
159     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0100";
160     auto map = SvcRestoreDepsManager::GetInstance().GetRestoreBundleMap();
161     EXPECT_EQ(map.size(), 0);
162     ClearCache();
163     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0100";
164 }
165 
166 /**
167  * @tc.number: SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0200
168  * @tc.name: SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0200
169  * @tc.desc: 测试 GetRestoreBundleMap 需要恢复的应用列表接口调用成功和失败
170  * @tc.size: MEDIUM
171  * @tc.type: FUNC
172  * @tc.level Level 1
173  * @tc.require: I6F3GV
174  */
175 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0200, testing::ext::TestSize.Level1)
176 {
177     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0200";
178     SvcRestoreDepsManager::RestoreInfo info = {.restoreType_ = RESTORE_DATA_WAIT_SEND, .fileNames_ = {""}};
179     SvcRestoreDepsManager::GetInstance().toRestoreBundleMap_.emplace(make_pair(BUNDLE_NAME, info));
180     vector<string> depList = {};
181     SvcRestoreDepsManager::GetInstance().depsMap_.emplace(make_pair(BUNDLE_NAME, depList));
182     auto map = SvcRestoreDepsManager::GetInstance().GetRestoreBundleMap();
183     EXPECT_EQ(map.size(), 1);
184     ClearCache();
185     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0200";
186 }
187 
188 /**
189  * @tc.number: SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0300
190  * @tc.name: SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0300
191  * @tc.desc: 测试 GetRestoreBundleMap 需要恢复的应用列表接口调用成功和失败
192  * @tc.size: MEDIUM
193  * @tc.type: FUNC
194  * @tc.level Level 1
195  * @tc.require: I6F3GV
196  */
197 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0300, testing::ext::TestSize.Level1)
198 {
199     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0300";
200     SvcRestoreDepsManager::RestoreInfo info = {.restoreType_ = RESTORE_DATA_WAIT_SEND, .fileNames_ = {""}};
201     SvcRestoreDepsManager::GetInstance().toRestoreBundleMap_.emplace(make_pair(BUNDLE_NAME, info));
202     vector<string> depList = {"com.example.app1"};
203     SvcRestoreDepsManager::GetInstance().depsMap_.emplace(make_pair(BUNDLE_NAME, depList));
204     auto map = SvcRestoreDepsManager::GetInstance().GetRestoreBundleMap();
205     EXPECT_EQ(map.size(), 0);
206     ClearCache();
207     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_GetRestoreBundleMap_0300";
208 }
209 
210 /**
211  * @tc.number: SUB_SvcRestoreDepsManager_AddRestoredBundles_0100
212  * @tc.name: SUB_SvcRestoreDepsManager_AddRestoredBundles_0100
213  * @tc.desc: 测试 AddRestoredBundles 追加已经恢复完成的应用接口调用成功和失败
214  * @tc.size: MEDIUM
215  * @tc.type: FUNC
216  * @tc.level Level 1
217  * @tc.require: I6F3GV
218  */
219 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_AddRestoredBundles_0100, testing::ext::TestSize.Level1)
220 {
221     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_AddRestoredBundles_0100";
222     SvcRestoreDepsManager::GetInstance().AddRestoredBundles("");
223     EXPECT_EQ(SvcRestoreDepsManager::GetInstance().restoredBundles_.size(), 1);
224     ClearCache();
225     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_AddRestoredBundles_0100";
226 }
227 
228 /**
229  * @tc.number: SUB_SvcRestoreDepsManager_AddRestoredBundles_0200
230  * @tc.name: SUB_SvcRestoreDepsManager_AddRestoredBundles_0200
231  * @tc.desc: 测试 AddRestoredBundles 追加已经恢复完成的应用接口调用成功和失败
232  * @tc.size: MEDIUM
233  * @tc.type: FUNC
234  * @tc.level Level 1
235  * @tc.require: I6F3GV
236  */
237 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_AddRestoredBundles_0200, testing::ext::TestSize.Level1)
238 {
239     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_AddRestoredBundles_0200";
240     SvcRestoreDepsManager::GetInstance().AddRestoredBundles(BUNDLE_NAME);
241     EXPECT_EQ(SvcRestoreDepsManager::GetInstance().restoredBundles_.size(), 1);
242     ClearCache();
243     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_AddRestoredBundles_0200";
244 }
245 
246 /**
247  * @tc.number: SUB_SvcRestoreDepsManager_GetAllBundles_0100
248  * @tc.name: SUB_SvcRestoreDepsManager_GetAllBundles_0100
249  * @tc.desc: 测试 GetAllBundles 追加已经恢复完成的应用接口调用成功和失败
250  * @tc.size: MEDIUM
251  * @tc.type: FUNC
252  * @tc.level Level 1
253  * @tc.require: I6F3GV
254  */
255 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_GetAllBundles_0100, testing::ext::TestSize.Level1)
256 {
257     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_GetAllBundles_0100";
258     auto allBundles = SvcRestoreDepsManager::GetInstance().GetAllBundles();
259     EXPECT_EQ(allBundles.size(), 0);
260     ClearCache();
261     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_GetAllBundles_0100";
262 }
263 
264 /**
265  * @tc.number: SUB_SvcRestoreDepsManager_GetAllBundles_0200
266  * @tc.name: SUB_SvcRestoreDepsManager_GetAllBundles_0200
267  * @tc.desc: 测试 GetAllBundles 追加已经恢复完成的应用接口调用成功和失败
268  * @tc.size: MEDIUM
269  * @tc.type: FUNC
270  * @tc.level Level 1
271  * @tc.require: I6F3GV
272  */
273 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_GetAllBundles_0200, testing::ext::TestSize.Level1)
274 {
275     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_GetAllBundles_0200";
276     BJsonEntityCaps::BundleInfo info = {.name = BUNDLE_NAME,
277                                         .versionCode = 1000000,
278                                         .versionName = "1.0.0",
279                                         .spaceOccupied = 0,
280                                         .allToBackup = false,
281                                         .fullBackupOnly = false,
282                                         .extensionName = "",
283                                         .restoreDeps = ""};
284     SvcRestoreDepsManager::GetInstance().allBundles_.emplace_back(info);
285     auto allBundles = SvcRestoreDepsManager::GetInstance().GetAllBundles();
286     EXPECT_EQ(allBundles.size(), 1);
287     ClearCache();
288     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_GetAllBundles_0200";
289 }
290 
291 /**
292  * @tc.number: SUB_SvcRestoreDepsManager_IsAllBundlesRestored_0100
293  * @tc.name: SUB_SvcRestoreDepsManager_IsAllBundlesRestored_0100
294  * @tc.desc: 测试 IsAllBundlesRestored 获取所有应用列表接口调用成功和失败
295  * @tc.size: MEDIUM
296  * @tc.type: FUNC
297  * @tc.level Level 1
298  * @tc.require: I6F3GV
299  */
300 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_IsAllBundlesRestored_0100, testing::ext::TestSize.Level1)
301 {
302     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_IsAllBundlesRestored_0100";
303     bool ret = SvcRestoreDepsManager::GetInstance().IsAllBundlesRestored();
304     EXPECT_TRUE(ret);
305     ClearCache();
306     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_IsAllBundlesRestored_0100";
307 }
308 
309 /**
310  * @tc.number: SUB_SvcRestoreDepsManager_IsAllBundlesRestored_0200
311  * @tc.name: SUB_SvcRestoreDepsManager_IsAllBundlesRestored_0200
312  * @tc.desc: 测试 IsAllBundlesRestored 获取所有应用列表接口调用成功和失败
313  * @tc.size: MEDIUM
314  * @tc.type: FUNC
315  * @tc.level Level 1
316  * @tc.require: I6F3GV
317  */
318 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_IsAllBundlesRestored_0200, testing::ext::TestSize.Level1)
319 {
320     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_IsAllBundlesRestored_0200";
321     SvcRestoreDepsManager::RestoreInfo info = {.restoreType_ = RESTORE_DATA_WAIT_SEND, {""}};
322     SvcRestoreDepsManager::GetInstance().toRestoreBundleMap_.emplace(make_pair(BUNDLE_NAME, info));
323     bool ret = SvcRestoreDepsManager::GetInstance().IsAllBundlesRestored();
324     EXPECT_FALSE(ret);
325     ClearCache();
326     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_IsAllBundlesRestored_0200";
327 }
328 
329 /**
330  * @tc.number: SUB_SvcRestoreDepsManager_UpdateToRestoreBundleMap_0100
331  * @tc.name: SUB_SvcRestoreDepsManager_UpdateToRestoreBundleMap_0100
332  * @tc.desc: 测试 UpdateToRestoreBundleMap 更新需要恢复的应用列表接口调用成功和失败
333  * @tc.size: MEDIUM
334  * @tc.type: FUNC
335  * @tc.level Level 1
336  * @tc.require: I6F3GV
337  */
338 HWTEST_F(SvcRestoreDepsManagerTest,
339          SUB_SvcRestoreDepsManager_UpdateToRestoreBundleMap_0100,
340          testing::ext::TestSize.Level1)
341 {
342     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_UpdateToRestoreBundleMap_0100";
343     SvcRestoreDepsManager::GetInstance().UpdateToRestoreBundleMap("", "");
344     EXPECT_TRUE(SvcRestoreDepsManager::GetInstance().IsAllBundlesRestored());
345     ClearCache();
346     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_UpdateToRestoreBundleMap_0100";
347 }
348 
349 /**
350  * @tc.number: SUB_SvcRestoreDepsManager_UpdateToRestoreBundleMap_0200
351  * @tc.name: SUB_SvcRestoreDepsManager_UpdateToRestoreBundleMap_0200
352  * @tc.desc: 测试 UpdateToRestoreBundleMap 更新需要恢复的应用列表接口调用成功和失败
353  * @tc.size: MEDIUM
354  * @tc.type: FUNC
355  * @tc.level Level 1
356  * @tc.require: I6F3GV
357  */
358 HWTEST_F(SvcRestoreDepsManagerTest,
359          SUB_SvcRestoreDepsManager_UpdateToRestoreBundleMap_0200,
360          testing::ext::TestSize.Level1)
361 {
362     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_UpdateToRestoreBundleMap_0200";
363     SvcRestoreDepsManager::RestoreInfo info = {.restoreType_ = RESTORE_DATA_WAIT_SEND, {""}};
364     SvcRestoreDepsManager::GetInstance().toRestoreBundleMap_.emplace(make_pair(BUNDLE_NAME, info));
365     SvcRestoreDepsManager::GetInstance().UpdateToRestoreBundleMap(BUNDLE_NAME, "1.txt");
366     auto it = SvcRestoreDepsManager::GetInstance().toRestoreBundleMap_.find(BUNDLE_NAME);
367     bool ret = (it != SvcRestoreDepsManager::GetInstance().toRestoreBundleMap_.end());
368     EXPECT_TRUE(ret);
369     if (ret) {
370         EXPECT_EQ(it->second.fileNames_.size(), 2);
371     }
372     ClearCache();
373     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_UpdateToRestoreBundleMap_0200";
374 }
375 
376 /**
377  * @tc.number: SUB_SvcRestoreDepsManager_BuildDepsMap_0100
378  * @tc.name: SUB_SvcRestoreDepsManager_BuildDepsMap_0100
379  * @tc.desc: 测试 BuildDepsMap 更新需要恢复的应用列表接口调用成功和失败
380  * @tc.size: MEDIUM
381  * @tc.type: FUNC
382  * @tc.level Level 1
383  * @tc.require: I6F3GV
384  */
385 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_BuildDepsMap_0100, testing::ext::TestSize.Level1)
386 {
387     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_BuildDepsMap_0100";
388     vector<BJsonEntityCaps::BundleInfo> bundleInfos {};
389     SvcRestoreDepsManager::GetInstance().BuildDepsMap(bundleInfos);
390     EXPECT_EQ(SvcRestoreDepsManager::GetInstance().allBundles_.size(), 0);
391     EXPECT_EQ(SvcRestoreDepsManager::GetInstance().depsMap_.size(), 0);
392     ClearCache();
393     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_BuildDepsMap_0100";
394 }
395 
396 /**
397  * @tc.number: SUB_SvcRestoreDepsManager_BuildDepsMap_0200
398  * @tc.name: SUB_SvcRestoreDepsManager_BuildDepsMap_0200
399  * @tc.desc: 测试 BuildDepsMap 更新需要恢复的应用列表接口调用成功和失败
400  * @tc.size: MEDIUM
401  * @tc.type: FUNC
402  * @tc.level Level 1
403  * @tc.require: I6F3GV
404  */
405 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_BuildDepsMap_0200, testing::ext::TestSize.Level1)
406 {
407     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_BuildDepsMap_0200";
408     BJsonEntityCaps::BundleInfo info1 = {.name = "com.example.app1",
409                                          .versionCode = 1000000,
410                                          .versionName = "1.0.0",
411                                          .spaceOccupied = 0,
412                                          .allToBackup = false,
413                                          .fullBackupOnly = false,
414                                          .extensionName = "",
415                                          .restoreDeps = ""};
416     BJsonEntityCaps::BundleInfo info2 = {.name = "com.example.app2",
417                                          .versionCode = 1000000,
418                                          .versionName = "1.0.0",
419                                          .spaceOccupied = 0,
420                                          .allToBackup = false,
421                                          .fullBackupOnly = false,
422                                          .extensionName = "",
423                                          .restoreDeps = "com.example.app1"};
424     BJsonEntityCaps::BundleInfo info3 = {.name = "com.example.app3",
425                                          .versionCode = 1000000,
426                                          .versionName = "1.0.0",
427                                          .spaceOccupied = 0,
428                                          .allToBackup = false,
429                                          .fullBackupOnly = false,
430                                          .extensionName = "",
431                                          .restoreDeps = "com.example.app1,com.example.app2"};
432     vector<BJsonEntityCaps::BundleInfo> bundleInfos = {info1, info2, info3};
433     SvcRestoreDepsManager::GetInstance().BuildDepsMap(bundleInfos);
434     EXPECT_EQ(SvcRestoreDepsManager::GetInstance().allBundles_.size(), 3);
435     EXPECT_EQ(SvcRestoreDepsManager::GetInstance().depsMap_.size(), 3);
436     ClearCache();
437     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_BuildDepsMap_0200";
438 }
439 
440 /**
441  * @tc.number: SUB_SvcRestoreDepsManager_BuildDepsMap_0300
442  * @tc.name: SUB_SvcRestoreDepsManager_BuildDepsMap_0300
443  * @tc.desc: 测试 BuildDepsMap 更新需要恢复的应用列表接口调用成功和失败
444  * @tc.size: MEDIUM
445  * @tc.type: FUNC
446  * @tc.level Level 1
447  * @tc.require: I6F3GV
448  */
449 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_BuildDepsMap_0300, testing::ext::TestSize.Level1)
450 {
451     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_BuildDepsMap_0300";
452     BJsonEntityCaps::BundleInfo info = {.name = BUNDLE_NAME,
453                                         .versionCode = 1000000,
454                                         .versionName = "1.0.0",
455                                         .spaceOccupied = 0,
456                                         .allToBackup = false,
457                                         .fullBackupOnly = false,
458                                         .extensionName = "",
459                                         .restoreDeps = ""};
460     vector<BJsonEntityCaps::BundleInfo> bundleInfos = {info};
461     vector<string> depList = {""};
462     SvcRestoreDepsManager::GetInstance().depsMap_.emplace(make_pair(BUNDLE_NAME, depList));
463     SvcRestoreDepsManager::GetInstance().BuildDepsMap(bundleInfos);
464     EXPECT_EQ(SvcRestoreDepsManager::GetInstance().allBundles_.size(), 0);
465     EXPECT_EQ(SvcRestoreDepsManager::GetInstance().depsMap_.size(), 1);
466     ClearCache();
467     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_BuildDepsMap_0300";
468 }
469 
470 /**
471  * @tc.number: SUB_SvcRestoreDepsManager_SplitString_0100
472  * @tc.name: SUB_SvcRestoreDepsManager_SplitString_0100
473  * @tc.desc: 测试 SplitString 更新需要恢复的应用列表接口调用成功和失败
474  * @tc.size: MEDIUM
475  * @tc.type: FUNC
476  * @tc.level Level 1
477  * @tc.require: I6F3GV
478  */
479 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_SplitString_0100, testing::ext::TestSize.Level1)
480 {
481     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_SplitString_0100";
482     vector<string> dst = SvcRestoreDepsManager::GetInstance().SplitString("", "");
483     EXPECT_TRUE(dst.empty());
484     ClearCache();
485     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_SplitString_0100";
486 }
487 
488 /**
489  * @tc.number: SUB_SvcRestoreDepsManager_SplitString_0200
490  * @tc.name: SUB_SvcRestoreDepsManager_SplitString_0200
491  * @tc.desc: 测试 SplitString 更新需要恢复的应用列表接口调用成功和失败
492  * @tc.size: MEDIUM
493  * @tc.type: FUNC
494  * @tc.level Level 1
495  * @tc.require: I6F3GV
496  */
497 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_SplitString_0200, testing::ext::TestSize.Level1)
498 {
499     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_SplitString_0200";
500     auto dst = SvcRestoreDepsManager::GetInstance().SplitString("com.example.app1,com.example.app2", ",");
501     vector<string> bundles = {"com.example.app1", "com.example.app2"};
502     EXPECT_TRUE(IsEqual(dst, bundles));
503     ClearCache();
504     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_SplitString_0200";
505 }
506 
507 /**
508  * @tc.number: SUB_SvcRestoreDepsManager_IsAllDepsRestored_0100
509  * @tc.name: SUB_SvcRestoreDepsManager_IsAllDepsRestored_0100
510  * @tc.desc: 测试 IsAllDepsRestored 更新需要恢复的应用列表接口调用成功和失败
511  * @tc.size: MEDIUM
512  * @tc.type: FUNC
513  * @tc.level Level 1
514  * @tc.require: I6F3GV
515  */
516 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_IsAllDepsRestored_0100, testing::ext::TestSize.Level1)
517 {
518     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_IsAllDepsRestored_0100";
519     bool ret = SvcRestoreDepsManager::GetInstance().IsAllDepsRestored("");
520     EXPECT_FALSE(ret);
521     ClearCache();
522     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_IsAllDepsRestored_0100";
523 }
524 
525 /**
526  * @tc.number: SUB_SvcRestoreDepsManager_IsAllDepsRestored_0200
527  * @tc.name: SUB_SvcRestoreDepsManager_IsAllDepsRestored_0200
528  * @tc.desc: 测试 IsAllDepsRestored 更新需要恢复的应用列表接口调用成功和失败
529  * @tc.size: MEDIUM
530  * @tc.type: FUNC
531  * @tc.level Level 1
532  * @tc.require: I6F3GV
533  */
534 HWTEST_F(SvcRestoreDepsManagerTest, SUB_SvcRestoreDepsManager_IsAllDepsRestored_0200, testing::ext::TestSize.Level1)
535 {
536     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-begin SUB_SvcRestoreDepsManager_IsAllDepsRestored_0200";
537     vector<string> depList = {};
538     SvcRestoreDepsManager::GetInstance().depsMap_.emplace(make_pair(BUNDLE_NAME, depList));
539     // SvcRestoreDepsManager::GetInstance().restoredBundles_.insert("com.example.app1");
540     bool ret = SvcRestoreDepsManager::GetInstance().IsAllDepsRestored(BUNDLE_NAME);
541     EXPECT_TRUE(ret);
542     ClearCache();
543     GTEST_LOG_(INFO) << "SvcRestoreDepsManagerTest-end SUB_SvcRestoreDepsManager_IsAllDepsRestored_0200";
544 }
545 
546 } // namespace OHOS::FileManagement::Backup