1 Star 0 Fork 0

廖永煌/lyh

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
br_536.diff 2.73 KB
一键复制 编辑 原始数据 按行查看 历史
廖永煌 提交于 2025-03-12 10:40 +08:00 . 1
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) {
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/liao-yonghuang/lyh.git
git@gitee.com:liao-yonghuang/lyh.git
liao-yonghuang
lyh
lyh
master

搜索帮助