Implement PkgSetDBHandler unit test
authorIlho Kim <ilho159.kim@samsung.com>
Fri, 16 Apr 2021 11:13:56 +0000 (20:13 +0900)
committer김일호/Tizen Platform Lab(SR)/Engineer/삼성전자 <ilho159.kim@samsung.com>
Fri, 7 May 2021 00:59:15 +0000 (09:59 +0900)
Change-Id: Ib233764ef46d54de4d3505098d515690793b12a7
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
test/unit_tests/parcel_utils.cc
test/unit_tests/test_db_handlers.cc

index 55116e6..445d8e2 100644 (file)
@@ -132,7 +132,7 @@ application_x *GetTestApplication(std::string appid) {
 
   datacontrol_x* datacontrol =
       reinterpret_cast<datacontrol_x*>(calloc(1, sizeof(datacontrol_x)));
-  datacontrol->providerid = strdup("test_providerid");
+  datacontrol->providerid = strdup(appid.c_str());
   datacontrol->access = strdup("test_access");
   datacontrol->type = strdup("test_type");
   datacontrol->trusted = strdup("test_trusted");
index 0d9c0b3..6c34354 100644 (file)
 
 #include <cstdio>
 
-#include "db_type.hh"
 #include "create_db_handler.hh"
-#include "pkgmgrinfo_basic.h"
-
+#include "db_type.hh"
 #include "parcel_utils.hh"
+#include "pkg_set_db_handler.hh"
+
+#include "pkgmgrinfo_basic.h"
 
 #define TEST_PARSER_DB "test.pkgmgr_parser.db"
 
@@ -38,6 +39,14 @@ class CreateDBHandlerMock : public pkgmgr_server::database::CreateDBHandler {
   MOCK_METHOD1(SetDBVersion, int(sqlite3 *conn));
 };
 
+class PkgSetDBHandlerMock : public pkgmgr_server::database::PkgSetDBHandler {
+ public:
+  PkgSetDBHandlerMock(uid_t uid, int pid) : pkgmgr_server::database::PkgSetDBHandler(uid, pid) {}
+
+  MOCK_METHOD0(Connect, bool());
+  MOCK_METHOD0(GetConnection, std::vector<std::pair<sqlite3*, uid_t>>());
+};
+
 class DBHandlerTest : public ::testing::Test {
  public:
   virtual void SetUp() {
@@ -47,15 +56,15 @@ class DBHandlerTest : public ::testing::Test {
 
     SetDBHandles(
         std::vector<std::pair<sqlite3*, uid_t>> { std::make_pair(db, 0) });
-    CreateDBHandlerMock handler(0, 0);
+    CreateDBHandlerMock create_db_handler(0, 0);
 
-    EXPECT_CALL(handler, Connect())
+    EXPECT_CALL(create_db_handler, Connect())
         .Times(2).WillRepeatedly(testing::Return(true));
-    EXPECT_CALL(handler, GetConnection())
+    EXPECT_CALL(create_db_handler, GetConnection())
         .Times(2).WillRepeatedly(testing::Return(GetDBHandles()));
-    EXPECT_CALL(handler, SetDBVersion(testing::_))
+    EXPECT_CALL(create_db_handler, SetDBVersion(testing::_))
         .Times(2).WillRepeatedly(testing::Return(0));
-    ASSERT_EQ(handler.Execute(), 0);
+    ASSERT_EQ(create_db_handler.Execute(), 0);
   }
 
   virtual void TearDown() {
@@ -77,5 +86,15 @@ class DBHandlerTest : public ::testing::Test {
   std::vector<std::pair<sqlite3*, uid_t>> db_handles_;
 };
 
-TEST_F(DBHandlerTest, EmptyTest) {
+TEST_F(DBHandlerTest, PkgSetDBHandlerTest) {
+  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("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);
 }