From fc2e2238793d76ca7653f35725400403b7ed1cb0 Mon Sep 17 00:00:00 2001 From: mazhao Date: Thu, 4 May 2023 03:22:06 +0000 Subject: [PATCH 1/2] delete some exegesis Signed-off-by: mazhao --- .../src/common/src/json_common.cpp | 17 ++++++++++++- .../unittest/api/documentdb_data_test.cpp | 24 ------------------- .../documentdb_json_common_test.cpp | 15 ++++++++++++ 3 files changed, 31 insertions(+), 25 deletions(-) diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/common/src/json_common.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/common/src/json_common.cpp index 96834acd..265340d0 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/common/src/json_common.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/common/src/json_common.cpp @@ -649,7 +649,22 @@ bool JsonCommon::IsJsonNodeMatch(const JsonObject &src, const JsonObject &target } JsonFieldPath itemPath = SplitePath(path, isCollapse); if (src.IsFieldExistsPowerMode(itemPath)) { - return JsonEqualJudge(itemPath, src, item, isAlreadyMatched, isCollapse, isMatchFlag); + if (isCollapse) { + return JsonEqualJudge(itemPath, src, item, isAlreadyMatched, isCollapse, isMatchFlag); + } + else { + JsonObject srcItem = src.FindItemPowerMode(itemPath, errCode); + if (srcItem.GetType() == JsonObject::Type::JSON_ARRAY) { + return JsonEqualJudge(itemPath, src, item, isAlreadyMatched, isCollapse, isMatchFlag); + } + if (srcItem.Print() == item.Print()) { + isMatchFlag = true; + isAlreadyMatched = true; + return false; + } + isMatchFlag = false; + return false; + } } else { if (isCollapse) { GLOGE("Match failed, path not exist."); diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/api/documentdb_data_test.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/api/documentdb_data_test.cpp index 7c6d8325..8207d6d5 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/api/documentdb_data_test.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/api/documentdb_data_test.cpp @@ -241,18 +241,6 @@ HWTEST_F(DocumentDBDataTest, UpdateDataTest003, TestSize.Level0) */ HWTEST_F(DocumentDBDataTest, UpdateDataTest004, TestSize.Level0) { - // std::string document = R""({"name":"Tmono","age":18,"addr":{"city":"shanghai","postal":200001}})""; - // std::vector invalidFilter = { - // nullptr, - // "", - // R""({"name":"Tmono"})"", - // R""({"value":{"_id":"1234"}})"", - // R""({"_id":1234})"", - // }; - // for (auto filter : invalidFilter) { - // GLOGD("UpdateDataTest004: update data with filter: %s", filter); - // EXPECT_EQ(GRD_UpdateDoc(g_db, g_coll, filter, document.c_str(), 0), GRD_INVALID_ARGS); - // } } /** @@ -264,18 +252,6 @@ HWTEST_F(DocumentDBDataTest, UpdateDataTest004, TestSize.Level0) */ HWTEST_F(DocumentDBDataTest, UpdateDataTest005, TestSize.Level0) { - // std::string filter = R""({"_id":"1234"})""; - // std::string document = R""({"name":"Tmono","age":18,"addr":{"city":"shanghai","postal":200001}})""; - // std::vector> invalidUpdate = { - // {"", GRD_INVALID_ARGS}, - // {nullptr, GRD_INVALID_ARGS}, - // {R""({invalidJsonFormat})"", GRD_INVALID_FORMAT}, - // }; - - // for (auto it : invalidUpdate) { - // GLOGD("UpdateDataTest005: update data with doc: %s", it.first); - // EXPECT_EQ(GRD_UpdateDoc(g_db, g_coll, filter.c_str(), it.first, 0), it.second); - // } } /** diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/oh_adapter/documentdb_json_common_test.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/oh_adapter/documentdb_json_common_test.cpp index f83891b9..cfb7b0e1 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/oh_adapter/documentdb_json_common_test.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/oh_adapter/documentdb_json_common_test.cpp @@ -571,4 +571,19 @@ HWTEST_F(DocumentDBJsonCommonTest, JsonObjectisFilterCheckTest021, TestSize.Leve EXPECT_EQ(errCode, E_OK); JsonObject filterObj = JsonObject::Parse(filter, errCode); EXPECT_EQ(JsonCommon::IsJsonNodeMatch(srcObj, filterObj, errCode), true); +} + +HWTEST_F(DocumentDBJsonCommonTest, JsonObjectisFilterCheckTest022, TestSize.Level0) +{ + string document = R"({"_id" : "001", "key1" : {"key2" : {"key3" : {"key4" : 123, "k42" : "v42"}, "k32" : "v32"}, "k22" : "v22"}, + "k12" : "v12"})"; + string document2 = R"({"_id" : "002", "key1" : {"key2" : {"key3" : {"key4" : 123, "k42" : "v42"}, "k32" : "v32"}}, "k12" : "v12"})"; + const char *filter = R"({"key1" : {"key2" : {"key3" : {"key4" : 123, "k42" : "v42"}, "k32" : "v32"}}})"; + int errCode = E_OK; + JsonObject srcObj1 = JsonObject::Parse(document, errCode); + JsonObject srcObj2 = JsonObject::Parse(document2, errCode); + EXPECT_EQ(errCode, E_OK); + JsonObject filterObj = JsonObject::Parse(filter, errCode); + EXPECT_EQ(JsonCommon::IsJsonNodeMatch(srcObj1, filterObj, errCode), false); + EXPECT_EQ(JsonCommon::IsJsonNodeMatch(srcObj2, filterObj, errCode), true); } \ No newline at end of file -- Gitee From dd4fb63923aa84734b2e8242c1ced2434b650ba3 Mon Sep 17 00:00:00 2001 From: mazhao Date: Thu, 4 May 2023 03:33:49 +0000 Subject: [PATCH 2/2] add namespace to include unitest Signed-off-by: mazhao --- .../oh_adapter/documentdb_json_common_test.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/oh_adapter/documentdb_json_common_test.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/oh_adapter/documentdb_json_common_test.cpp index cfb7b0e1..a72938c1 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/oh_adapter/documentdb_json_common_test.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/oh_adapter/documentdb_json_common_test.cpp @@ -25,7 +25,8 @@ using namespace DocumentDB; using namespace testing::ext; using namespace DocumentDBUnitTest; -class DocumentDBJsonCommonTest : public testing::Test { +namespace { + class DocumentDBJsonCommonTest : public testing::Test { public: static void SetUpTestCase(void); static void TearDownTestCase(void); @@ -49,13 +50,6 @@ void DocumentDBJsonCommonTest::TearDown(void) { } -/** - * @tc.name: OpenDBTest001 - * @tc.desc: Test open document db - * @tc.type: FUNC - * @tc.require: - * @tc.author: lianhuix - */ HWTEST_F(DocumentDBJsonCommonTest, JsonObjectAppendTest001, TestSize.Level0) { std::string document = R""({"name":"Tmn","age":18,"addr":{"city":"shanghai","postal":200001}})""; @@ -586,4 +580,5 @@ HWTEST_F(DocumentDBJsonCommonTest, JsonObjectisFilterCheckTest022, TestSize.Leve JsonObject filterObj = JsonObject::Parse(filter, errCode); EXPECT_EQ(JsonCommon::IsJsonNodeMatch(srcObj1, filterObj, errCode), false); EXPECT_EQ(JsonCommon::IsJsonNodeMatch(srcObj2, filterObj, errCode), true); +} } \ No newline at end of file -- Gitee