From 2228cbf04bf3785eb1595176fbafc0302740e468 Mon Sep 17 00:00:00 2001 From: Ilho Kim Date: Wed, 9 Jun 2021 14:04:28 +0900 Subject: [PATCH] Implement QueryDBHandler_GetLocaledLabel unittest Signed-off-by: Ilho Kim --- test/unit_tests/test_parser_db_handlers.cc | 49 ++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/test/unit_tests/test_parser_db_handlers.cc b/test/unit_tests/test_parser_db_handlers.cc index 173497a..686d2e3 100644 --- a/test/unit_tests/test_parser_db_handlers.cc +++ b/test/unit_tests/test_parser_db_handlers.cc @@ -40,6 +40,7 @@ #define TEST_PARSER_DB "test.pkgmgr_parser.db" namespace psd = pkgmgr_server::database; +namespace pc = pkgmgr_common; class CreateParserDBHandlerMock : public psd::CreateDBHandler { public: @@ -316,3 +317,51 @@ TEST_F(ParserDBHandlerTest, QueryDBHandler_PluginInfoTest) { ASSERT_EQ(result[0].size(), 1); ASSERT_EQ(appid, result[0][0]); } + +TEST_F(ParserDBHandlerTest, QueryDBHandler_GetLocaledLabelTest) { + PkgSetDBHandlerMock pkg_set_db_handler(0, 0); + pkg_set_db_handler.SetWriteType(pkgmgr_common::PkgWriteType::Insert); + std::unique_ptr ptr( + GetTestPackage("test_package"), pkgmgrinfo_basic_free_package); + pkg_set_db_handler.SetPkgInfo(ptr.get()); + + EXPECT_CALL(pkg_set_db_handler, Connect()).WillOnce(testing::Return(true)); + EXPECT_CALL(pkg_set_db_handler, GetConnection()) + .WillOnce(testing::Return(GetDBHandles())); + ASSERT_EQ(pkg_set_db_handler.Execute(), 0); + + std::vector>> query_args; + std::vector> expected_label; + for (GList* app_list = ptr.get()->application; app_list; + app_list = app_list->next) { + application_x* app = reinterpret_cast(app_list->data); + ASSERT_NE(app, nullptr); + ASSERT_NE(app->appid, nullptr); + ASSERT_NE(app->label, nullptr); + + for (GList* label_list = app->label; label_list; + label_list = label_list->next) { + label_x* label = reinterpret_cast(label_list->data); + ASSERT_NE(label, nullptr); + ASSERT_NE(label->lang, nullptr); + ASSERT_NE(label->text, nullptr); + query_args.emplace_back(std::make_pair( + QUERY_INDEX_APPINFO_GET_LOCALED_LABEL, + std::vector{app->appid, label->lang})); + expected_label.emplace_back(std::vector{label->text}); + } + } + + QueryHandlerMock query_handler(0, 0); + query_handler.SetQueryArgs(std::move(query_args)); + query_handler.SetDBType(pc::DBType::DB_TYPE_FILE_PKGDB); + query_handler.SetOpType(pc::DBOperationType::OPERATION_TYPE_READ); + + EXPECT_CALL(query_handler, + Connect()).WillOnce(testing::Return(true)); + EXPECT_CALL(query_handler, GetConnection()) + .WillOnce(testing::Return(GetDBHandles())); + ASSERT_EQ(query_handler.Execute(), 0); + auto result = query_handler.GetResult(); + ASSERT_EQ(result, expected_label); +} -- 2.7.4