From 7e4d31d13e202923c50957fdd2b2a66013c6c836 Mon Sep 17 00:00:00 2001 From: wangpggg Date: Wed, 30 Oct 2024 15:14:41 +0800 Subject: [PATCH] add ut, add samgr depends Signed-off-by: wangpeng --- frameworks/native/backup_ext/BUILD.gn | 1 + interfaces/kits/js/BUILD.gn | 1 + .../module_ipc/service_other_test.cpp | 6 + .../backup_sa/module_ipc/sub_service_test.cpp | 436 ++++++++++++++++++ 4 files changed, 444 insertions(+) diff --git a/frameworks/native/backup_ext/BUILD.gn b/frameworks/native/backup_ext/BUILD.gn index 76ae7753d..77549cf68 100644 --- a/frameworks/native/backup_ext/BUILD.gn +++ b/frameworks/native/backup_ext/BUILD.gn @@ -75,6 +75,7 @@ ohos_shared_library("backup_extension_ability_native") { "hitrace:hitrace_meter", "ipc:ipc_core", "napi:ace_napi", + "samgr:samgr_proxy", ] cflags_cc = [ diff --git a/interfaces/kits/js/BUILD.gn b/interfaces/kits/js/BUILD.gn index 884d283ff..6e2e69ea2 100644 --- a/interfaces/kits/js/BUILD.gn +++ b/interfaces/kits/js/BUILD.gn @@ -176,5 +176,6 @@ ohos_shared_library("backup") { "hilog:libhilog", "ipc:ipc_core", "napi:ace_napi", + "samgr:samgr_proxy", ] } diff --git a/tests/unittests/backup_sa/module_ipc/service_other_test.cpp b/tests/unittests/backup_sa/module_ipc/service_other_test.cpp index 4b6357127..c2b25781f 100644 --- a/tests/unittests/backup_sa/module_ipc/service_other_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/service_other_test.cpp @@ -17,6 +17,7 @@ #include #include "accesstoken_kit_mock.h" +#include "app_gallery_dispose_proxy_mock.h" #include "backup_para_mock.h" #include "bms_adapter_mock.h" #include "b_json_clear_data_config_mock.h" @@ -151,6 +152,7 @@ public: static inline shared_ptr ability = nullptr; static inline shared_ptr depManager = nullptr; static inline shared_ptr notify = nullptr; + static inline shared_ptr gallery = nullptr; }; void ServiceTest::SetUpTestCase(void) @@ -187,6 +189,8 @@ void ServiceTest::SetUpTestCase(void) SvcRestoreDepsManagerMock::manager = depManager; notify = make_shared(); NotifyWorkServiceMock::notify = notify; + gallery = make_shared(); + AppGalleryDisposeProxyMock::proxy = gallery; } void ServiceTest::TearDownTestCase() @@ -223,6 +227,8 @@ void ServiceTest::TearDownTestCase() depManager = nullptr; NotifyWorkServiceMock::notify = nullptr; notify = nullptr; + AppGalleryDisposeProxyMock::proxy = nullptr; + gallery = nullptr; } #include "sub_service_test.cpp" diff --git a/tests/unittests/backup_sa/module_ipc/sub_service_test.cpp b/tests/unittests/backup_sa/module_ipc/sub_service_test.cpp index 27ac86b38..c83e50594 100644 --- a/tests/unittests/backup_sa/module_ipc/sub_service_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/sub_service_test.cpp @@ -527,4 +527,440 @@ HWTEST_F(ServiceTest, SUB_Service_ExtStart_0000, TestSize.Level1) GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by ExtStart."; } GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_ExtStart_0000"; +} + +/** + * @tc.number: SUB_Service_ExtStart_0100 + * @tc.name: SUB_Service_ExtStart_0100 + * @tc.desc: 测试 ExtStart 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issueIAKC3I + */ +HWTEST_F(ServiceTest, SUB_Service_ExtStart_0100, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_ExtStart_0100"; + try { + string callName; + EXPECT_CALL(*saUtils, IsSABundleName(_)).WillOnce(Return(false)); + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::BACKUP)); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(connect)); + EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); + EXPECT_CALL(*session, GetClearDataFlag(_)).WillOnce(Return(false)); + EXPECT_CALL(*svcProxy, HandleBackup(_)).WillOnce(Return(BError(BError::Codes::OK).GetCode())); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, BackupOnBundleStarted(_, _)).WillOnce(Return()); + service->ExtStart(callName); + EXPECT_TRUE(true); + + EXPECT_CALL(*saUtils, IsSABundleName(_)).WillOnce(Return(false)); + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::BACKUP)) + .WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)) + .WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(connect)); + EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); + EXPECT_CALL(*session, GetClearDataFlag(_)).WillOnce(Return(false)); + EXPECT_CALL(*svcProxy, HandleBackup(_)).WillOnce(Return(BError(BError::Codes::SA_INVAL_ARG).GetCode())); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, BackupOnBundleStarted(_, _)).WillOnce(Return()); + EXPECT_CALL(*cdConfig, DeleteClearBundleRecord(_)).WillOnce(Return(true)); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(false)); + service->ExtStart(callName); + EXPECT_TRUE(true); + + set fileNameVec; + EXPECT_CALL(*saUtils, IsSABundleName(_)).WillOnce(Return(false)); + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::RESTORE)); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(connect)); + EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); + EXPECT_CALL(*session, GetClearDataFlag(_)).WillOnce(Return(false)); + EXPECT_CALL(*svcProxy, HandleRestore(_)).WillOnce(Return(BError(BError::Codes::SA_INVAL_ARG).GetCode())); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, RestoreOnBundleStarted(_, _)).WillOnce(Return()); + EXPECT_CALL(*session, GetExtFileNameRequest(_)).WillOnce(Return(fileNameVec)); + service->ExtStart(callName); + EXPECT_TRUE(true); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by ExtStart."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_ExtStart_0100"; +} + +/** + * @tc.number: SUB_Service_Dump_0000 + * @tc.name: SUB_Service_Dump_0000 + * @tc.desc: 测试 Dump 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issueIAKC3I + */ +HWTEST_F(ServiceTest, SUB_Service_Dump_0000, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_Dump_0000"; + try { + vector args; + auto ret = service->Dump(-1, args); + EXPECT_EQ(ret, -1); + + ret = service->Dump(0, args); + EXPECT_EQ(ret, 0); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by Dump."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_Dump_0000"; +} + +/** + * @tc.number: SUB_Service_ReportOnExtConnectFailed_0000 + * @tc.name: SUB_Service_ReportOnExtConnectFailed_0000 + * @tc.desc: 测试 ReportOnExtConnectFailed 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issueIAKC3I + */ +HWTEST_F(ServiceTest, SUB_Service_ReportOnExtConnectFailed_0000, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_ReportOnExtConnectFailed_0000"; + try { + string bundleName; + auto session_ = service->session_; + service->session_ = nullptr; + service->ReportOnExtConnectFailed(IServiceReverse::Scenario::UNDEFINED, bundleName, 0); + service->session_ = session_; + EXPECT_TRUE(true); + + service->ReportOnExtConnectFailed(IServiceReverse::Scenario::UNDEFINED, bundleName, 0); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetIsIncrementalBackup()).WillOnce(Return(true)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, IncrementalBackupOnBundleStarted(_, _)).WillOnce(Return()); + service->ReportOnExtConnectFailed(IServiceReverse::Scenario::BACKUP, bundleName, 0); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetIsIncrementalBackup()).WillOnce(Return(false)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, BackupOnBundleStarted(_, _)).WillOnce(Return()); + service->ReportOnExtConnectFailed(IServiceReverse::Scenario::BACKUP, bundleName, 0); + EXPECT_TRUE(true); + + EXPECT_CALL(*param, GetBackupOverrideIncrementalRestore()).WillOnce(Return(true)); + EXPECT_CALL(*session, ValidRestoreDataType(_)).WillOnce(Return(true)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, IncrementalRestoreOnBundleStarted(_, _)).WillOnce(Return()); + EXPECT_CALL(*gallery, EndRestore(_)).WillOnce(Return(DisposeErr::OK)); + service->ReportOnExtConnectFailed(IServiceReverse::Scenario::RESTORE, bundleName, 0); + EXPECT_TRUE(true); + + EXPECT_CALL(*param, GetBackupOverrideIncrementalRestore()).WillOnce(Return(true)); + EXPECT_CALL(*session, ValidRestoreDataType(_)).WillOnce(Return(false)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, RestoreOnBundleStarted(_, _)).WillOnce(Return()); + EXPECT_CALL(*gallery, EndRestore(_)).WillOnce(Return(DisposeErr::OK)); + service->ReportOnExtConnectFailed(IServiceReverse::Scenario::RESTORE, bundleName, 0); + EXPECT_TRUE(true); + + EXPECT_CALL(*param, GetBackupOverrideIncrementalRestore()).WillOnce(Return(false)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, RestoreOnBundleStarted(_, _)).WillOnce(Return()); + EXPECT_CALL(*gallery, EndRestore(_)).WillOnce(Return(DisposeErr::OK)); + service->ReportOnExtConnectFailed(IServiceReverse::Scenario::RESTORE, bundleName, 0); + EXPECT_TRUE(true); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by ReportOnExtConnectFailed."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_ReportOnExtConnectFailed_0000"; +} + +/** + * @tc.number: SUB_Service_ExtConnectFailed_0000 + * @tc.name: SUB_Service_ExtConnectFailed_0000 + * @tc.desc: 测试 ExtConnectFailed 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issueIAKC3I + */ +HWTEST_F(ServiceTest, SUB_Service_ExtConnectFailed_0000, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_ExtConnectFailed_0000"; + try { + string bundleName; + service->isOccupyingSession_ = false; + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)) + .WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)) + .WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*cdConfig, DeleteClearBundleRecord(_)).WillOnce(Return(true)); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(false)); + service->ExtConnectFailed(bundleName, 0); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::BACKUP)) + .WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)) + .WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*param, GetBackupDebugOverrideAccount()) + .WillOnce(Return(make_pair(true, DEBUG_ID + 1))); + + EXPECT_CALL(*session, GetIsIncrementalBackup()).WillOnce(Return(false)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, BackupOnBundleStarted(_, _)).WillOnce(Return()); + + EXPECT_CALL(*cdConfig, DeleteClearBundleRecord(_)).WillOnce(Return(true)); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(false)); + service->ExtConnectFailed(bundleName, 0); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::RESTORE)) + .WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)) + .WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*param, GetBackupDebugOverrideAccount()) + .WillOnce(Return(make_pair(true, DEBUG_ID + 1))); + EXPECT_CALL(*param, GetBackupOverrideIncrementalRestore()).WillOnce(Return(false)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, RestoreOnBundleStarted(_, _)).WillOnce(Return()); + EXPECT_CALL(*gallery, EndRestore(_)).WillOnce(Return(DisposeErr::OK)); + EXPECT_CALL(*cdConfig, DeleteClearBundleRecord(_)).WillOnce(Return(true)); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(false)); + service->ExtConnectFailed(bundleName, 0); + EXPECT_TRUE(true); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by ExtConnectFailed."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_ExtConnectFailed_0000"; +} + +/** + * @tc.number: SUB_Service_NoticeClientFinish_0000 + * @tc.name: SUB_Service_NoticeClientFinish_0000 + * @tc.desc: 测试 NoticeClientFinish 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issueIAKC3I + */ +HWTEST_F(ServiceTest, SUB_Service_NoticeClientFinish_0000, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_NoticeClientFinish_0000"; + try { + string bundleName; + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(false)); + service->NoticeClientFinish(bundleName, 0); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::BACKUP)); + EXPECT_CALL(*session, GetIsIncrementalBackup()).WillOnce(Return(true)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, IncrementalBackupOnBundleFinished(_, _)).WillOnce(Return()); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(false)); + service->NoticeClientFinish(bundleName, 0); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::RESTORE)); + EXPECT_CALL(*param, GetBackupOverrideIncrementalRestore()).WillOnce(Return(true)); + EXPECT_CALL(*session, ValidRestoreDataType(_)).WillOnce(Return(true)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, IncrementalRestoreOnBundleFinished(_, _)).WillOnce(Return()); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(false)); + service->NoticeClientFinish(bundleName, 0); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::BACKUP)); + EXPECT_CALL(*session, GetIsIncrementalBackup()).WillOnce(Return(false)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, BackupOnBundleFinished(_, _)).WillOnce(Return()); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(false)); + service->NoticeClientFinish(bundleName, 0); + EXPECT_TRUE(true); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by NoticeClientFinish."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_NoticeClientFinish_0000"; +} + +/** + * @tc.number: SUB_Service_NoticeClientFinish_0100 + * @tc.name: SUB_Service_NoticeClientFinish_0100 + * @tc.desc: 测试 NoticeClientFinish 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issueIAKC3I + */ +HWTEST_F(ServiceTest, SUB_Service_NoticeClientFinish_0100, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_NoticeClientFinish_0100"; + try { + string bundleName; + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::RESTORE)); + EXPECT_CALL(*param, GetBackupOverrideIncrementalRestore()).WillOnce(Return(true)); + EXPECT_CALL(*session, ValidRestoreDataType(_)).WillOnce(Return(false)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, RestoreOnBundleFinished(_, _)).WillOnce(Return()); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(false)); + service->NoticeClientFinish(bundleName, 0); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::RESTORE)); + EXPECT_CALL(*param, GetBackupOverrideIncrementalRestore()).WillOnce(Return(false)); + EXPECT_CALL(*session, GetServiceReverseProxy()).WillOnce(Return(srProxy)); + EXPECT_CALL(*srProxy, RestoreOnBundleFinished(_, _)).WillOnce(Return()); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(false)); + service->NoticeClientFinish(bundleName, 0); + EXPECT_TRUE(true); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by NoticeClientFinish."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_NoticeClientFinish_0100"; +} + +/** + * @tc.number: SUB_Service_ExtConnectDone_0000 + * @tc.name: SUB_Service_ExtConnectDone_0000 + * @tc.desc: 测试 ExtConnectDone 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issueIAKC3I + */ +HWTEST_F(ServiceTest, SUB_Service_ExtConnectDone_0000, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_ExtConnectDone_0000"; + try { + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*session, GetServiceSchedAction(_)).WillOnce(Return(BConstants::ServiceSchedAction::WAIT)); + EXPECT_CALL(*cdConfig, InsertClearBundleRecord(_)).WillOnce(Return(true)); + service->ExtConnectDone(""); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::BACKUP)); + EXPECT_CALL(*session, GetServiceSchedAction(_)).WillOnce(Return(BConstants::ServiceSchedAction::WAIT)); + EXPECT_CALL(*cdConfig, InsertClearBundleRecord(_)).WillOnce(Return(true)); + EXPECT_CALL(*session, StartExtTimer(_, _)).WillOnce(Return(false)); + service->ExtConnectDone(""); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::RESTORE)); + EXPECT_CALL(*session, GetServiceSchedAction(_)).WillOnce(Return(BConstants::ServiceSchedAction::WAIT)); + EXPECT_CALL(*cdConfig, InsertClearBundleRecord(_)).WillOnce(Return(true)); + EXPECT_CALL(*session, StartFwkTimer(_, _)).WillOnce(Return(false)); + service->ExtConnectDone(""); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*session, GetServiceSchedAction(_)).WillOnce(Return(BConstants::ServiceSchedAction::CLEAN)); + service->ExtConnectDone(""); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*session, GetServiceSchedAction(_)).WillOnce(Return(BConstants::ServiceSchedAction::START)); + EXPECT_CALL(*cdConfig, FindClearBundleRecord(_)).WillOnce(Return(true)); + service->ExtConnectDone(""); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*session, GetServiceSchedAction(_)).WillOnce(Return(BConstants::ServiceSchedAction::START)); + EXPECT_CALL(*cdConfig, FindClearBundleRecord(_)).WillOnce(Return(false)); + EXPECT_CALL(*cdConfig, InsertClearBundleRecord(_)).WillOnce(Return(true)); + service->ExtConnectDone(""); + EXPECT_TRUE(true); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by ExtConnectDone."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_ExtConnectDone_0000"; +} + +/** + * @tc.number: SUB_Service_ClearSessionAndSchedInfo_0000 + * @tc.name: SUB_Service_ClearSessionAndSchedInfo_0000 + * @tc.desc: 测试 ClearSessionAndSchedInfo 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issueIAKC3I + */ +HWTEST_F(ServiceTest, SUB_Service_ClearSessionAndSchedInfo_0000, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_ClearSessionAndSchedInfo_0000"; + try { + string bundleName; + service->isOccupyingSession_ = false; + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*cdConfig, DeleteClearBundleRecord(_)).WillOnce(Return(true)); + service->ClearSessionAndSchedInfo(bundleName); + EXPECT_TRUE(true); + + service->isOccupyingSession_ = true; + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*cdConfig, DeleteClearBundleRecord(_)).WillOnce(Return(true)); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(false)); + service->ClearSessionAndSchedInfo(bundleName); + EXPECT_TRUE(true); + + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + EXPECT_CALL(*cdConfig, DeleteClearBundleRecord(_)).WillOnce(Return(true)); + EXPECT_CALL(*session, IsOnAllBundlesFinished()).WillOnce(Return(true)); + service->ClearSessionAndSchedInfo(bundleName); + EXPECT_TRUE(true); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by ClearSessionAndSchedInfo."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_ClearSessionAndSchedInfo_0000"; +} + +/** + * @tc.number: SUB_Service_HandleRestoreDepsBundle_0000 + * @tc.name: SUB_Service_HandleRestoreDepsBundle_0000 + * @tc.desc: 测试 HandleRestoreDepsBundle 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issueIAKC3I + */ +HWTEST_F(ServiceTest, SUB_Service_HandleRestoreDepsBundle_0000, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_HandleRestoreDepsBundle_0000"; + try { + string bundleName; + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::UNDEFINED)); + service->HandleRestoreDepsBundle(bundleName); + EXPECT_TRUE(true); + + map bundleMap; + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::RESTORE)); + EXPECT_CALL(*depManager, GetRestoreBundleMap()).WillOnce(Return(bundleMap)); + service->HandleRestoreDepsBundle(bundleName); + EXPECT_TRUE(true); + + bundleMap["bundleName"] = {.fileNames_ = {"name"}}; + vector bundleInfos {{.name = "name"}}; + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::RESTORE)); + EXPECT_CALL(*depManager, GetRestoreBundleMap()).WillOnce(Return(bundleMap)); + EXPECT_CALL(*depManager, GetAllBundles()).WillOnce(Return(bundleInfos)); + service->HandleRestoreDepsBundle(bundleName); + EXPECT_TRUE(true); + + bundleInfos.clear(); + bundleInfos = {{.name = "bundleName"}}; + EXPECT_CALL(*session, GetScenario()).WillOnce(Return(IServiceReverse::Scenario::RESTORE)); + EXPECT_CALL(*depManager, GetRestoreBundleMap()).WillOnce(Return(bundleMap)); + EXPECT_CALL(*depManager, GetAllBundles()).WillOnce(Return(bundleInfos)); + service->HandleRestoreDepsBundle(bundleName); + EXPECT_TRUE(true); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by HandleRestoreDepsBundle."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_HandleRestoreDepsBundle_0000"; } \ No newline at end of file -- Gitee