diff --git a/frameworks/libs/distributeddb/test/unittest/common/store_test/kv/distributeddb_kv_data_status_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/store_test/kv/distributeddb_kv_data_status_test.cpp index 57b7b0d93c24714535192a7035ca240486c36130..213de05835d5a19749f8fc22c2200fed5e95e500 100644 --- a/frameworks/libs/distributeddb/test/unittest/common/store_test/kv/distributeddb_kv_data_status_test.cpp +++ b/frameworks/libs/distributeddb/test/unittest/common/store_test/kv/distributeddb_kv_data_status_test.cpp @@ -249,6 +249,56 @@ HWTEST_F(DistributedDBKVDataStatusTest, OperateDataStatus006, TestSize.Level0) EXPECT_EQ(SQLiteSingleVerNaturalStore::OperateDataStatus(&handle, "", "", 0), -E_NOT_FOUND); } +/** + * @tc.name: OperateDataStatus007 + * @tc.desc: Test operate data status with empty db. + * @tc.type: FUNC + * @tc.author: zqq + */ +HWTEST_F(DistributedDBKVDataStatusTest, OperateDataStatus007, TestSize.Level0) +{ + auto path = GetTestDir() + "/OperateDataStatus007.db"; + sqlite3 *db = RelationalTestUtils::CreateDataBase(path); + ASSERT_NE(db, nullptr); + std::string sql = std::string("CREATE TABLE IF NOT EXISTS ") + DBConstant::KV_SYNC_TABLE_NAME + + "(key int primary key)"; + EXPECT_EQ(SQLiteUtils::ExecuteRawSQL(db, sql), E_OK); + sql = "CREATE TABLE IF NOT EXISTS naturalbase_kv_aux_sync_data_log(key int primary key)"; + EXPECT_EQ(SQLiteUtils::ExecuteRawSQL(db, sql), E_OK); + SQLiteSingleVerStorageExecutor handle(db, false, false); + auto errCode = SQLiteSingleVerNaturalStore::OperateDataStatus(&handle, "", "", + static_cast(DataOperator::UPDATE_TIME)); + EXPECT_EQ(errCode, -1); // -1 is inner error + errCode = SQLiteSingleVerNaturalStore::OperateDataStatus(&handle, "", "", + static_cast(DataOperator::RESET_UPLOAD_CLOUD)); + EXPECT_EQ(errCode, -1); // -1 is inner error + EXPECT_EQ(sqlite3_close_v2(db), SQLITE_OK); +} + +/** + * @tc.name: OperateDataStatus008 + * @tc.desc: Test operate data status when db was error. + * @tc.type: FUNC + * @tc.author: zqq + */ +HWTEST_F(DistributedDBKVDataStatusTest, OperateDataStatus008, TestSize.Level0) +{ + auto info1 = GetStoreInfo1(); + auto store1 = GetDelegate(info1); + ASSERT_NE(store1, nullptr); + std::string dir; + ASSERT_EQ(KvStoreDelegateManager::GetDatabaseDir(info1.storeId, info1.appId, info1.userId, dir), OK); + auto path = GetTestDir() + "/" + dir + "/single_ver/main/gen_natural_store.db"; + sqlite3 *db = RelationalTestUtils::CreateDataBase(path); + ASSERT_NE(db, nullptr); + std::string sql = "DROP TABLE IF EXISTS sync_data"; + EXPECT_EQ(SQLiteUtils::ExecuteRawSQL(db, sql), E_OK); + sql = "CREATE TABLE IF NOT EXISTS sync_data(key int primary key)"; + EXPECT_EQ(SQLiteUtils::ExecuteRawSQL(db, sql), E_OK); + EXPECT_EQ(store1->OperateDataStatus(static_cast(DataOperator::UPDATE_TIME)), DB_ERROR); + EXPECT_EQ(sqlite3_close_v2(db), SQLITE_OK); +} + #ifdef USE_DISTRIBUTEDDB_CLOUD /** * @tc.name: CloudOperateDataStatus001