diff --git a/services/service/src/devicenamemgr/device_name_manager.cpp b/services/service/src/devicenamemgr/device_name_manager.cpp index 64c0ea59b593c208f82aafe633def2b0e1d3c300..b4f229394d96efa0674894027dbe70a0840108f7 100644 --- a/services/service/src/devicenamemgr/device_name_manager.cpp +++ b/services/service/src/devicenamemgr/device_name_manager.cpp @@ -97,8 +97,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"); @@ -273,7 +276,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) { LOGI("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 5e896f86a5a5a2d6134607df9ac9b674c4bef4f8..73a3b8ee7a702d405137d2367e922338cb5be395 100644 --- a/test/unittest/UTTest_device_name_manager.cpp +++ b/test/unittest/UTTest_device_name_manager.cpp @@ -324,5 +324,44 @@ HWTEST_F(DeviceNameManagerTest, GetLocalDisplayDeviceName_002, testing::ext::Tes result = DeviceNameManager::GetInstance().GetLocalDisplayDeviceName(maxNamelength, output); EXPECT_EQ(result, ERR_DM_INPUT_PARA_INVALID); } + +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