diff options
Diffstat (limited to 'src')
3 files changed, 26 insertions, 8 deletions
diff --git a/src/components/policy/test/sql_pt_representation_test.cc b/src/components/policy/test/sql_pt_representation_test.cc index 1f4df5d15d..fbbe14c755 100644 --- a/src/components/policy/test/sql_pt_representation_test.cc +++ b/src/components/policy/test/sql_pt_representation_test.cc @@ -76,21 +76,20 @@ class SQLPTRepresentationTest : public SQLPTRepresentation, static DBMS* dbms; static SQLPTRepresentation* reps; static const std::string kDatabaseName; + static const std::string kAppStorageFolder; // Gtest can show message that this object doesn't destroyed static std::auto_ptr<policy_handler_test::MockPolicySettings> policy_settings_; static void SetUpTestCase() { - const std::string kAppStorageFolder = "storage1"; - file_system::RemoveDirectory(kAppStorageFolder); - file_system::DeleteFile("policy.sqlite"); + file_system::DeleteFile(kAppStorageFolder + "/policy.sqlite"); reps = new SQLPTRepresentation; - dbms = new DBMS(kDatabaseName); policy_settings_ = std::auto_ptr<policy_handler_test::MockPolicySettings>( new policy_handler_test::MockPolicySettings()); ON_CALL(*policy_settings_, app_storage_folder()) .WillByDefault(ReturnRef(kAppStorageFolder)); EXPECT_EQ(::policy::SUCCESS, reps->Init(policy_settings_.get())); + dbms = new DBMS(kAppStorageFolder + "/" + kDatabaseName); EXPECT_TRUE(dbms->Open()); } @@ -104,6 +103,7 @@ class SQLPTRepresentationTest : public SQLPTRepresentation, reps->RemoveDB(); delete reps; dbms->Close(); + file_system::RemoveDirectory(kAppStorageFolder); policy_settings_.reset(); } @@ -351,6 +351,7 @@ class SQLPTRepresentationTest : public SQLPTRepresentation, DBMS* SQLPTRepresentationTest::dbms = 0; SQLPTRepresentation* SQLPTRepresentationTest::reps = 0; const std::string SQLPTRepresentationTest::kDatabaseName = "policy.sqlite"; +const std::string SQLPTRepresentationTest::kAppStorageFolder = "storage1"; std::auto_ptr<policy_handler_test::MockPolicySettings> SQLPTRepresentationTest::policy_settings_; @@ -996,6 +997,7 @@ const std::string kAppStorageFolder = "storage"; } TEST(SQLPTRepresentationTest3, Init_InitNewDataBase_ExpectResultSuccess) { + file_system::CreateDirectory(kAppStorageFolder); // Arrange NiceMock<policy_handler_test::MockPolicySettings> policy_settings_; SQLPTRepresentation* reps; @@ -1007,22 +1009,27 @@ TEST(SQLPTRepresentationTest3, Init_InitNewDataBase_ExpectResultSuccess) { EXPECT_EQ(::policy::EXISTS, reps->Init(&policy_settings_)); reps->RemoveDB(); delete reps; + file_system::RemoveDirectory(kAppStorageFolder); } TEST(SQLPTRepresentationTest3, Init_TryInitNotExistingDataBase_ExpectResultFail) { + const std::string kEmptyDirectory = ""; + file_system::CreateDirectory(kAppStorageFolder); // Arrange NiceMock<policy_handler_test::MockPolicySettings> policy_settings_; ON_CALL(policy_settings_, app_storage_folder()) - .WillByDefault(ReturnRef(kAppStorageFolder)); + .WillByDefault(ReturnRef(kEmptyDirectory)); SQLPTRepresentation reps; (reps.db())->set_path("/home/"); // Check EXPECT_EQ(::policy::FAIL, reps.Init(&policy_settings_)); + file_system::RemoveDirectory(kAppStorageFolder); } TEST(SQLPTRepresentationTest3, Close_InitNewDataBaseThenClose_ExpectResultSuccess) { + file_system::CreateDirectory(kAppStorageFolder); // Arrange NiceMock<policy_handler_test::MockPolicySettings> policy_settings_; ON_CALL(policy_settings_, app_storage_folder()) @@ -1034,6 +1041,7 @@ TEST(SQLPTRepresentationTest3, // Checks EXPECT_EQ(error.number(), (reps.db()->LastError().number())); reps.RemoveDB(); + file_system::RemoveDirectory(kAppStorageFolder); } TEST_F(SQLPTRepresentationTest, @@ -1477,9 +1485,12 @@ TEST_F(SQLPTRepresentationTest, } TEST(SQLPTRepresentationTest3, RemoveDB_RemoveDB_ExpectFileDeleted) { + file_system::CreateDirectory(kAppStorageFolder); // Arrange policy_handler_test::MockPolicySettings policy_settings_; SQLPTRepresentation* reps = new SQLPTRepresentation; + ON_CALL(policy_settings_, app_storage_folder()) + .WillByDefault(ReturnRef(kAppStorageFolder)); EXPECT_EQ(::policy::SUCCESS, reps->Init(&policy_settings_)); EXPECT_EQ(::policy::EXISTS, reps->Init(&policy_settings_)); std::string path = (reps->db())->get_path(); @@ -1488,6 +1499,7 @@ TEST(SQLPTRepresentationTest3, RemoveDB_RemoveDB_ExpectFileDeleted) { // Check EXPECT_FALSE(file_system::FileExists(path)); delete reps; + file_system::RemoveDirectory(kAppStorageFolder); } // TODO {AKozoriz} : Snapshot must have module meta section, but test diff --git a/src/components/utils/include/utils/sqlite_wrapper/sql_database.h b/src/components/utils/include/utils/sqlite_wrapper/sql_database.h index 720628ef3c..8b78881473 100644 --- a/src/components/utils/include/utils/sqlite_wrapper/sql_database.h +++ b/src/components/utils/include/utils/sqlite_wrapper/sql_database.h @@ -131,6 +131,11 @@ class SQLDatabase { sync_primitives::Lock conn_lock_; /** + * The file path of database + */ + std::string path_; + + /** * The filename of database */ std::string databasename_; diff --git a/src/components/utils/src/sqlite_wrapper/sql_database.cc b/src/components/utils/src/sqlite_wrapper/sql_database.cc index bf19275bac..2de5817cab 100644 --- a/src/components/utils/src/sqlite_wrapper/sql_database.cc +++ b/src/components/utils/src/sqlite_wrapper/sql_database.cc @@ -53,7 +53,8 @@ bool SQLDatabase::Open() { sync_primitives::AutoLock auto_lock(conn_lock_); if (conn_) return true; - error_ = sqlite3_open(databasename_.c_str(), &conn_); + error_ = sqlite3_open(get_path().c_str(), &conn_); + printf("OPEN SQLDATABASE: %i\n", error_); return error_ == SQLITE_OK; } @@ -101,11 +102,11 @@ sqlite3* SQLDatabase::conn() const { } void SQLDatabase::set_path(const std::string& path) { - databasename_ = path + databasename_; + path_ = path; } std::string SQLDatabase::get_path() const { - return databasename_; + return path_ + databasename_; } bool SQLDatabase::Backup() { |