diff --git a/services/clouddisk_database/include/clouddisk_rdbstore.h b/services/clouddisk_database/include/clouddisk_rdbstore.h index 7dfce91fe233d6392fcebf626553da1363e70bbb..faeab4358bf7df76aa405245fa55101b85fbc6e8 100644 --- a/services/clouddisk_database/include/clouddisk_rdbstore.h +++ b/services/clouddisk_database/include/clouddisk_rdbstore.h @@ -99,7 +99,8 @@ public: void TriggerSyncForWrite(const std::string &fileName, const std::string &parentCloudId); int32_t HandleRenameValue(NativeRdb::ValuesBucket &rename, int32_t position, uint8_t noNeedUpload, const CacheNode &oldNode, const CacheNode &newNode); - int32_t UpdateTHMStatus(std::shared_ptr metaFile, MetaBase &metabase, int32_t status); + int32_t UpdateTHMStatus(std::shared_ptr metaFile, MetaBase &metabase, int32_t status, + const std::string &filePath); void DatabaseRestore(); diff --git a/services/clouddisk_database/src/clouddisk_rdbstore.cpp b/services/clouddisk_database/src/clouddisk_rdbstore.cpp index 585790712499b68dcfa403232aaece49b323d914..aca52f551e63e93fa565634a52d65f615b9e6f03 100644 --- a/services/clouddisk_database/src/clouddisk_rdbstore.cpp +++ b/services/clouddisk_database/src/clouddisk_rdbstore.cpp @@ -698,19 +698,22 @@ int32_t CloudDiskRdbStore::LocationSetXattr(const std::string &name, const std:: } int32_t CloudDiskRdbStore::UpdateTHMStatus(shared_ptr metaFile, - MetaBase &metaBase, int32_t status) + MetaBase &metaBase, int32_t status, const string &filePath) { - ValuesBucket fileInfo; - if (metaBase.fileType == FILE_TYPE_THUMBNAIL) { - fileInfo.PutInt(FileColumn::THM_FLAG, status); - } else { - fileInfo.PutInt(FileColumn::LCD_FLAG, status); - } string srcCloudId; auto res = GetSrcCloudId(metaBase.cloudId, srcCloudId); + if (res != E_OK) { return res; } + struct stat statInfo{}; + res = stat(filePath.c_str(), &statInfo); if (res != E_OK) { + LOGE("filePath %{public}s is invalid, errno=%{public}d", GetAnonyString(filePath).c_str(), errno); return res; } + auto flagColumnName = metaBase.fileType == FILE_TYPE_THUMBNAIL ? FileColumn::THM_FLAG : FileColumn::LCD_FLAG; + auto sizeColumnName = metaBase.fileType == FILE_TYPE_THUMBNAIL ? FileColumn::THM_SIZE : FileColumn::LCD_SIZE; + ValuesBucket fileInfo; + fileInfo.PutInt(flagColumnName, status); + fileInfo.PutInt(sizeColumnName, static_cast(statInfo.st_size)); TransactionOperations rdbTransaction(rdbStore_); auto [ret, transaction] = rdbTransaction.Start(); if (ret != E_OK) { @@ -727,14 +730,16 @@ int32_t CloudDiskRdbStore::UpdateTHMStatus(shared_ptr metaFil } ValuesBucket thmFileInfo; thmFileInfo.PutInt(FileColumn::POSITION, static_cast(ThumbPosition::THM_IN_LOCAL)); + thmFileInfo.PutLong(FileColumn::FILE_SIZE, static_cast(statInfo.st_size)); NativeRdb::AbsRdbPredicates thmPredicates = NativeRdb::AbsRdbPredicates(FileColumn::FILES_TABLE); thmPredicates.EqualTo(FileColumn::CLOUD_ID, metaBase.cloudId); std::tie(ret, changedRows) = transaction->Update(thmFileInfo, thmPredicates); if (ret != E_OK) { LOGE("database update thumbnail file info failed, ret = %{public}d", ret); } - auto callback = [&metaBase] (MetaBase &m) { + auto callback = [&metaBase, &statInfo] (MetaBase &m) { m.position = static_cast(ThumbPosition::THM_IN_LOCAL); + m.size = static_cast(statInfo.st_size); }; ret = metaFile->DoChildUpdate(metaBase.name, callback); if (ret != E_OK) { diff --git a/services/cloudfiledaemon/src/cloud_disk/file_operations_cloud.cpp b/services/cloudfiledaemon/src/cloud_disk/file_operations_cloud.cpp index 4b27792450564e6c1019c9f161976d6eb4dce0e9..b8120105eb99818ddee0823ccbf61a89ba399865 100644 --- a/services/cloudfiledaemon/src/cloud_disk/file_operations_cloud.cpp +++ b/services/cloudfiledaemon/src/cloud_disk/file_operations_cloud.cpp @@ -427,7 +427,7 @@ static int32_t HandleCloudOpenSuccess(struct fuse_file_info *fi, struct CloudDis if (ret == EOK) { DatabaseManager &databaseManager = DatabaseManager::GetInstance(); auto rdbstore = databaseManager.GetRdbStore(inoPtr->bundleName, data->userId); - rdbstore->UpdateTHMStatus(metaFile, metaBase, CloudSync::DOWNLOADED_THM); + rdbstore->UpdateTHMStatus(metaFile, metaBase, CloudSync::DOWNLOADED_THM, path); } else { LOGE("path rename failed, tmpPath:%{public}s, errno:%{public}d", GetAnonyString(tmpPath).c_str(), errno); diff --git a/test/unittests/clouddisk_database/BUILD.gn b/test/unittests/clouddisk_database/BUILD.gn index 38206d7d69edbb627d02de6dad40632554a5d8c2..8d76bfcde1c8c5e1b04cff0e10b729dd944b9407 100644 --- a/test/unittests/clouddisk_database/BUILD.gn +++ b/test/unittests/clouddisk_database/BUILD.gn @@ -122,7 +122,6 @@ ohos_unittest("clouddisk_rdbstore_test") { clouddisk_database = [ "${services_path}/clouddisk_database/src/clouddisk_rdb_utils.cpp", - "${services_path}/clouddisk_database/src/clouddisk_rdbstore.cpp", "${services_path}/clouddisk_database/src/file_column.cpp", "${services_path}/clouddisk_database/src/clouddisk_sync_helper.cpp", "${services_path}/clouddisk_database/src/clouddisk_notify.cpp", @@ -132,6 +131,7 @@ ohos_unittest("clouddisk_rdbstore_test") { include_dirs = [ "${services_path}/clouddisk_database/include", + "${services_path}/clouddisk_database/src", "${distributedfile_path}/adapter/cloud_adapter_example/include", "${services_path}/cloudsyncservice/include", "${services_path}/cloudfiledaemon/include", diff --git a/test/unittests/clouddisk_database/clouddisk_rdbstore_test.cpp b/test/unittests/clouddisk_database/clouddisk_rdbstore_test.cpp index 1472ba78726021b275395c419fb0fad579da4e9a..08125238de518ff77689d689810b019de4804cff 100644 --- a/test/unittests/clouddisk_database/clouddisk_rdbstore_test.cpp +++ b/test/unittests/clouddisk_database/clouddisk_rdbstore_test.cpp @@ -26,6 +26,10 @@ #include "result_set_mock.h" #include "transaction_mock.cpp" +#define stat(path, buf) OHOS::FileManagement::CloudDisk::Assistant::ins->MockStat(path, buf) +#include "clouddisk_rdbstore.cpp" +#undef stat + namespace OHOS::FileManagement::CloudDisk::Test { using namespace testing; using namespace testing::ext; @@ -507,6 +511,7 @@ HWTEST_F(CloudDiskRdbStoreTest, CreateTest5, TestSize.Level1) clouddiskrdbStore_->userId_ = 0; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(Return(-1)); int32_t ret = clouddiskrdbStore_->Create(cloudId, parentCloudId, fileName, noNeedUpload); EXPECT_EQ(ret, E_PATH); } @@ -521,6 +526,8 @@ HWTEST_F(CloudDiskRdbStoreTest, CreateTest6, TestSize.Level1) const std::string cloudId = "rootId"; const std::string parentCloudId = "100"; const std::string fileName = "test"; + struct stat st; + st.st_size = 1; bool noNeedUpload = true; clouddiskrdbStore_->userId_ = 1; auto rdb = make_shared(); @@ -529,6 +536,7 @@ HWTEST_F(CloudDiskRdbStoreTest, CreateTest6, TestSize.Level1) auto transaction = make_shared(); EXPECT_CALL(*rdb, CreateTransaction(_)).WillOnce(Return(std::make_pair(E_OK, transaction))); EXPECT_CALL(*transaction, Insert(_, _, _)).WillOnce(Return(std::make_pair(E_RDB, 0))); + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(DoAll(SetArgPointee<1>(st), Return(0))); int32_t ret = clouddiskrdbStore_->Create(cloudId, parentCloudId, fileName, noNeedUpload); EXPECT_EQ(ret, E_RDB); @@ -544,6 +552,8 @@ HWTEST_F(CloudDiskRdbStoreTest, CreateTest7, TestSize.Level1) const std::string cloudId = "rootId"; const std::string parentCloudId = "100"; const std::string fileName = "mock"; + struct stat st; + st.st_size = 1; bool noNeedUpload = true; clouddiskrdbStore_->userId_ = 1; auto rdb = make_shared(); @@ -552,6 +562,7 @@ HWTEST_F(CloudDiskRdbStoreTest, CreateTest7, TestSize.Level1) auto transaction = make_shared(); EXPECT_CALL(*rdb, CreateTransaction(_)).WillOnce(Return(std::make_pair(E_OK, transaction))); EXPECT_CALL(*transaction, Insert(_, _, _)).WillOnce(Return(std::make_pair(E_OK, 0))); + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(DoAll(SetArgPointee<1>(st), Return(0))); int32_t ret = clouddiskrdbStore_->Create(cloudId, parentCloudId, fileName, noNeedUpload); EXPECT_EQ(ret, E_RDB); @@ -567,6 +578,8 @@ HWTEST_F(CloudDiskRdbStoreTest, CreateTest8, TestSize.Level1) const std::string cloudId = "rootId"; const std::string parentCloudId = "100"; const std::string fileName = "test"; + struct stat st; + st.st_size = 1; bool noNeedUpload = true; clouddiskrdbStore_->userId_ = 1; auto rdb = make_shared(); @@ -575,6 +588,7 @@ HWTEST_F(CloudDiskRdbStoreTest, CreateTest8, TestSize.Level1) auto transaction = make_shared(); EXPECT_CALL(*rdb, CreateTransaction(_)).WillOnce(Return(std::make_pair(E_OK, transaction))); EXPECT_CALL(*transaction, Insert(_, _, _)).WillOnce(Return(std::make_pair(E_RDB, 0))); + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(DoAll(SetArgPointee<1>(st), Return(0))); int32_t ret = clouddiskrdbStore_->Create(cloudId, parentCloudId, fileName, noNeedUpload); EXPECT_EQ(ret, E_RDB); @@ -745,6 +759,7 @@ HWTEST_F(CloudDiskRdbStoreTest, WriteTest3, TestSize.Level1) clouddiskrdbStore_->rdbStore_ = rdb; clouddiskrdbStore_->userId_ = 0; + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(Return(-1)); int32_t ret = clouddiskrdbStore_->Write(fileName, parentCloudId, cloudId); EXPECT_EQ(ret, E_PATH); } @@ -759,6 +774,8 @@ HWTEST_F(CloudDiskRdbStoreTest, WriteTest4, TestSize.Level1) const std::string cloudId = "100"; const std::string fileName = "mock"; const std::string parentCloudId = "rootId"; + struct stat st; + st.st_size = 1; bool preCount = true; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; @@ -769,6 +786,7 @@ HWTEST_F(CloudDiskRdbStoreTest, WriteTest4, TestSize.Level1) EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_RDB)); + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(DoAll(SetArgPointee<1>(st), Return(0))); int32_t ret = clouddiskrdbStore_->Write(fileName, parentCloudId, cloudId); EXPECT_EQ(ret, E_RDB); @@ -784,6 +802,8 @@ HWTEST_F(CloudDiskRdbStoreTest, WriteTest5, TestSize.Level1) const std::string cloudId = "100"; const std::string fileName = "mock"; const std::string parentCloudId = "rootId"; + struct stat st; + st.st_size = 1; bool preCount = true; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; @@ -795,6 +815,7 @@ HWTEST_F(CloudDiskRdbStoreTest, WriteTest5, TestSize.Level1) An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*transaction, Update(_, _, _)).WillOnce(Return(std::make_pair(E_RDB, 0))); + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(DoAll(SetArgPointee<1>(st), Return(0))); int32_t ret = clouddiskrdbStore_->Write(fileName, parentCloudId, cloudId); EXPECT_EQ(ret, E_RDB); @@ -810,6 +831,8 @@ HWTEST_F(CloudDiskRdbStoreTest, WriteTest6, TestSize.Level1) const std::string cloudId = "100"; const std::string fileName = "mock"; const std::string parentCloudId = "rootId"; + struct stat st; + st.st_size = 1; bool preCount = true; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; @@ -821,6 +844,7 @@ HWTEST_F(CloudDiskRdbStoreTest, WriteTest6, TestSize.Level1) An &>(), preCount)).WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*transaction, Update(_, _, _)).WillOnce(Return(std::make_pair(E_OK, 0))); + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(DoAll(SetArgPointee<1>(st), Return(0))); int32_t ret = clouddiskrdbStore_->Write(fileName, parentCloudId, cloudId); EXPECT_EQ(ret, E_RDB); @@ -4383,7 +4407,7 @@ HWTEST_F(CloudDiskRdbStoreTest, OnUpgradeExtendTest001, TestSize.Level1) } /** - * @tc.name: UpdateTHMStatus + * @tc.name: UpdateTHMStatusTest001 * @tc.desc: Verify the CloudDiskRdbStore::UpdateTHMStatus function * @tc.type: FUNC * @tc.require: ICPOAK @@ -4396,13 +4420,14 @@ HWTEST_F(CloudDiskRdbStoreTest, UpdateTHMStatusTest001, TestSize.Level1) MetaBase metaBase; metaBase.fileType == FILE_TYPE_THUMBNAIL; int32_t status = 0; + string filePath = "/test12345"; bool preCount = true; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; auto transaction = make_shared(); EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)) - .WillOnce(Return(ByMove(nullptr))); - int32_t ret = clouddiskrdbStore_->UpdateTHMStatus(metaFile, metaBase, status); + .WillOnce(Return(ByMove(nullptr))); + int32_t ret = clouddiskrdbStore_->UpdateTHMStatus(metaFile, metaBase, status, filePath); EXPECT_EQ(ret, E_RDB); } catch (...) { EXPECT_TRUE(false); @@ -4412,7 +4437,7 @@ HWTEST_F(CloudDiskRdbStoreTest, UpdateTHMStatusTest001, TestSize.Level1) } /** - * @tc.name: UpdateTHMStatus + * @tc.name: UpdateTHMStatusTest002 * @tc.desc: Verify the CloudDiskRdbStore::UpdateTHMStatus function * @tc.type: FUNC * @tc.require: ICPOAK @@ -4425,6 +4450,9 @@ HWTEST_F(CloudDiskRdbStoreTest, UpdateTHMStatusTest002, TestSize.Level1) MetaBase metaBase; metaBase.fileType == FILE_TYPE_CONTENT; int32_t status = 0; + string filePath = "/test12345"; + struct stat st; + st.st_size = 1; bool preCount = true; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; @@ -4435,8 +4463,9 @@ HWTEST_F(CloudDiskRdbStoreTest, UpdateTHMStatusTest002, TestSize.Level1) EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetString(_, _)).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetColumnIndex(_, _)).WillRepeatedly(Return(E_OK)); + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(DoAll(SetArgPointee<1>(st), Return(0))); EXPECT_CALL(*rdb, CreateTransaction(_)).WillOnce(Return(std::make_pair(50, transaction))); - int32_t ret = clouddiskrdbStore_->UpdateTHMStatus(metaFile, metaBase, status); + int32_t ret = clouddiskrdbStore_->UpdateTHMStatus(metaFile, metaBase, status, filePath); EXPECT_EQ(ret, 50); } catch (...) { EXPECT_TRUE(false); @@ -4446,7 +4475,7 @@ HWTEST_F(CloudDiskRdbStoreTest, UpdateTHMStatusTest002, TestSize.Level1) } /** - * @tc.name: UpdateTHMStatus + * @tc.name: UpdateTHMStatusTest003 * @tc.desc: Verify the CloudDiskRdbStore::UpdateTHMStatus function * @tc.type: FUNC * @tc.require: ICPOAK @@ -4459,19 +4488,23 @@ HWTEST_F(CloudDiskRdbStoreTest, UpdateTHMStatusTest003, TestSize.Level1) MetaBase metaBase; metaBase.fileType == FILE_TYPE_CONTENT; int32_t status = 0; + string filePath = "/test12345"; + struct stat st; + st.st_size = 1; bool preCount = true; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; auto transaction = make_shared(); std::shared_ptr rset = std::make_shared(); EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)) - .WillOnce(Return(ByMove(rset))); + .WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetString(_, _)).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetColumnIndex(_, _)).WillRepeatedly(Return(E_OK)); + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(DoAll(SetArgPointee<1>(st), Return(0))); EXPECT_CALL(*rdb, CreateTransaction(_)).WillOnce(Return(std::make_pair(E_OK, transaction))); EXPECT_CALL(*transaction, Update(_, _, _)).WillOnce(Return(std::make_pair(E_RDB, 0))); - int32_t ret = clouddiskrdbStore_->UpdateTHMStatus(metaFile, metaBase, status); + int32_t ret = clouddiskrdbStore_->UpdateTHMStatus(metaFile, metaBase, status, filePath); EXPECT_EQ(ret, E_RDB); } catch (...) { EXPECT_TRUE(false); @@ -4481,7 +4514,7 @@ HWTEST_F(CloudDiskRdbStoreTest, UpdateTHMStatusTest003, TestSize.Level1) } /** - * @tc.name: UpdateTHMStatus + * @tc.name: UpdateTHMStatusTest004 * @tc.desc: Verify the CloudDiskRdbStore::UpdateTHMStatus function * @tc.type: FUNC * @tc.require: ICPOAK @@ -4494,19 +4527,23 @@ HWTEST_F(CloudDiskRdbStoreTest, UpdateTHMStatusTest004, TestSize.Level1) MetaBase metaBase; metaBase.fileType == FILE_TYPE_CONTENT; int32_t status = 0; + string filePath = "/test12345"; + struct stat st; + st.st_size = 1; bool preCount = true; auto rdb = make_shared(); clouddiskrdbStore_->rdbStore_ = rdb; auto transaction = make_shared(); std::shared_ptr rset = std::make_shared(); EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)) - .WillOnce(Return(ByMove(rset))); + .WillOnce(Return(ByMove(rset))); EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetString(_, _)).WillRepeatedly(Return(E_OK)); EXPECT_CALL(*rset, GetColumnIndex(_, _)).WillRepeatedly(Return(E_OK)); + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(DoAll(SetArgPointee<1>(st), Return(0))); EXPECT_CALL(*rdb, CreateTransaction(_)).WillOnce(Return(std::make_pair(E_OK, transaction))); EXPECT_CALL(*transaction, Update(_, _, _)).WillRepeatedly(Return(std::make_pair(E_OK, 0))); - int32_t ret = clouddiskrdbStore_->UpdateTHMStatus(metaFile, metaBase, status); + int32_t ret = clouddiskrdbStore_->UpdateTHMStatus(metaFile, metaBase, status, filePath); EXPECT_EQ(ret, E_OK); } catch (...) { EXPECT_TRUE(false); @@ -4515,6 +4552,43 @@ HWTEST_F(CloudDiskRdbStoreTest, UpdateTHMStatusTest004, TestSize.Level1) GTEST_LOG_(INFO) << "UpdateTHMStatusTest004 end"; } +/** + * @tc.name: UpdateTHMStatusTest005 + * @tc.desc: Verify the CloudDiskRdbStore::UpdateTHMStatus function + * @tc.type: FUNC + * @tc.require: ICPOAK + */ +HWTEST_F(CloudDiskRdbStoreTest, UpdateTHMStatusTest005, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "UpdateTHMStatusTest005 start"; + try { + shared_ptr metaFile = make_shared(100, "", ""); + MetaBase metaBase; + metaBase.fileType == FILE_TYPE_CONTENT; + int32_t status = 0; + string filePath = "/test12345"; + struct stat st; + st.st_size = 1; + bool preCount = true; + auto rdb = make_shared(); + clouddiskrdbStore_->rdbStore_ = rdb; + auto transaction = make_shared(); + std::shared_ptr rset = std::make_shared(); + EXPECT_CALL(*rdb, QueryByStep(An(), An &>(), preCount)) + .WillOnce(Return(ByMove(rset))); + EXPECT_CALL(*rset, GoToNextRow()).WillRepeatedly(Return(E_OK)); + EXPECT_CALL(*rset, GetString(_, _)).WillRepeatedly(Return(E_OK)); + EXPECT_CALL(*rset, GetColumnIndex(_, _)).WillRepeatedly(Return(E_OK)); + EXPECT_CALL(*insMock, MockStat(_, _)).WillOnce(Return(-1)); + int32_t ret = clouddiskrdbStore_->UpdateTHMStatus(metaFile, metaBase, status, filePath); + EXPECT_EQ(ret, E_OK); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "UpdateTHMStatusTest005 failed"; + } + GTEST_LOG_(INFO) << "UpdateTHMStatusTest005 end"; +} + /** * @tc.name: GetSrcCloudId * @tc.desc: Verify the CloudDiskRdbStore::GetSrcCloudId function diff --git a/test/unittests/clouddisk_database/mock/rdb_assistant.h b/test/unittests/clouddisk_database/mock/rdb_assistant.h index e5e7636a051a0841c38bf04382da5d938df96252..8aa1b83d2c9c81b1abee0b1467a1db2e92fbad8f 100644 --- a/test/unittests/clouddisk_database/mock/rdb_assistant.h +++ b/test/unittests/clouddisk_database/mock/rdb_assistant.h @@ -222,6 +222,7 @@ public: virtual shared_ptr GetRdbStore(const RdbStoreConfig &, int, RdbOpenCallback &, int &) = 0; virtual int DeleteRdbStore(const std::string &) = 0; virtual std::string GetDefaultDatabasePath(const std::string &, const std::string &, int &) = 0; + virtual int MockStat(const char* path, struct stat* buf) = 0; }; class AssistantMock : public Assistant { @@ -229,6 +230,7 @@ public: MOCK_METHOD4(GetRdbStore, shared_ptr(const RdbStoreConfig &, int, RdbOpenCallback &, int &)); MOCK_METHOD1(DeleteRdbStore, int(const std::string &)); MOCK_METHOD3(GetDefaultDatabasePath, std::string(const std::string &, const std::string &, int &)); + MOCK_METHOD2(MockStat, int(const char*, struct stat*)); }; } // namespace OHOS::FileManagement::CloudSync::Test #endif \ No newline at end of file