Initial commit
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
#include "sqlite_database.h"
|
||||
#include "sqlite_file_executor.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
// WARNING: Triggers are off
|
||||
|
||||
const std::string TEST_DB = "test.db";
|
||||
|
||||
// Test fixture for SQLiteDatabase
|
||||
class SQLiteDatabaseForeignKeyTest : public ::testing::Test {
|
||||
|
||||
protected:
|
||||
SQLiteDatabase *db_;
|
||||
|
||||
public:
|
||||
// void pragmaForeignKeysOn() {
|
||||
// const std::string query = "PRAGMA foreign_keys = ON;";
|
||||
// db_->executeNonQuery(query);
|
||||
// }
|
||||
|
||||
std::vector<std::vector<std::string>> pragmaForeignKeys() {
|
||||
const std::string query = "PRAGMA foreign_keys;";
|
||||
auto results = db_->executeSelectQuery(query);
|
||||
return results;
|
||||
}
|
||||
|
||||
protected:
|
||||
void SetUp() override {
|
||||
db_ = new SQLiteDatabase(TEST_DB);
|
||||
SQLiteFileExecutor executor(TEST_DB);
|
||||
executor.executeSQLFile("sql/cinema_db_drop_table.sql");
|
||||
executor.executeSQLFile("sql/cinema_db_create_table.sql");
|
||||
|
||||
// pragmaForeignKeysOn();
|
||||
|
||||
std::string sql;
|
||||
FileReaderInterface *reader = &executor;
|
||||
reader->read("sql/cinema_db_foreign_key_on.sql", sql);
|
||||
db_->executeNonQuery(sql);
|
||||
}
|
||||
|
||||
void TearDown() override {
|
||||
delete db_;
|
||||
remove(TEST_DB.c_str());
|
||||
}
|
||||
};
|
||||
|
||||
// INFO: ----- GENERAL -----
|
||||
|
||||
// Check pragma foreign_keys is true
|
||||
TEST_F(SQLiteDatabaseForeignKeyTest, PragmaForeignKeys) {
|
||||
auto results = pragmaForeignKeys();
|
||||
ASSERT_FALSE(results.empty());
|
||||
ASSERT_EQ(results[0][0], "1");
|
||||
}
|
||||
|
||||
// Test adding a movie
|
||||
TEST_F(SQLiteDatabaseForeignKeyTest, AddMovie) {
|
||||
NewMovie movie{"The Shawshank Redemption", 1, 142};
|
||||
EXPECT_FALSE(db_->addMovie(movie));
|
||||
|
||||
auto movies = db_->getAllMovies();
|
||||
ASSERT_TRUE(movies.empty());
|
||||
|
||||
NewGenre genre{"Drama"};
|
||||
EXPECT_TRUE(db_->addGenre(genre));
|
||||
EXPECT_TRUE(db_->addMovie(movie));
|
||||
movies = db_->getAllMovies();
|
||||
ASSERT_FALSE(movies.empty());
|
||||
}
|
||||
|
||||
// Test adding session
|
||||
TEST_F(SQLiteDatabaseForeignKeyTest, AddSession) {
|
||||
NewSession session{1, 1, "2025-01-01 12:00:00", 10};
|
||||
EXPECT_FALSE(db_->addSession(session));
|
||||
|
||||
NewHall hall{"Hall 1", 100};
|
||||
db_->addHall(hall);
|
||||
EXPECT_FALSE(db_->addSession(session));
|
||||
|
||||
NewGenre genre{"Drama"};
|
||||
db_->addGenre(genre);
|
||||
NewMovie movie{"The Shawshank Redemption", 1, 142};
|
||||
db_->addMovie(movie);
|
||||
EXPECT_TRUE(db_->addSession(session));
|
||||
}
|
||||
|
||||
// Test adding ticket
|
||||
TEST_F(SQLiteDatabaseForeignKeyTest, AddTicket) {
|
||||
NewTicket ticket{1, 1, "2025-01-01 12:00:00"};
|
||||
EXPECT_FALSE(db_->addTicket(ticket));
|
||||
|
||||
NewHall hall{"Hall 1", 100};
|
||||
db_->addHall(hall);
|
||||
NewGenre genre{"Drama"};
|
||||
db_->addGenre(genre);
|
||||
NewMovie movie{"The Shawshank Redemption", 1, 142};
|
||||
db_->addMovie(movie);
|
||||
NewSession session{1, 1, "2025-01-01 12:00:00", 10};
|
||||
db_->addSession(session);
|
||||
|
||||
EXPECT_TRUE(db_->addTicket(ticket));
|
||||
}
|
||||
Reference in New Issue
Block a user