application->root_path = strdup("test_root_path");
application->api_version = strdup("test_api_version");
application->for_all_users = strdup("test_for_all_users");
- application->is_disabled = strdup("test_is_disabled");
+ application->is_disabled = strdup("false");
application->splash_screen_display = strdup("test_splash_screen_display");
application->external_path = strdup("test_external_path");
application->package_system = strdup("test_package_system");
package = reinterpret_cast<package_x*>(calloc(1, sizeof(package_x)));
package->for_all_users = strdup("test_for_all_users");
- package->package = strdup("test_package");
+ package->package = strdup(pkgid.c_str());
package->version = strdup("test_version");
package->installlocation = strdup("test_installlocation");
package->ns = strdup("test_ns");
#include "create_db_handler.hh"
#include "db_type.hh"
#include "parcel_utils.hh"
+#include "pkg_get_db_handler.hh"
#include "pkg_set_db_handler.hh"
+#include "pkgmgr-info.h"
#include "pkgmgrinfo_basic.h"
#define TEST_PARSER_DB "test.pkgmgr_parser.db"
MOCK_METHOD0(GetConnection, std::vector<std::pair<sqlite3*, uid_t>>());
};
+class PkgGetDBHandlerMock : public pkgmgr_server::database::PkgGetDBHandler {
+ public:
+ PkgGetDBHandlerMock(uid_t uid, int pid) : pkgmgr_server::database::PkgGetDBHandler(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() {
.WillOnce(testing::Return(GetDBHandles()));
ASSERT_EQ(pkg_set_db_handler.Execute(), 0);
}
+
+TEST_F(DBHandlerTest, PkgGetDBHandlerTest) {
+ std::string pkgid = "pkgA";
+ 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(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());
+
+ 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(), 0);
+}