diff --git a/services/distributeddataservice/service/test/udmf_preprocess_utils_test.cpp b/services/distributeddataservice/service/test/udmf_preprocess_utils_test.cpp index c42f223a7aa6252a8f179c7f67ef1a64e2fb7421..514a2a59cb3f74b2a2836b2eedfdfa9f103b0e2f 100644 --- a/services/distributeddataservice/service/test/udmf_preprocess_utils_test.cpp +++ b/services/distributeddataservice/service/test/udmf_preprocess_utils_test.cpp @@ -89,20 +89,6 @@ HWTEST_F(UdmfPreProcessUtilsTest, SetRemoteData002, TestSize.Level1) EXPECT_NO_FATAL_FAILURE(preProcessUtils.SetRemoteData(data)); } -/** -* @tc.name: IsFileType001 -* @tc.desc: Abnormal test of IsFileType, record is nullptr -* @tc.type: FUNC -* @tc.require: -*/ -HWTEST_F(UdmfPreProcessUtilsTest, IsFileType001, TestSize.Level1) -{ - std::shared_ptr record = nullptr; - PreProcessUtils preProcessUtils; - bool ret = preProcessUtils.IsFileType(record); - EXPECT_EQ(ret, false); -} - /** * @tc.name: GetDfsUrisFromLocal001 * @tc.desc: Abnormal test of GetDfsUrisFromLocal, uris is null @@ -158,10 +144,35 @@ HWTEST_F(UdmfPreProcessUtilsTest, GetInstIndex001, TestSize.Level1) */ HWTEST_F(UdmfPreProcessUtilsTest, ProcessFileType001, TestSize.Level1) { - std::vector> records = { nullptr }; - std::function)> callback; - PreProcessUtils preProcessUtils; - EXPECT_NO_FATAL_FAILURE(preProcessUtils.ProcessFileType(records, callback)); + std::shared_ptr record = std::make_shared(); + std::shared_ptr obj = std::make_shared(); + obj->value_[UNIFORM_DATA_TYPE] = "general.file-uri"; + obj->value_[FILE_URI_PARAM] = "http://demo.com.html"; + obj->value_[FILE_TYPE] = "general.html"; + record->AddEntry("general.file-uri", obj); + std::shared_ptr obj1 = std::make_shared(); + obj1->value_[UNIFORM_DATA_TYPE] = "general.content-form"; + obj1->value_["title"] = "test"; + record->AddEntry("general.content-form", obj1); + + std::shared_ptr record1 = std::make_shared(); + record1->AddEntry("general.file-uri", obj1); + std::shared_ptr record2 = std::make_shared(); + record2->AddEntry("general.file-uri", "1111"); + std::shared_ptr record3 = std::make_shared(); + record3->AddEntry("general.file-uri", 1); + std::vector> records = { record, record1, record2, record3 }; + std::vector uris; + PreProcessUtils::ProcessFileType(records, [&uris](std::shared_ptr obj) { + std::string oriUri; + obj->GetValue(ORI_URI, oriUri); + if (oriUri.empty()) { + return false; + } + uris.push_back(oriUri); + return true; + }); + EXPECT_EQ(uris.size(), 1); } /** diff --git a/services/distributeddataservice/service/test/udmf_run_time_store_test.cpp b/services/distributeddataservice/service/test/udmf_run_time_store_test.cpp index 1c92a86a6957afd7110357ab9691490c1581537c..b73675f5ae53f50ded6456ee3a94f0e08681c44a 100644 --- a/services/distributeddataservice/service/test/udmf_run_time_store_test.cpp +++ b/services/distributeddataservice/service/test/udmf_run_time_store_test.cpp @@ -93,6 +93,7 @@ public: const uint32_t MAX_VALUE_SIZE = 4 * 1024 * 1024; const std::string STORE_ID = "drag"; const std::string KEY_PREFIX = "TEST_"; + const std::string SUMMARY_KEY_PREFIX = "SUMMARY_KEY_PREFIX"; const std::string EMPTY_DEVICE_ID = ""; const std::string BUNDLE_NAME = "udmf_test"; static constexpr size_t tempUdataRecordSize = 1; @@ -643,11 +644,22 @@ HWTEST_F(UdmfRunTimeStoreTest, GetSummary, TestSize.Level1) bool result = store->Init(); EXPECT_TRUE(result); Summary summary; - UnifiedKey key(KEY_PREFIX); - auto status = store->GetSummary(key, summary); - ASSERT_EQ(status, E_NOT_FOUND); + summary.summary = { + { "general.file", 10 }, + { "general.png", 10 }, + { "general.html", 10 }, + { "general.jpeg", 10 }, + { "general.avi", 10}, + { "aabbcc", 10} + }; + UnifiedKey key(SUMMARY_KEY_PREFIX); + auto status = store->PutSummary(key, summary); + EXPECT_EQ(status, E_OK); + status = store->GetSummary(key, summary); + ASSERT_EQ(status, E_OK); } + /** * @tc.name: GetRuntime001 * @tc.desc: Normal testcase of GetRuntime diff --git a/services/distributeddataservice/service/test/udmf_service_impl_mock_test.cpp b/services/distributeddataservice/service/test/udmf_service_impl_mock_test.cpp index 9c7e3c2dbb9b35715e3690df2f43a04efef3980d..9daa166f47cbbd23c181584e9c5ac1e53bf42881 100644 --- a/services/distributeddataservice/service/test/udmf_service_impl_mock_test.cpp +++ b/services/distributeddataservice/service/test/udmf_service_impl_mock_test.cpp @@ -93,7 +93,7 @@ HWTEST_F(UdmfServiceImplMockTest, IsNeedMetaSyncTest001, TestSize.Level0) .WillOnce(Return(true)) .WillOnce(Return(true)); isNeedSync = udmfServiceImpl.IsNeedMetaSync(meta, devices); - EXPECT_EQ(isNeedSync, false); + EXPECT_EQ(isNeedSync, true); } /** diff --git a/services/distributeddataservice/service/udmf/preprocess/preprocess_utils.cpp b/services/distributeddataservice/service/udmf/preprocess/preprocess_utils.cpp index 361358841df901527884fb0b52f47132b890af59..5b8afe77f74a1a513eac3c2ed808aba234169b71 100644 --- a/services/distributeddataservice/service/udmf/preprocess/preprocess_utils.cpp +++ b/services/distributeddataservice/service/udmf/preprocess/preprocess_utils.cpp @@ -211,18 +211,6 @@ void PreProcessUtils::SetRemoteData(UnifiedData &data) }); } -bool PreProcessUtils::IsFileType(std::shared_ptr record) -{ - if (record == nullptr) { - return false; - } - if (!std::holds_alternative>(record->GetOriginValue())) { - return false; - } - auto obj = std::get>(record->GetOriginValue()); - return obj->value_.find(ORI_URI) != obj->value_.end(); -} - int32_t PreProcessUtils::SetRemoteUri(uint32_t tokenId, UnifiedData &data) { std::vector uris; @@ -354,18 +342,30 @@ void PreProcessUtils::ProcessFileType(std::vector { for (auto record : records) { if (record == nullptr) { + ZLOGW("Record is empty!"); + continue; + } + auto entries = record->GetEntries(); + if (entries == nullptr) { + ZLOGW("GetEntries returns empty!"); continue; } - if (!PreProcessUtils::IsFileType(record)) { + auto entry = entries->find(GENERAL_FILE_URI); + if (entry == entries->end()) { continue; } - auto obj = std::get>(record->GetOriginValue()); + auto value = entry->second; + if (!std::holds_alternative>(value)) { + continue; + } + auto obj = std::get>(value); if (obj == nullptr) { ZLOGE("ValueType is not Object, Not convert to remote uri!"); continue; } - if (!callback(obj)) { - continue; + std::string dataType; + if (obj->GetValue(UNIFORM_DATA_TYPE, dataType) && dataType == GENERAL_FILE_URI) { + callback(obj); } } } diff --git a/services/distributeddataservice/service/udmf/preprocess/preprocess_utils.h b/services/distributeddataservice/service/udmf/preprocess/preprocess_utils.h index 366dc17c60e1f34450724393d1db11061dbb1e84..2eb84e0a89ddeffb89eaaab524bd8169fe068c00 100644 --- a/services/distributeddataservice/service/udmf/preprocess/preprocess_utils.h +++ b/services/distributeddataservice/service/udmf/preprocess/preprocess_utils.h @@ -49,7 +49,6 @@ public: private: static bool CheckUriAuthorization(const std::vector& uris, uint32_t tokenId); static int32_t GetDfsUrisFromLocal(const std::vector &uris, int32_t userId, UnifiedData &data); - static bool IsFileType(std::shared_ptr record); static std::string GetSdkVersionByToken(uint32_t tokenId); static bool GetSpecificBundleName(const std::string &bundleName, int32_t appIndex, std::string &specificBundleName); };