diff --git a/services/service/src/devicenamemgr/device_name_manager.cpp b/services/service/src/devicenamemgr/device_name_manager.cpp index 01b689eff46a7a0cf298717377c5e75a52ea070e..f586020495c9850a0aad41cd83405668ab2dce4b 100644 --- a/services/service/src/devicenamemgr/device_name_manager.cpp +++ b/services/service/src/devicenamemgr/device_name_manager.cpp @@ -100,8 +100,11 @@ bool DeviceNameManager::DependsIsReady() return false; } if (!isAccountSysReady_) { - LOGE("Account system not ready"); - return false; + if (MultipleUserConnector::GetCurrentAccountUserID() == DEFAULT_USER_ID) { + LOGE("Account system not ready"); + return false; + } + isAccountSysReady_ = true; } if (GetRemoteObj() == nullptr) { LOGE("dm sa not publish"); @@ -276,7 +279,7 @@ void DeviceNameManager::UnRegisterDeviceNameChangeMonitor(int32_t userId) void DeviceNameManager::InitDeviceName(int32_t userId) { LOGI("In userId:%{public}d", userId); - if (userId == -1) { + if (userId == DEFAULT_USER_ID) { LOGE("userId:%{public}d is invalid", userId); return; } diff --git a/test/unittest/UTTest_device_name_manager.cpp b/test/unittest/UTTest_device_name_manager.cpp index d278174290c0779b8b4f0eb9e99abaa3eb99a996..4351f7513c40f9ac03db02c640599c605bdb0ab9 100644 --- a/test/unittest/UTTest_device_name_manager.cpp +++ b/test/unittest/UTTest_device_name_manager.cpp @@ -673,5 +673,43 @@ HWTEST_F(DeviceNameManagerTest, GetLocalDisplayDeviceName_008, testing::ext::Tes EXPECT_EQ(result, "VeryLon..."); } +HWTEST_F(DeviceNameManagerTest, DependsIsReady_001, testing::ext::TestSize.Level1) +{ + bool srcDataShareReady = DeviceNameManager::GetInstance().isDataShareReady_; + DeviceNameManager::GetInstance().isDataShareReady_ = false; + bool result = DeviceNameManager::GetInstance().DependsIsReady(); + EXPECT_FALSE(result); + DeviceNameManager::GetInstance().isDataShareReady_ = srcDataShareReady; +} + +HWTEST_F(DeviceNameManagerTest, DependsIsReady_002, testing::ext::TestSize.Level1) +{ + bool srcDataShareReady = DeviceNameManager::GetInstance().isDataShareReady_; + bool srcAccountSysReady = DeviceNameManager::GetInstance().isAccountSysReady_; + DeviceNameManager::GetInstance().isDataShareReady_ = true; + DeviceNameManager::GetInstance().isAccountSysReady_ = false; + EXPECT_CALL(*multipleUserConnector_, GetCurrentAccountUserID()).WillRepeatedly(Return(DEFAULT_USER_ID)); + bool result = DeviceNameManager::GetInstance().DependsIsReady(); + EXPECT_FALSE(result); + DeviceNameManager::GetInstance().isDataShareReady_ = srcDataShareReady; + DeviceNameManager::GetInstance().isAccountSysReady_ = srcAccountSysReady; +} + +HWTEST_F(DeviceNameManagerTest, DependsIsReady_003, testing::ext::TestSize.Level1) +{ + bool srcDataShareReady = DeviceNameManager::GetInstance().isDataShareReady_; + bool srcAccountSysReady = DeviceNameManager::GetInstance().isAccountSysReady_; + sptr srcRemoteObj = DeviceNameManager::GetInstance().remoteObj_; + DeviceNameManager::GetInstance().isDataShareReady_ = true; + DeviceNameManager::GetInstance().isAccountSysReady_ = false; + DeviceNameManager::GetInstance().remoteObj_ = nullptr; + EXPECT_CALL(*multipleUserConnector_, GetCurrentAccountUserID()).WillRepeatedly(Return(0)); + bool result = DeviceNameManager::GetInstance().DependsIsReady(); + EXPECT_TRUE(DeviceNameManager::GetInstance().isAccountSysReady_); + EXPECT_FALSE(result); + DeviceNameManager::GetInstance().isDataShareReady_ = srcDataShareReady; + DeviceNameManager::GetInstance().isAccountSysReady_ = srcAccountSysReady; + DeviceNameManager::GetInstance().remoteObj_ = srcRemoteObj; +} } // DistributedHardware } // OHOS