#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"
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() {
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() {
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);
}