Implement dependencyinfo unittest
authorJunghyun Yeon <jungh.yeon@samsung.com>
Fri, 4 Jun 2021 07:02:45 +0000 (16:02 +0900)
committer연정현/Tizen Platform Lab(SR)/Staff Engineer/삼성전자 <jungh.yeon@samsung.com>
Tue, 8 Jun 2021 09:13:21 +0000 (18:13 +0900)
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
test/unit_tests/test_cert_db_handlers.cc
test/unit_tests/test_parser_db_handlers.cc

index 82b0426..e1d14c2 100644 (file)
@@ -32,9 +32,9 @@
 
 #define TEST_CERT_DB "test.pkgmgr_cert.db"
 
-class CreateDBHandlerMock : public pkgmgr_server::database::CreateDBHandler {
+class CreateCertDBHandlerMock : public pkgmgr_server::database::CreateDBHandler {
  public:
-  CreateDBHandlerMock(uid_t uid, int pid)
+  CreateCertDBHandlerMock(uid_t uid, int pid)
       : pkgmgr_server::database::CreateDBHandler(uid, pid) {}
 
   MOCK_METHOD0(Connect, bool());
@@ -68,7 +68,7 @@ class CertDBHandlerTest : public ::testing::Test {
 
     SetDBHandles(
         std::vector<std::pair<sqlite3*, uid_t>> { std::make_pair(db, 0) });
-    CreateDBHandlerMock create_db_handler(0, 0);
+    CreateCertDBHandlerMock create_db_handler(0, 0);
 
     EXPECT_CALL(create_db_handler, Connect())
         .Times(2).WillRepeatedly(testing::Return(true));
index 6d5e768..3d28039 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "appinfo_db_handler.hh"
 #include "create_db_handler.hh"
+#include "depinfo_db_handler.hh"
 #include "db_type.hh"
 #include "parcel_utils.hh"
 #include "pkg_get_db_handler.hh"
@@ -38,9 +39,9 @@
 
 namespace psd = pkgmgr_server::database;
 
-class CreateDBHandlerMock : public psd::CreateDBHandler {
+class CreateParserDBHandlerMock : public psd::CreateDBHandler {
  public:
-  CreateDBHandlerMock(uid_t uid, int pid)
+  CreateParserDBHandlerMock(uid_t uid, int pid)
       : psd::CreateDBHandler(uid, pid) {}
 
   MOCK_METHOD0(Connect, bool());
@@ -71,6 +72,15 @@ class AppInfoDBHandlerMock : public psd::AppInfoDBHandler {
   MOCK_METHOD0(GetConnection, std::vector<std::pair<sqlite3*, uid_t>>());
 };
 
+class DepInfoGetDBHandlerMock : public psd::DepInfoGetDBHandler {
+ public:
+  DepInfoGetDBHandlerMock(uid_t uid, int pid) :
+      psd::DepInfoGetDBHandler(uid, pid) {}
+
+  MOCK_METHOD0(Connect, bool());
+  MOCK_METHOD0(GetConnection, std::vector<std::pair<sqlite3*, uid_t>>());
+};
+
 class Mocks : public ::testing::NiceMock<SystemInfoMock> {};
 
 class ParserDBHandlerTest : public TestFixture {
@@ -85,7 +95,7 @@ class ParserDBHandlerTest : public TestFixture {
 
     SetDBHandles(
         std::vector<std::pair<sqlite3*, uid_t>> { std::make_pair(db, 0) });
-    CreateDBHandlerMock create_db_handler(0, 0);
+    CreateParserDBHandlerMock create_db_handler(0, 0);
 
     EXPECT_CALL(create_db_handler, Connect())
         .Times(2).WillRepeatedly(testing::Return(true));
@@ -222,3 +232,32 @@ TEST_F(ParserDBHandlerTest, AppInfoDBHandlerTest) {
 
   ASSERT_EQ(IsEqualApplicationsInfo(lappinfo_list, rappinfo_list), true);
 }
+
+TEST_F(ParserDBHandlerTest, DepInfoDBHandlerTest) {
+  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(
+      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);
+
+  DepInfoGetDBHandlerMock depinfo_get_db_handler(0, 0);
+  depinfo_get_db_handler.SetPkgID("depends_on_pkgid");
+  EXPECT_CALL(depinfo_get_db_handler,
+      Connect()).WillOnce(testing::Return(true));
+  EXPECT_CALL(depinfo_get_db_handler, GetConnection())
+      .WillOnce(testing::Return(GetDBHandles()));
+  ASSERT_EQ(depinfo_get_db_handler.Execute(), 0);
+
+  auto depinfo_from_db = depinfo_get_db_handler.GetDependencyList();
+  ASSERT_EQ(depinfo_from_db.size(), 1);
+
+  std::vector<dependency_x*> depinfo_list;
+  depinfo_list.emplace_back(GetTestDepInfo("test_package"));
+
+  EXPECT_TRUE(IsEqualDepInfo(depinfo_list, depinfo_from_db));
+}