diff --git a/tests/unittests/backup_sa/module_ipc/service_stub_test.cpp b/tests/unittests/backup_sa/module_ipc/service_stub_test.cpp index 25a5ca1789cc2a42328a032f4debc08fc8b0ba8e..3c51a861b2628436ac7a7824d6f5c2ebed39df75 100644 --- a/tests/unittests/backup_sa/module_ipc/service_stub_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/service_stub_test.cpp @@ -1490,4 +1490,113 @@ HWTEST_F(ServiceStubTest, SUB_backup_sa_ServiceStub_CmdGetAppLocalListAndDoIncre } GTEST_LOG_(INFO) << "ServiceStubTest-end SUB_backup_sa_ServiceStub_CmdGetAppLocalListAndDoIncrementalBackup_0100"; } + +/** + * @tc.number: SUB_backup_sa_ServiceStub_CmdStartExtTimer_0100 + * @tc.name: SUB_backup_sa_ServiceStub_CmdStartExtTimer_0100 + * @tc.desc: Test function of CmdStartExtTimer interface for SUCCESS and FAILURE. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6F3GV + */ +HWTEST_F(ServiceStubTest, SUB_backup_sa_ServiceStub_CmdStartExtTimer_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceStubTest-begin SUB_backup_sa_ServiceStub_CmdStartExtTimer_0100"; + try { + MessageParcel data; + MessageParcel reply; + EXPECT_TRUE(service != nullptr); + EXPECT_CALL(*service, StartExtTimer(_)).WillOnce(Return(-1)); + auto err = service->CmdStartExtTimer(data, reply); + EXPECT_EQ(err, BError(BError::Codes::SA_BROKEN_IPC)); + + EXPECT_CALL(*service, StartExtTimer(_)).WillOnce(Return(0)); + EXPECT_CALL(*messageParcelMock, WriteBool(_)).WillOnce(Return(false)); + err = service->CmdStartExtTimer(data, reply); + EXPECT_EQ(err, BError(BError::Codes::SA_BROKEN_IPC)); + + EXPECT_CALL(*service, StartExtTimer(_)).WillOnce(Return(0)); + EXPECT_CALL(*messageParcelMock, WriteBool(_)).WillOnce(Return(true)); + err = service->CmdStartExtTimer(data, reply); + EXPECT_EQ(err, BError(BError::Codes::OK)); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceStubTest-an exception occurred by CmdStartExtTimer."; + } + GTEST_LOG_(INFO) << "ServiceStubTest-end SUB_backup_sa_ServiceStub_CmdStartExtTimer_0100"; +} + +/** + * @tc.number: SUB_backup_sa_ServiceStub_CmdStartFwkTimer_0100 + * @tc.name: SUB_backup_sa_ServiceStub_CmdStartFwkTimer_0100 + * @tc.desc: Test function of CmdStartFwkTimer interface for SUCCESS and FAILURE. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6F3GV + */ +HWTEST_F(ServiceStubTest, SUB_backup_sa_ServiceStub_CmdStartFwkTimer_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceStubTest-begin SUB_backup_sa_ServiceStub_CmdStartFwkTimer_0100"; + try { + MessageParcel data; + MessageParcel reply; + EXPECT_TRUE(service != nullptr); + EXPECT_CALL(*service, StartFwkTimer(_)).WillOnce(Return(-1)); + auto err = service->CmdStartFwkTimer(data, reply); + EXPECT_EQ(err, BError(BError::Codes::SA_BROKEN_IPC)); + + EXPECT_CALL(*service, StartFwkTimer(_)).WillOnce(Return(0)); + EXPECT_CALL(*messageParcelMock, WriteBool(_)).WillOnce(Return(false)); + err = service->CmdStartFwkTimer(data, reply); + EXPECT_EQ(err, BError(BError::Codes::SA_BROKEN_IPC)); + + EXPECT_CALL(*service, StartFwkTimer(_)).WillOnce(Return(0)); + EXPECT_CALL(*messageParcelMock, WriteBool(_)).WillOnce(Return(true)); + err = service->CmdStartFwkTimer(data, reply); + EXPECT_EQ(err, BError(BError::Codes::OK)); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceStubTest-an exception occurred by CmdStartFwkTimer."; + } + GTEST_LOG_(INFO) << "ServiceStubTest-end SUB_backup_sa_ServiceStub_CmdStartFwkTimer_0100"; +} + +/** + * @tc.number: SUB_backup_sa_ServiceStub_CmdReportAppProcessInfo_0100 + * @tc.name: SUB_backup_sa_ServiceStub_CmdReportAppProcessInfo_0100 + * @tc.desc: Test function of CmdReportAppProcessInfo interface for SUCCESS and FAILURE. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6F3GV + */ +HWTEST_F(ServiceStubTest, SUB_backup_sa_ServiceStub_CmdReportAppProcessInfo_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceStubTest-begin SUB_backup_sa_ServiceStub_CmdReportAppProcessInfo_0100"; + try { + MessageParcel data; + MessageParcel reply; + EXPECT_TRUE(service != nullptr); + EXPECT_CALL(*messageParcelMock, ReadString(_)).WillOnce(Return(false)); + auto err = service->CmdReportAppProcessInfo(data, reply); + EXPECT_EQ(err, BError(BError::Codes::SA_INVAL_ARG)); + + EXPECT_CALL(*messageParcelMock, ReadString(_)).WillOnce(Return(true)); + EXPECT_CALL(*messageParcelMock, ReadInt32(_)).WillOnce(Return(false)); + err = service->CmdReportAppProcessInfo(data, reply); + EXPECT_EQ(err, BError(BError::Codes::SA_INVAL_ARG)); + + EXPECT_CALL(*messageParcelMock, ReadString(_)).WillOnce(Return(true)); + EXPECT_CALL(*messageParcelMock, ReadInt32(_)).WillOnce(Return(true)); + EXPECT_CALL(*service, ReportAppProcessInfo(_, _)).WillOnce(Return(0)); + err = service->CmdReportAppProcessInfo(data, reply); + EXPECT_EQ(err, BError(BError::Codes::OK)); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceStubTest-an exception occurred by CmdReportAppProcessInfo."; + } + GTEST_LOG_(INFO) << "ServiceStubTest-end SUB_backup_sa_ServiceStub_CmdReportAppProcessInfo_0100"; +} } // namespace OHOS::FileManagement::Backup \ No newline at end of file diff --git a/tests/unittests/backup_sa/module_ipc/svc_session_manager_ex_test.cpp b/tests/unittests/backup_sa/module_ipc/svc_session_manager_ex_test.cpp index 8bc97f1f703ae2c9935d1708e29c9abbe3bcb4f2..b8e7eac57c892bd61a123615386bbc3715bcb372 100644 --- a/tests/unittests/backup_sa/module_ipc/svc_session_manager_ex_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/svc_session_manager_ex_test.cpp @@ -146,4 +146,155 @@ HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_GetServiceSchedAction_0105 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by GetServiceSchedAction."; } GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_GetServiceSchedAction_0105"; +} + +/** + * @tc.number: SUB_backup_sa_session_CleanAndCheckIfNeedWait_0100 + * @tc.name: SUB_backup_sa_session_CleanAndCheckIfNeedWait_0100 + * @tc.desc: 测试 CleanAndCheckIfNeedWait + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6F3GV + */ +HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_CleanAndCheckIfNeedWait_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_CleanAndCheckIfNeedWait_0100"; + try { + ErrCode err; + std::vector bundleNameList; + bundleNameList.push_back(BUNDLE_NAME); + + sessionManagerPtr_->impl_.clientToken = CLIENT_TOKEN_ID; + sessionManagerPtr_->impl_.backupExtNameMap.clear(); + + auto ret = sessionManagerPtr_->CleanAndCheckIfNeedWait(err, bundleNameList); + EXPECT_FALSE(ret); + + sessionManagerPtr_->impl_.backupExtNameMap.clear(); + sessionManagerPtr_->impl_.backupExtNameMap[BUNDLE_NAME] = {}; + sessionManagerPtr_->impl_.restoreDataType = RestoreTypeEnum::RESTORE_DATA_READDY; + ret = sessionManagerPtr_->CleanAndCheckIfNeedWait(err, bundleNameList); + EXPECT_FALSE(ret); + + sessionManagerPtr_->impl_.backupExtNameMap.clear(); + sessionManagerPtr_->impl_.backupExtNameMap[BUNDLE_NAME] = {}; + sessionManagerPtr_->impl_.restoreDataType = RestoreTypeEnum::RESTORE_DATA_WAIT_SEND; + ret = sessionManagerPtr_->CleanAndCheckIfNeedWait(err, bundleNameList); + EXPECT_FALSE(ret); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by CleanAndCheckIfNeedWait."; + } + GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_CleanAndCheckIfNeedWait_0100"; +} + +/** + * @tc.number: SUB_backup_sa_session_CleanAndCheckIfNeedWait_0200 + * @tc.name: SUB_backup_sa_session_CleanAndCheckIfNeedWait_0200 + * @tc.desc: 测试 CleanAndCheckIfNeedWait + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6F3GV + */ +HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_CleanAndCheckIfNeedWait_0200, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_CleanAndCheckIfNeedWait_0200"; + try { + ErrCode err; + std::vector bundleNameList; + bundleNameList.push_back(BUNDLE_NAME); + + sessionManagerPtr_->impl_.clientToken = CLIENT_TOKEN_ID; + + BackupExtInfo extInfo {}; + extInfo.schedAction = BConstants::ServiceSchedAction::WAIT; + extInfo.backUpConnection = nullptr; + sessionManagerPtr_->impl_.backupExtNameMap.clear(); + sessionManagerPtr_->impl_.backupExtNameMap[BUNDLE_NAME] = extInfo; + auto ret = sessionManagerPtr_->CleanAndCheckIfNeedWait(err, bundleNameList); + EXPECT_FALSE(ret); + + BackupExtInfo extInfo2 {}; + extInfo2.schedAction = BConstants::ServiceSchedAction::RUNNING; + extInfo2.isInPublishFile = true; + extInfo2.backUpConnection = nullptr; + extInfo2.fwkTimerStatus = true; + extInfo2.extTimerStatus = false; + sessionManagerPtr_->impl_.backupExtNameMap.clear(); + sessionManagerPtr_->impl_.backupExtNameMap[BUNDLE_NAME] = extInfo2; + ret = sessionManagerPtr_->CleanAndCheckIfNeedWait(err, bundleNameList); + EXPECT_TRUE(ret); + + BackupExtInfo extInfo3 {}; + extInfo3.schedAction = BConstants::ServiceSchedAction::START; + extInfo3.isInPublishFile = true; + extInfo3.backUpConnection = nullptr; + extInfo3.fwkTimerStatus = true; + extInfo3.extTimerStatus = false; + sessionManagerPtr_->impl_.backupExtNameMap.clear(); + sessionManagerPtr_->impl_.backupExtNameMap[BUNDLE_NAME] = extInfo3; + ret = sessionManagerPtr_->CleanAndCheckIfNeedWait(err, bundleNameList); + EXPECT_FALSE(ret); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by CleanAndCheckIfNeedWait."; + } + GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_CleanAndCheckIfNeedWait_0200"; +} + +/** + * @tc.number: SUB_backup_sa_session_CleanAndCheckIfNeedWait_0300 + * @tc.name: SUB_backup_sa_session_CleanAndCheckIfNeedWait_0300 + * @tc.desc: 测试 CleanAndCheckIfNeedWait + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: I6F3GV + */ +HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_CleanAndCheckIfNeedWait_0300, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_CleanAndCheckIfNeedWait_0300"; + try { + ErrCode err; + std::vector bundleNameList; + bundleNameList.push_back(BUNDLE_NAME); + + sessionManagerPtr_->impl_.clientToken = CLIENT_TOKEN_ID; + + BackupExtInfo extInfo {}; + extInfo.schedAction = BConstants::ServiceSchedAction::WAIT; + extInfo.backUpConnection = sptr(new SvcBackupConnection(nullptr, nullptr, BUNDLE_NAME));; + sessionManagerPtr_->impl_.backupExtNameMap.clear(); + sessionManagerPtr_->impl_.backupExtNameMap[BUNDLE_NAME] = extInfo; + auto ret = sessionManagerPtr_->CleanAndCheckIfNeedWait(err, bundleNameList); + EXPECT_FALSE(ret); + + BackupExtInfo extInfo2 {}; + extInfo2.schedAction = BConstants::ServiceSchedAction::RUNNING; + extInfo2.isInPublishFile = true; + extInfo2.backUpConnection = sptr(new SvcBackupConnection(nullptr, nullptr, BUNDLE_NAME));; + extInfo2.fwkTimerStatus = true; + extInfo2.extTimerStatus = false; + sessionManagerPtr_->impl_.backupExtNameMap.clear(); + sessionManagerPtr_->impl_.backupExtNameMap[BUNDLE_NAME] = extInfo2; + ret = sessionManagerPtr_->CleanAndCheckIfNeedWait(err, bundleNameList); + EXPECT_TRUE(ret); + + BackupExtInfo extInfo3 {}; + extInfo3.schedAction = BConstants::ServiceSchedAction::START; + extInfo3.isInPublishFile = true; + extInfo3.backUpConnection = sptr(new SvcBackupConnection(nullptr, nullptr, BUNDLE_NAME));; + extInfo3.fwkTimerStatus = true; + extInfo3.extTimerStatus = false; + sessionManagerPtr_->impl_.backupExtNameMap.clear(); + sessionManagerPtr_->impl_.backupExtNameMap[BUNDLE_NAME] = extInfo3; + ret = sessionManagerPtr_->CleanAndCheckIfNeedWait(err, bundleNameList); + EXPECT_FALSE(ret); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by CleanAndCheckIfNeedWait."; + } + GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_CleanAndCheckIfNeedWait_0300"; } \ No newline at end of file