Add pkg update, delete unittest 71/260771/3
authorJunghyun Yeon <jungh.yeon@samsung.com>
Fri, 2 Jul 2021 10:21:22 +0000 (19:21 +0900)
committerJunghyun Yeon <jungh.yeon@samsung.com>
Tue, 6 Jul 2021 23:59:26 +0000 (08:59 +0900)
Change-Id: Ie20f8a77532cfdd28f13066a0dad628539ccd99d
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
test/unit_tests/parcel_utils.cc
test/unit_tests/parcel_utils.hh
test/unit_tests/test_parser_db_handlers.cc

index fe46667..7f31bbf 100644 (file)
@@ -538,6 +538,15 @@ package_x* GetTestPackage(std::string pkgid) {
   return package;
 }
 
+package_x* GetUpdatedTestPackage(std::string pkgid) {
+  auto package = GetTestPackage(pkgid);
+
+  free(package->version);
+  package->version = strdup("2.0.0");
+
+  return package;
+}
+
 bool IsEqualPackageExtraInfo(package_x* packageA, package_x* packageB) {
   STR_EQ(packageA->ns, packageB->ns);
   STR_EQ(packageA->backend_installer, packageB->backend_installer);
index 4f6d289..6acfee2 100644 (file)
@@ -29,6 +29,8 @@ bool IsEqualApplicationsInfo(const std::vector<application_x*>& applicationsA,
 
 package_x *GetTestPackage(std::string pkgid);
 
+package_x* GetUpdatedTestPackage(std::string pkgid);
+
 bool IsEqualPackagesStructure(const std::vector<package_x*>&packagesA,
     const std::vector<package_x*>&packagesB);
 
index abe140d..1a56b1f 100644 (file)
@@ -134,7 +134,7 @@ class ParserDBHandlerTest : public TestFixture {
   std::vector<std::pair<sqlite3*, uid_t>> db_handles_;
 };
 
-TEST_F(ParserDBHandlerTest, PkgSetDBHandlerTest) {
+TEST_F(ParserDBHandlerTest, PkgSetDBHandlerTest_Install) {
   PkgSetDBHandlerMock pkg_set_db_handler(0, 0);
   pkg_set_db_handler.SetWriteType(pkgmgr_common::PkgWriteType::Insert);
   std::unique_ptr<package_x, decltype(pkgmgrinfo_basic_free_package)*> ptr(
@@ -147,6 +147,55 @@ TEST_F(ParserDBHandlerTest, PkgSetDBHandlerTest) {
   ASSERT_EQ(pkg_set_db_handler.Execute(), 0);
 }
 
+TEST_F(ParserDBHandlerTest, PkgSetDBHandlerTest_Update) {
+  PkgSetDBHandlerMock pkg_set_db_handler(0, 0);
+  pkg_set_db_handler.SetWriteType(pkgmgr_common::PkgWriteType::Update);
+  std::unique_ptr<package_x, decltype(pkgmgrinfo_basic_free_package)*> ptr(
+      GetUpdatedTestPackage("pkgA"), 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);
+}
+
+TEST_F(ParserDBHandlerTest, PkgSetDBHandlerTest_Delete) {
+  std::string pkgid = "pkgA";
+  PkgSetDBHandlerMock pkg_set_db_handler(0, 0);
+
+  pkg_set_db_handler.SetWriteType(pkgmgr_common::PkgWriteType::Delete);
+  std::unique_ptr<package_x, decltype(pkgmgrinfo_basic_free_package)*> ptr(
+      GetTestPackage(pkgid), 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);
+
+  pkgmgrinfo_pkginfo_filter_h filter;
+
+  ASSERT_EQ(pkgmgrinfo_pkginfo_filter_create(&filter), PMINFO_R_OK);
+  std::unique_ptr<pkgmgrinfo_filter_x, decltype(
+      pkgmgrinfo_pkginfo_filter_destroy)*> filter_ptr(
+          reinterpret_cast<pkgmgrinfo_filter_x*>(filter),
+              pkgmgrinfo_pkginfo_filter_destroy);
+  ASSERT_EQ(pkgmgrinfo_pkginfo_filter_add_string(filter,
+      PMINFO_PKGINFO_PROP_PACKAGE_ID, pkgid.c_str()), PMINFO_R_OK);
+  ASSERT_EQ(pkgmgrinfo_pkginfo_filter_add_bool(filter,
+      PMINFO_PKGINFO_PROP_PACKAGE_DISABLE, false), PMINFO_R_OK);
+
+  PkgGetDBHandlerMock pkg_get_db_handler(0, 0);
+  pkg_get_db_handler.SetFilter(filter_ptr.get());
+  pkg_get_db_handler.SetLocale("test_lang");
+
+  EXPECT_CALL(pkg_get_db_handler, Connect()).WillOnce(testing::Return(true));
+  EXPECT_CALL(pkg_get_db_handler, GetConnection())
+      .WillOnce(testing::Return(GetDBHandles()));
+  ASSERT_EQ(pkg_get_db_handler.Execute(), PMINFO_R_ENOENT);
+}
+
 TEST_F(ParserDBHandlerTest, PkgGetDBHandlerTest) {
   std::string pkgid = "pkgA";
   PkgSetDBHandlerMock pkg_set_db_handler(0, 0);