代码拉取完成,页面将自动刷新
diff --git a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_cloud_interfaces_relational_ext_test.cpp b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_cloud_interfaces_relational_ext_test.cpp
index 363c76a2c..03d31b795 100644
--- a/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_cloud_interfaces_relational_ext_test.cpp
+++ b/frameworks/libs/distributeddb/test/unittest/common/interfaces/distributeddb_cloud_interfaces_relational_ext_test.cpp
@@ -983,6 +983,60 @@ HWTEST_F(DistributedDBCloudInterfacesRelationalExtTest, TriggerObserverTest007,
EXPECT_EQ(sqlite3_close_v2(db), E_OK);
}
+/**
+ * @tc.name: TriggerObserverTest008
+ * @tc.desc: Test trigger client observer
+ * @tc.type: FUNC
+ * @tc.require:
+ * @tc.author: liaoyonghuang
+ */
+HWTEST_F(DistributedDBCloudInterfacesRelationalExtTest, TriggerObserverTest008, TestSize.Level0)
+{
+ /**
+ * @tc.steps:step1. prepare data
+ * @tc.expected: step1. return ok.
+ */
+ const std::string tableName = "sync_data";
+ PrepareData({tableName}, false, DistributedDB::CLOUD_COOPERATION, false, true);
+
+ /**
+ * @tc.steps:step2. register client observer.
+ * @tc.expected: step2. return ok.
+ */
+ sqlite3 *db = RelationalTestUtils::CreateDataBase(g_dbDir + STORE_ID + DB_SUFFIX);
+ EXPECT_NE(db, nullptr);
+ ClientObserver clientObserver = std::bind(&DistributedDBCloudInterfacesRelationalExtTest::ClientObserverFunc,
+ this, std::placeholders::_1);
+ EXPECT_EQ(RegisterClientObserver(db, clientObserver), OK);
+
+ /**
+ * @tc.steps:step3. insert data into sync_data, check observer.
+ * @tc.expected: step3. check observer ok.
+ */
+ std::string sql = "insert into " + tableName + " VALUES(1, 'zhangsan'), (2, 'lisi'), (3, 'wangwu');";
+ EXPECT_EQ(RelationalTestUtils::ExecSql(db, sql), E_OK);
+ EXPECT_EQ(triggerTableData_.size(), 0u);
+
+ /**
+ * @tc.steps:step4. re-register client observer and register hook
+ * @tc.expected: step4. return ok.
+ */
+ EXPECT_EQ(UnRegisterClientObserver(db), OK);
+ EXPECT_EQ(RegisterClientObserver(db, clientObserver), OK);
+ RegisterDbHook(db);
+
+ /**
+ * @tc.steps:step5. insert data into sync_data, check observer.
+ * @tc.expected: step5. check observer ok.
+ */
+ sql = "insert into " + tableName + " VALUES(4, 'aaa');";
+ std::unique_lock<std::mutex> lock(g_mutex);
+ ExecSqlAndWaitForObserver(db, sql, lock);
+ EXPECT_EQ(triggerTableData_.size(), 1u);
+ EXPECT_EQ(UnRegisterClientObserver(db), OK);
+ EXPECT_EQ(sqlite3_close_v2(db), E_OK);
+}
+
void InitLogicDeleteData(sqlite3 *&db, const std::string &tableName, uint64_t num)
{
for (size_t i = 0; i < num; ++i) {
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。