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 47eddbfe7c909363844ebeaa28df9b6701e5d83b..168f2415959a09b0a134647d27b3b3dd24d9fd5b 100644 --- a/tests/unittests/backup_sa/module_ipc/service_other_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/service_other_test.cpp @@ -2338,15 +2338,18 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0000, testing::ext::TestSize.L { GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_TryToConnectExt_0000"; try { - BundleName bundleName; - sptr extConnection; - EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(connect)); + std::string bundleName = "123"; + auto callDied = [](const string &&bundleName, bool isCleanCalled) {}; + auto callConnected = [](const string &&bundleName) {}; + auto connectPtr = sptr(new SvcBackupConnection(callDied, callConnected, bundleName)); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connectPtr))); EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(true)); + EXPECT_CALL(*session, CreateBackupConnection(_)).WillOnce(Return(connectPtr)); EXPECT_CALL(*connect, DisconnectBackupExtAbility()).WillOnce(Return(BError(BError::Codes::OK).GetCode())); EXPECT_CALL(*session, GetScenario()).WillRepeatedly(Return(IServiceReverseType::Scenario::UNDEFINED)); EXPECT_CALL(*connect, ConnectBackupExtAbility(_, _, _)).WillOnce(Return(BError(BError::Codes::OK).GetCode())); - auto res = service->TryToConnectExt(bundleName, extConnection); + auto res = service->TryToConnectExt(bundleName, connectPtr); EXPECT_EQ(res, BError(BError::Codes::OK).GetCode()); } catch (...) { EXPECT_TRUE(false); @@ -2368,8 +2371,10 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0100, testing::ext::TestSize.L { GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_TryToConnectExt_0100"; try { - BundleName bundleName; - sptr extConnection; + std::string bundleName = "123"; + auto callDied = [](const string &&bundleName, bool isCleanCalled) {}; + auto callConnected = [](const string &&bundleName) {}; + auto connectPtr = sptr(new SvcBackupConnection(callDied, callConnected, bundleName)); EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(nullptr)); EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(true)); @@ -2378,7 +2383,7 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0100, testing::ext::TestSize.L EXPECT_CALL(*session, GetScenario()).WillRepeatedly(Return(IServiceReverseType::Scenario::UNDEFINED)); EXPECT_CALL(*connect, ConnectBackupExtAbility(_, _, _)) .WillOnce(Return(BError(BError::Codes::EXT_INVAL_ARG).GetCode())); - auto res = service->TryToConnectExt(bundleName, extConnection); + auto res = service->TryToConnectExt(bundleName, connectPtr); EXPECT_EQ(res, BError(BError::Codes::SA_INVAL_ARG).GetCode()); } catch (...) { EXPECT_TRUE(false); @@ -2400,9 +2405,11 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0200, testing::ext::TestSize.L { GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_TryToConnectExt_0200"; try { - BundleName bundleName; - sptr extConnection; - EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(connect)); + std::string bundleName = "123"; + auto callDied = [](const string &&bundleName, bool isCleanCalled) {}; + auto callConnected = [](const string &&bundleName) {}; + auto connectPtr = sptr(new SvcBackupConnection(callDied, callConnected, bundleName)); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connect))); EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(false)); EXPECT_CALL(*session, GetSessionUserId()).WillRepeatedly(Return(0)); @@ -2412,8 +2419,8 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0200, testing::ext::TestSize.L EXPECT_CALL(*connect, DisconnectBackupExtAbility()).WillOnce(Return(BError(BError::Codes::OK).GetCode())); EXPECT_CALL(*session, GetScenario()).WillRepeatedly(Return(IServiceReverseType::Scenario::UNDEFINED)); EXPECT_CALL(*connect, ConnectBackupExtAbility(_, _, _)).WillOnce(Return(BError(BError::Codes::OK).GetCode())); - auto res = service->TryToConnectExt(bundleName, extConnection); - EXPECT_EQ(res, BError(BError::Codes::OK).GetCode()); + auto res = service->TryToConnectExt(bundleName, connectPtr); + EXPECT_EQ(res, BError(BError::Codes::SA_INVAL_ARG).GetCode()); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by TryToConnectExt."; @@ -2434,9 +2441,11 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0300, testing::ext::TestSize.L { GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_TryToConnectExt_0300"; try { - BundleName bundleName; - sptr extConnection; - EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(connect)); + std::string bundleName = "123"; + auto callDied = [](const string &&bundleName, bool isCleanCalled) {}; + auto callConnected = [](const string &&bundleName) {}; + auto connectPtr = sptr(new SvcBackupConnection(callDied, callConnected, bundleName)); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connect))); EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(false)); EXPECT_CALL(*session, GetSessionUserId()).WillRepeatedly(Return(0)); @@ -2447,8 +2456,8 @@ HWTEST_F(ServiceTest, SUB_Service_TryToConnectExt_0300, testing::ext::TestSize.L EXPECT_CALL(*session, GetScenario()).WillRepeatedly(Return(IServiceReverseType::Scenario::UNDEFINED)); EXPECT_CALL(*connect, ConnectBackupExtAbility(_, _, _)) .WillOnce(Return(BError(BError::Codes::SA_BOOT_EXT_FAIL).GetCode())); - auto res = service->TryToConnectExt(bundleName, extConnection); - EXPECT_EQ(res, BError(BError::Codes::SA_BOOT_EXT_FAIL).GetCode()); + auto res = service->TryToConnectExt(bundleName, connectPtr); + EXPECT_EQ(res, BError(BError::Codes::SA_INVAL_ARG).GetCode()); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by TryToConnectExt."; @@ -2469,9 +2478,11 @@ HWTEST_F(ServiceTest, SUB_Service_CleanBundleTempDir_0000, testing::ext::TestSiz { GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_CleanBundleTempDir_0000"; try { - BundleName bundleName; - sptr extConnection; - EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(connect)); + std::string bundleName = "123"; + auto callDied = [](const string &&bundleName, bool isCleanCalled) {}; + auto callConnected = [](const string &&bundleName) {}; + auto connectPtr = sptr(new SvcBackupConnection(callDied, callConnected, bundleName)); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connect))); EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(true)); EXPECT_CALL(*connect, DisconnectBackupExtAbility()).WillOnce(Return(BError(BError::Codes::OK).GetCode())); @@ -2499,9 +2510,11 @@ HWTEST_F(ServiceTest, SUB_Service_CleanBundleTempDir_0100, testing::ext::TestSiz { GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_CleanBundleTempDir_0100"; try { - BundleName bundleName; - sptr extConnection; - EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(connect)); + std::string bundleName = "123"; + auto callDied = [](const string &&bundleName, bool isCleanCalled) {}; + auto callConnected = [](const string &&bundleName) {}; + auto connectPtr = sptr(new SvcBackupConnection(callDied, callConnected, bundleName)); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(wptr(connect))); EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(nullptr)); EXPECT_CALL(*connect, IsExtAbilityConnected()).WillOnce(Return(true)); EXPECT_CALL(*connect, DisconnectBackupExtAbility()).WillOnce(Return(BError(BError::Codes::OK).GetCode())); 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 06c29f388ded572ee8d5b7acbdec92dedc8a15c7..1911c623d73b63a32aa8312680f60e5a35c68410 100644 --- a/tests/unittests/backup_sa/module_ipc/sub_service_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/sub_service_test.cpp @@ -1946,4 +1946,146 @@ HWTEST_F(ServiceTest, SUB_Service_SendScannedInfo_0000, TestSize.Level1) GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by CyclicSendScannedInfo."; } GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_SendScannedInfo_0000"; +} + +/** + * @tc.number: SUB_Service_SetExtOnRelease_0000 + * @tc.name: SUB_Service_SetExtOnRelease_0000 + * @tc.desc: 测试 SetExtOnRelease 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: IC7RHQ + */ +HWTEST_F(ServiceTest, SUB_Service_SetExtOnRelease_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_SetExtOnRelease_0000"; + try { + std::string bundleName = "123"; + bool isExtOnRelease = true; + service->SetExtOnRelease(bundleName, isExtOnRelease); + auto it = service->backupExtOnReleaseMap_.find(bundleName); + EXPECT_NE(it, service->backupExtOnReleaseMap_.end()); + EXPECT_EQ(it->second.load(), isExtOnRelease); + + isExtOnRelease = false; + service->SetExtOnRelease(bundleName, isExtOnRelease); + it = service->backupExtOnReleaseMap_.find(bundleName); + EXPECT_NE(it, service->backupExtOnReleaseMap_.end()); + EXPECT_EQ(it->second.load(), isExtOnRelease); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by SetExtOnRelease."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_SetExtOnRelease_0000"; +} + +/** + * @tc.number: SUB_Service_SetExtOnRelease_0100 + * @tc.name: SUB_Service_SetExtOnRelease_0100 + * @tc.desc: 测试 SetExtOnRelease 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: IC7RHQ + */ +HWTEST_F(ServiceTest, SUB_Service_SetExtOnRelease_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_SetExtOnRelease_0100"; + try { + std::string bundleName = "123"; + bool isExtOnRelease = true; + bool updateIsExtOnRelease = false; + service->backupExtOnReleaseMap_[bundleName] = isExtOnRelease; + service->SetExtOnRelease(bundleName, updateIsExtOnRelease); + auto it = service->backupExtOnReleaseMap_.find(bundleName); + EXPECT_NE(it, service->backupExtOnReleaseMap_.end()); + EXPECT_EQ(it->second.load(), updateIsExtOnRelease); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by SetExtOnRelease."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_SetExtOnRelease_0100"; +} + +/** + * @tc.number: SUB_Service_RemoveExtOnRelease_0000 + * @tc.name: SUB_Service_RemoveExtOnRelease_0000 + * @tc.desc: 测试 RemoveExtOnRelease 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: IC7RHQ + */ +HWTEST_F(ServiceTest, SUB_Service_RemoveExtOnRelease_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_RemoveExtOnRelease_0000"; + try { + std::string bundleName = "123"; + bool isExtOnRelease = true; + service->backupExtOnReleaseMap_[bundleName] = isExtOnRelease; + EXPECT_NE(service->backupExtOnReleaseMap_.find(bundleName), service->backupExtOnReleaseMap_.end()); + service->RemoveExtOnRelease(bundleName); + EXPECT_EQ(service->backupExtOnReleaseMap_.find(bundleName), service->backupExtOnReleaseMap_.end()); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by RemoveExtOnRelease."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_RemoveExtOnRelease_0000"; +} + +/** + * @tc.number: SUB_Service_RemoveExtOnRelease_0100 + * @tc.name: SUB_Service_RemoveExtOnRelease_0100 + * @tc.desc: 测试 RemoveExtOnRelease 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: IC7RHQ + */ +HWTEST_F(ServiceTest, SUB_Service_RemoveExtOnRelease_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_RemoveExtOnRelease_0100"; + try { + std::string bundleName = "123"; + EXPECT_EQ(service->backupExtOnReleaseMap_.find(bundleName), service->backupExtOnReleaseMap_.end()); + service->RemoveExtOnRelease(bundleName); + EXPECT_EQ(service->backupExtOnReleaseMap_.find(bundleName), service->backupExtOnReleaseMap_.end()); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by RemoveExtOnRelease."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_RemoveExtOnRelease_0100"; +} + +/** + * @tc.number: SUB_Service_HandleOnReleaseAndDisconnect_0000 + * @tc.name: SUB_Service_HandleOnReleaseAndDisconnect_0000 + * @tc.desc: 测试 HandleOnReleaseAndDisconnect 的正常/异常分支 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: IC7RHQ + */ +HWTEST_F(ServiceTest, SUB_Service_HandleOnReleaseAndDisconnect_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ServiceTest-begin SUB_Service_HandleOnReleaseAndDisconnect_0000"; + try { + std::string bundleName = "123"; + sptr sessionPtr = nullptr; + service->HandleOnReleaseAndDisconnect(sessionPtr, bundleName); + + sessionPtr = sptr(new SvcSessionManager(wptr(service))); + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(connect)); + EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(nullptr)); + service->HandleOnReleaseAndDisconnect(sessionPtr, bundleName); + + EXPECT_CALL(*session, GetExtConnection(_)).WillOnce(Return(connect)); + EXPECT_CALL(*connect, GetBackupExtProxy()).WillOnce(Return(svcProxy)); + service->HandleOnReleaseAndDisconnect(sessionPtr, bundleName); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ServiceTest-an exception occurred by HandleOnReleaseAndDisconnect."; + } + GTEST_LOG_(INFO) << "ServiceTest-end SUB_Service_HandleOnReleaseAndDisconnect_0000"; } \ No newline at end of file